为什么从未定义实例化对象的封装?
Duck duck = new Duck();
这不会将所有对象设置为每个定义的默认值,从而可以在任何地方访问吗?
此外,有没有理由说明列表在实例化时通常不会设置为私有?
List<Ducks> ducks = new ArrayList<>();
我理解你的批评,我确实理解封装是什么。 我必须明天在3位教师面前展示一个巨大的网站,并想知道为什么在从未定义实例化列表/对象封装时,我们将所有其他属性设置为私有。谢谢你的任何认真回答
Point originOne = new Point(23, 94);
Rectangle rectOne = new Rectangle(originOne, 100, 200);
Rectangle rectTwo = new Rectangle(50, 100);
例如java教程中的这三个对象。他们的封装(私人/公共/受保护)从未声明
答案 0 :(得分:2)
只有实例(和静态类变量)变量可以是私有的(也是方法和类),并且您自己将它们设置为私有。
public class Pond {
private Duck duck;
}
访问修饰符不在方法中使用,仅用于字段,因为方法中声明的变量仅在该方法中使用和访问。
如果你有像上面代码中的实例变量,它的可见性取决于修饰符。 public
表示任何人都可以访问它,依此类推:https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html