这是一个具有公共属性和公共方法的类Encapsulate
。
class Encapsulate
{
public int a;
public int b;
public static void main(String...s)
{
Encapsulate e = new Encapsulate();
e.setVar(10,20);
System.out.println(e.getSome());
}
public void setVar(int a, int b)
{
this.a = a;
this.b = b;
}
public int getSome()
{
return a + b;
}
}
此处是否遵循OOP概念Encapsulation
?
我确信它是适用的,因为它们在一个类中被绑定在一起,可能我们可以称之为弱封装但是有封装。
但我不知道如何证明它,因为我的搜索显示类属性应该是私有的。
更新:默认访问说明符的情况。
答案 0 :(得分:3)
另一个例子是Encapsulation正在隐藏数据
软件对象在概念上与现实世界对象类似:它们也包括状态和相关行为。对象将其状态存储在字段(某些编程语言中的变量)中,并通过方法(某些编程语言中的函数)公开其行为。方法对对象的内部状态进行操作,并作为对象到对象通信的主要机制。隐藏内部状态并要求通过对象的方法执行所有交互称为数据封装 - 面向对象编程的基本原则。
这基本上意味着你应该将属性的访问修饰符更改为private并允许通过方法访问属性
从https://docs.oracle.com/javase/tutorial/java/concepts/object.html
引用答案 1 :(得分:1)
Java中的封装是一种将数据(变量)和作用于数据(方法)的代码一起包装为单个单元的机制。在封装中,类的变量将从其他类隐藏,并且只能通过其当前类的方法访问,因此它也称为数据隐藏。
看看这里,正确解释。 http://www.tutorialspoint.com/java/java_encapsulation.htm