Effective Java 学习笔记二 对象访问限制

Java语言作为一种面向对象设计的语言,具有封装、抽象、继承、多态的特性,而访问控制是实现这些逻辑设计的关键,Java中访问限制修饰符包括public、protected、default、private
写在前面
1.封装:是面向对象方法的重要原则,把对象的属性和行为(数据)结合为一个独立的类或者接口,并尽可能隐藏对象的内部实现细节,把一些信息通过公有方法和视图(asXxx)提供出去,别人只能用我提供的功能实现需求,而不知道是如何实现的,增加安全性
2.抽象:表示对问题领域进行分析、设计中得出的抽象的概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象,在java中抽象用 abstract 关键字来修饰,用 abstract 修饰类时,此类就不能被实例化,需要被子类继承重写抽象方法之后才可以实例化对象
3.继承:是面向对象最显著的一个特性,继承是从已有的类中派生出新的类称为子类,子类继承父类的数据属性和行为,并能根据自己的需求扩展出新的行为,提高了代码的复用性
4.多态:指允许不同的对象对同一消息做出不同响应,同一消息可以根据发送对象的不同而采用不同的行为方式(发送消息就是函数调用)。封装和继承几乎都是为多态而准备的,在执行期间判断引用对象的实际类型,根据其实际的类型调用其相应的方法

1.访问控制权限
public & protected & default & private访问权限对比:
这里写图片描述
2.关于继承中一些规约
1.接口中方法默认为public abstract属性
(在Java1.8中接口可以包含方法的实现,需要加default关键字
default public void hello() {...})
2.子类访问限制要弱于父类访问限制(如果父类访问限制符为public,子类中方法访问限制符必须为public)
3.使类和成员的可访问性最小化,隐藏内部数据和其他实现细节,除了公有静态final域(常量)特殊情形外,公有类都不应该包含公有域,并且要确保公有静态final域锁引用的对象都是不可变的(eg: String对象,注意:任何长度非零数组都是可变的)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值