- 把方法暴露出来,让方法来控制对这些成员变进行安全的访问和操作
因此,封装实际上有两个方面的含义:把该隐藏的隐藏起来;把该暴露的暴露出来 。
这两个方面都需要通过使用 Java 提供的访问控制符来实现。
=========================================================================
Java提供了3个访问控制符 private ,protected ,public ,分别代表了三个访问控制级别,另外还有个不加任何访问控制符的访问控制级别(默认),提供了四个访问控制级别 ,Java访问控制符的访问控制级别由小到大如图:
访问控制级别图
Java 用于控制可见性的 4 个访问修饰符:
-
private:仅对本类可见
-
默认(无修饰符): 对本包可见
-
protected: 对本包和所有子类可见
-
public 对所有类可见
Java访问控制符的访问范围表如下:
访问控制范围表
| | private | default | protected | public |
| — | — | — | — | — |
| 同一个类中 | √ | √ | √ | √ |
| 同一个包中 | | √ | √ | √ |
| 子类中 | | | √ | √ |
| 全局范围 | | | | √ |
封装实例
public class EncapTest{
//使用 private 修饰成员变量,将这些成员变量隐藏起来
private String name;
private String idNum;
private int age;
//提供方法来操作成员变量
public int getAge(){
return age;
}
public String getName(){
return name;
}
public String getIdNum(){
return idNum;
}
public void setAge( int newAge){
age = newAge;
}
public void setName(String newName){
name = newName;
}
public void setIdNum( String newId){
idNum = newId;
}
}
关于访问控制符的使用,存在如下几条基本原则:
-
类里的绝大部分成员变量都应该使用 private 修饰,只有 一些static 修饰的,类似全局变量的成员变量,才可能考虑使用 public 修饰,除此之外,有些方法只用于辅助实现该类的其他方法,这些方法被称为工具方法 ,工具方法也应该使用 private 修饰
-
如果某个类主要用做其他类的父类,该类里包含的大分方法可能仅希望被其子类重写,而不想被外界直接调用,则应该使用 protected 修饰这些方法。
-
希望暴露出来给其他类自由调用的方法应该使用 public 修饰,因此,类的构造器通过使用 public修饰,从而允许在其他地方建该类的实例。外部类一般都用public修饰,以便被其它类访问。
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
的资深开发者,这些资料都将为你打开新的学习之门!**
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!