有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我知道这是因为研究不同,但我只能找到它们之间的相似之处。。。我希望有人能澄清两者之间的区别,如果你能举个例子来说明这两种方法是否真的有帮助。Java程序这个程序也算是封装还是信息隐藏,或者两者都算

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

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

共 (1) 个答案

  1. # 1 楼答案

    您发布的代码部分就是这两者的一个例子。封装是一种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
     }
    

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