ThinkInJava_6_访问权限控制

6.1 包:库单元

  • 一个.java文件为一个编译单元,含且仅含1个 public 类,且类名与文件名相同
  • package 是文件中第一句程序代码
  • java 可运行程序是一组 .class 文件构成的 jar 包
  • java 类库是一组类文件
package access;
  • Java 解释器的运行过程:找出环境变量 CLASSPATH 作为查找 .class 文件的根目录,然后解释器获取包名称并与 CLASSPATH 相连接,根据这个路径找到对应的 .class 文件
    如 CLASSPATH = C: \DOC\JavaT
    包名为 net.mindview.simple
    得到路径为 C: \DOC\JavaT\net\mindview\simple
    CLASSPATH 可包含多个可查询的路径
    CLASSPATH = C: \DOC\JavaT;D: \DOC\JavaT

6.2 Java 访问权限修饰词

  • 包访问权限
    成员对包内成员可访问,对包外是 private
  • public: 接口访问权限
  • private: 你无法访问
class Sundae {
	private Sundate() {}
	static Sundae makeASundae() {
		return new Sundae();
	}
}
public class IceCream {
	public static void manin(String[] args) {
		Sundae x = Sundae.makeASundae();
	}
}
//阻止别人访问特定的构造器
  • protected : 继承访问权限
    把基类的成员的访问权限给派生类,也提供包访问权限

6.3 接口和实现

  • 访问权限的控制是具体实现的隐藏
  • 把数据和方法包装进类里,以及具体实现的隐藏,被称作封装

6.4 类的访问权限

public class Widget {}
  • 文件内只能有一个 public 类且类名与文件名相同
  • 文件中可以一个 public 的类也没有,此时文件名没有限制
  • 类仅可以是 public 的或者包访问权限的,不能是 private 的或者 protected 的
class Soup1 {
	private Soup1() {}
	public static Soup1 makeSoup() {
		return new Soup1();
	}
}
//将构造器设为 private 的,创建一个 static 方法来创建该类对象

class Soup2 {
	private Soup2() {}
	private static Soup2 ps1 = new Soup2();
	public static Soup2 access() {
		return ps1;
	}
}
//Soup2 使用了单例模式,你始终只能创建它的一个对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值