《java编程思想》读书笔记——第一章1.3实现方案的隐藏(封装)

1.3实现方案的隐藏

1.细节的隐藏
前文也提过,程序员可以分为,设计底层的高复用性类库的设计师们,利用这些类库达成需要的需求的客户型程序员
设计师所要做的是,从头设计一个类,并将其所有的具体实现隐藏起来,只暴露接口(也就是用该类申明的对象可以接受哪些消息)给客户型程序员

2.为什么要这样做?
因为对于客户程序员来说,他所需要的只是解决问题,而不需要知道细节,就像造车的工厂不需要知道装上去的引擎的工作原理
而对于设计师来说
1.让细节对于客户来说不可见,可以保证自己原创的代码不受到修改而确保其功能性

//类库版本1
class mathTest{
	 int Pi = 3.14;
}

//用户
class user{
	public static main (String args[]){
	mathTest m =new mathTest();
	m.Pi=100;
}
}

在这里,由于Pi没被设置权限,被用户篡改成了100,这将导致整个类库的计算结果都有可能出错

2.只提供接口的话,对于自己的类库的更新迭代变得更加自由

//类库版本1
class mathTest{
	public static int Length = 30;
}

//类库版本2
class mathTest{
	public static int Length = 50;
}
//用户
class user{
	public static main (String args[]){
	System.out.print(mathTest.Length)
}
}

这里只是个简单的示例在这里,如果把版本1中的类替换为了版本2,由于只暴露了接口,即使已经达成了完全不同的效果,但是对于用户来说,并不需要修改自己的代码
因此,我们需要一个权限控制以供我们防止这些预料外的越权操作
3.java中的权限关键词
在默认什么都不加的情况下,使用的是:
friendly/package:友好的,在同一个包下可以由权限
特别声明的情况下:
public:公用的
private:私有的
protect:保护的,与私有唯一的区别是,继承的子类可以有权限

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值