类访问权限
1.public 与 default(包访问权限)。
2.每个编译单元只能有一个public类,可以有几个default类。
3.为何没有private、protected访问权限:有内部类。
private 构造器
原因:可以阻止其他人创建该类的对像
可以在该类的static成员内部创建类,其他人只能通过该类的static方法获得指定类的对象。
代码 test1:
public class TestClass { public static void main(String[] args) { User user = User.getUser(); } } class User { private User() { } public static User getUser() { return new User(); } }代码 test2:
public class TestClass { public static void main(String[] args) { User user = User.getUser(); } } class User { private User() { } private static User user = new User(); public static User getUser() { return user; } }这种方式可以可以指定带类的实例对象。
一般使用test2方式,test使用了 singleton(单例) 的设计模式 。
成员变量与成员方法访问权限
范围 \权限 public protected default(包访问权限) private 同包同类 √ √ √ √ 同包不同类 √ √ √ × 不同包的子类(继承) √ √ × × 不同包的非 √ × × ×