热点新闻
13. Java类中的封装
2023-07-05 09:56  浏览:55  搜索引擎搜索“错改B2B”
温馨提示:信息一旦丢失不一定找得到,请务必收藏信息以备急用!本站所有信息均是注册会员发布如遇到侵权请联系文章中的联系方式或客服删除!
联系我时,请说明是在错改B2B看到的信息,谢谢。
展会发布 展会网站大全 报名观展合作 软文发布

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****    IP:117.173.23.***     举报/删稿
展会推荐
让朕来说2句
评论
收藏
点赞
转发