私有对象和列表

时间:2018-01-16 09:00:17

标签: java private instantiation encapsulation

为什么从未定义实例化对象的封装?

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教程中的这三个对象。他们的封装(私人/公共/受保护)从未声明

1 个答案:

答案 0 :(得分:2)

只有实例(和静态类变量)变量可以是私有的(也是方法和类),并且您自己将它们设置为私有。

public class Pond {
    private Duck duck;
}

访问修饰符不在方法中使用,仅用于字段,因为方法中声明的变量仅在该方法中使用和访问。

如果你有像上面代码中的实例变量,它的可见性取决于修饰符。 public表示任何人都可以访问它,依此类推:https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html