信息隐藏和封装之间有什么区别?

时间:2015-11-30 02:18:35

标签: java oop encapsulation

我知道由于研究存在差异,但我只能发现它们之间的相似之处...我希望有人能澄清差异,如果你能为每个人做一个例子真的有帮助。 Java程序也请将此程序视为封装或信息隐藏,甚至两者

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

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

1 个答案:

答案 0 :(得分:2)

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

信息隐藏它是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
 }

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