【45】java的封装剖析
【45】java的封装剖析
fengsehng 发表于1年前
【45】java的封装剖析
  • 发表于 1年前
  • 阅读 2
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

类是构造对象的模板或蓝图。

封装的一些概念

从形式上看,封装不过是将数据和行为组合到一个包中,并对对象的使用者隐藏了数据的实现形式。

每个对象都包含实例域和方法。实例域的集合代表了一个集合的状态,通过方法来向对象发送消息,改变对象的状态。

封装的意义

实现封装的目的就是不让其他类的方法访问自己的实例域。
程序是通过类的方法进行交互。封装给了对象黑盒的特性,这是提高重用性和可靠性的关键。

降低了类之间的耦合性

一个对象无法访问其他的类的对象的数据,所以不对其他的类依赖,降低了耦合性。

方便数据域的错误检查

可以直接查找类的相应的方法,而不用排查其他的情况。

封装的注意事项:

不要编写返回引用可变对象的访问器方法

举个例子:

class Emplyee{
    private Date day;
    public Date getDay(){
        return day;
    }
}

上面的例子破坏了封装性

Emplyee harry;
Date d = harry.getDay();
d.setTime(new Date(););

出错的原因

d和day引用的是一个对象。对d改变。对象的私有实例域也会改变。

如何避免:

返回一个可变对象引用的克隆。

class Emplyee{
    private Date day;
    public Date getDay(){
        return day.clone();
    }
}

欢迎入群:

公众号IT面试题汇总讨论群

这里写图片描述

如果扫描不进去,加我微信(rdst6029930)拉你。

扫我微信二维码加我

这里写图片描述

欢迎关注《IT面试题汇总》微信订阅号。每天推送经典面试题和面试心得技巧,都是干货!

微信订阅号二维码如下:

这里写图片描述

共有 人打赏支持
粉丝 4
博文 284
码字总数 214494
×
fengsehng
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: