• 全国 [切换]
  • 二维码
    错改网

    手机WAP版

    手机也能找商机,信息同步6大终端平台!

    微信小程序

    微信公众号

    当前位置: 首页 » 行业新闻 » 热点新闻 » 正文

    13. Java类中的封装

    放大字体  缩小字体 发布日期:2020-01-07 09:56:50   浏览次数:1212  发布人:5759****  IP:117.173.23.***  评论:0
    导读

    13. Java类中的封装 1、Java类中的封装 学习了访问权限修饰符后,应该可以理解封装性的概念和含义。封装性是面向对象三大特征之一 封装性是一种信息隐藏技术 2、封装的概念 在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。 要访问该类的

    13. Java类中的封装

    1、Java类中的封装

    学习了访问权限修饰符后,应该可以理解封装性的概念和含义。封装性是面向对象三大特征之一 封装性是一种信息隐藏技术

    2、封装的概念

    在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。

    封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。

    要访问该类的代码和数据,必须通过严格的接口控制。

    封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。

    适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。

    3、两个含义:

    -对象的全部属性和全部方法结合在一起,形成一个不可分割的独立单位 -尽可能隐藏对象的内部结构

    4、具体表现:

    -属性使用private权限 -方法使用public权限

    5、封装的优点

    • 良好的封装能够减少耦合。
    • 类内部的结构可以自由修改。
    • 可以对成员变量进行更精确的控制。
    • 隐藏信息,实现细节。

    6、封装的步骤

    1. 修改属性的可见性来限制对属性的访问(一般限制为private)

    2. 对每个值属性提供对外的公共方法访问,也就是创建一对赋取值方法,用于对私有属性的访问

    3. 重写从父类Object继承下来的toString()方法,来输出自己想要的信息。

    4. 重写从父类Object继承的hashCode()方法,计算hashCode值,hashCode值主要用来判断对象的属性是否相同,进行数组的排序。

    5. 重写从父类Object继承的equals()方法,判断两个对象属性值是否完全相同。

    示例:

    package com.company.practice.demo; public class User { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }

    完整代码:

    package com.company.practice.demo; public class User { private String name; private int age; public User() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + age; result = prime * result + ((name == null) ? 0 : name.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; User other = (User) obj; if (age != other.age) return false; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; return true; } @Override public String toString() { return "User [name=" + name + ", age=" + age + "]"; } }

    不推荐电脑端访问(用户少)
    请微信扫一扫,查看完整信息(记得微信收藏)
     
    (文/匿名(若涉版权问题请联系我们核实发布者) / 非法信息举报 / 删稿)
    打赏
    免责声明
    • 
    本文为昵称为 5759**** 发布的作品,本文仅代表发布者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,发布者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们154208694@qq.com删除,我们积极做(权利人与发布者之间的调停者)中立处理。郑重说明:不 违规举报 视为放弃权利,本站不承担任何责任!
    有个别老鼠屎以营利为目的遇到侵权情况但不联系本站或自己发布违规信息然后直接向本站索取高额赔偿等情况,本站一概以诈骗报警处理,曾经有1例诈骗分子已经绳之以法,本站本着公平公正的原则,若遇 违规举报 我们100%在3个工作日内处理!
    0 条相关评论
     

    (c)2008-现在 cuogai.com All Rights Reserved.