Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 信息隐藏和封装之间的区别是什么?_Java_Oop_Encapsulation - Fatal编程技术网

Java 信息隐藏和封装之间的区别是什么?

Java 信息隐藏和封装之间的区别是什么?,java,oop,encapsulation,Java,Oop,Encapsulation,我知道,由于研究的原因,两者之间存在差异,但我只能找到它们之间的相似之处。。。我希望如果有人能澄清两者之间的区别,如果你能为每一个都举个例子的话,那真的会有所帮助。Java程序,这个程序也算是封装还是信息隐藏,或者两者都算 class DogsinHouse { private int dogs; public int getdog() { return dogs; } public void setdog(int amountOfDogsNow) {

我知道,由于研究的原因,两者之间存在差异,但我只能找到它们之间的相似之处。。。我希望如果有人能澄清两者之间的区别,如果你能为每一个都举个例子的话,那真的会有所帮助。Java程序,这个程序也算是封装还是信息隐藏,或者两者都算

 class DogsinHouse {
   private int dogs;
   public int getdog() {
     return dogs;
   }

   public void setdog(int amountOfDogsNow) {
     dogs = amountOfDogsNow;
   }
 }

您发布的代码部分就是这两者的一个例子。封装是一种Java类具有状态(存储在对象中的信息)和行为(对象可以执行的操作,或者更确切地说是方法)的技术。当您在类a中调用类B中定义的方法时,您正在使用该方法,而不知道其实现,只是使用公共接口

信息隐藏这是istance变量声明为私有(或受保护)的原则:它提供了一个稳定的接口,并保护程序免受错误(作为不应该访问上述变量的代码部分的变量修改)

基本上:

使用信息隐藏进行封装:

public class Person {
    private String name;
    private int age;

    public Person() {
    // ...
    }

    //getters and setters
 }
public class Person {
    public String name;
    public int age;

    public Person() {
    // ...
    }

    //getters and setters
 }
无信息隐藏的封装:

public class Person {
    private String name;
    private int age;

    public Person() {
    // ...
    }

    //getters and setters
 }
public class Person {
    public String name;
    public int age;

    public Person() {
    // ...
    }

    //getters and setters
 }

在OOP中,同时使用封装和信息隐藏是一种很好的做法。

您可能需要阅读简短的回答:信息隐藏(也称为数据隐私)是指使用访问修饰符(如public、protected和private)来限制对成员(方法和字段)的访问。封装是指将相关的状态和行为收集到一个“胶囊”中,在OOP中,这个“胶囊”是指封装完成其工作所需的状态和行为的类。相关概念包括耦合和内聚。