标签: data-hiding

封装与数据隐藏 - Java

采访者:什么是封装,你如何用Java实现它?

我: 封装是一种隐藏客户端信息的机制.该信息可以是数据或实现或算法.我们使用访问修饰符来实现这一点.

采访者:这是数据隐藏.我们如何在Java中实现封装?

:uummmm

具体问题:除了'Access Modifiers'之外,在Java中实现Encapsulation的方法是什么?

java oop encapsulation software-design data-hiding

48
推荐指数
4
解决办法
6万
查看次数

实用示例封装与信息隐藏与抽象与数据隐藏在Java中

我知道有很多关于这个问题的帖子,它有实时例子的理论解释.这些OOP术语非常简单,但对于像我这样的初学者来说更加困惑.但我期待这里不是一个定义和实时的例子但是期待java中的代码片段.

请问任何人都可以为Java中的每一个提供非常小的代码片段,这将有助于我理解封装与信息隐藏与抽象与数据隐藏的实际关系吗?

java oop abstraction information-hiding data-hiding

4
推荐指数
2
解决办法
2万
查看次数

是否继承了静态变量

我已经读过1000个位置的静态变量没有被继承.但那么这段代码如何正常工作呢?

Parent.java

public class Parent {
        static String str = "Parent";
    }
Run Code Online (Sandbox Code Playgroud)

Child.java

public class Child extends Parent {
        public static void main(String [] args)
        {
            System.out.println(Child.str);
        }
    }
Run Code Online (Sandbox Code Playgroud)

此代码打印"父".

还可以在几个位置读取数据隐藏的概念.

Parent.java

public class Parent {
    static String str = "Parent";
}
Run Code Online (Sandbox Code Playgroud)

Child.java

public class Child extends Parent {
    static String str = "Child";

    public static void main(String [] args)
    {
        System.out.println(Child.str);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在输出是"Child".

那么这是否意味着静态变量是继承的,但它们遵循数据隐藏的概念

java inheritance static data-hiding

2
推荐指数
2
解决办法
8261
查看次数

隐藏C结构定义

这是我的设置:

在public.h:

#ifndef PUBLIC_H_
#define PUBLIC_H_

#include "func.h"

/*extern typedef struct _my_private_struct PRIVATE_;*/
typedef struct _my_private_struct PRIVATE_; /* Thanks to larsmans and Simon Richter */
#endif
Run Code Online (Sandbox Code Playgroud)

在struct.h中

#ifndef STRUCT_H_
#define STRUCT_H_

struct _my_private_struct {
    int i;
};
#endif
Run Code Online (Sandbox Code Playgroud)

在func.h中:

#ifndef FUNC_H_
#define FUNC_H_
#include "struct.h"

/* typedef struct _my_private_struct PRIVATE_; */
extern PRIVATE_ * get_new(int);
#endif
Run Code Online (Sandbox Code Playgroud)

在func.c中:

#include <stdlib.h>
#include "func.h"

PRIVATE_ * get_new(int i)
{
    PRIVATE_ *p = (PRIVATE_ *) malloc(sizeof(PRIVATE_));
    if (p == NULL) return NULL;

    p->i = …
Run Code Online (Sandbox Code Playgroud)

c oop struct compiler-errors data-hiding

2
推荐指数
2
解决办法
2623
查看次数

使用cfc的"invokeImplicitAccessor"很好用吗?

在ColdFusion 10中通过<cfset THIS.invokeImplicitAccessor = "true">在application.cfc中设置我们现在可以直接访问属于cfc的任何属性.

我不确定开发人员为什么会使用这种功能.

我的问题是,这是否违反了面向对象编程的数据隐藏原则?

coldfusion application.cfc data-hiding coldfusion-10

1
推荐指数
1
解决办法
245
查看次数