![零基础Java学习笔记](https://wfqqreader-1252317822.image.myqcloud.com/cover/177/36710177/b_36710177.jpg)
4.10 访问权限
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt005_72.jpg?sign=1739275648-mngIoHJFej42AvrxZd8Ts0QcvbNp6Esl-0-a7a0bb5e6ec35503e037de7e726444dd)
访问权限使用访问修饰符进行限制,访问修饰符有private、protected 和public,它们都是Java 中的关键字。
1.什么是访问权限
访问权限是指对象是否能够通过运算符 “.” 操作自己的变量或通过运算符 “.” 调用类中的方法。
在编写类时,类中的实例方法总是可以操作该类中的实例变量和类变量;类方法总是可以操作该类中的类变量,与访问修饰符没有关系。
2.私有变量和私有方法
使用private 修饰的成员变量和方法被称为私有变量和私有方法。例如:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt005_73.jpg?sign=1739275648-F5az88XSjfTWTO2wtpNixmlTNnxx7EoX-0-054d4b7e816bc73b6a61cc6095eb82c3)
如果现在有一个B 类,则在B 类中创建一个A 类的对象后,该对象不能访问自己的私有变量和方法。例如:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt005_74.jpg?sign=1739275648-jH648VmlL8HAb0yUkWwjp0oQTuXHXT7Z-0-030a925b633834fd884f8b2944fa1f21)
如果一个类中的某个成员是私有类变量,则在另一个类中,不能通过类名来操作这个私有类变量。如果一个类中的某个方法是私有类方法,则在另一个类中,也不能通过类名来调用这个私有类方法。
3.公有变量和公有方法
使用public 修饰的变量和方法被称为公有变量和公有方法。例如:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt005_75.jpg?sign=1739275648-laUAlmmJArxyDBMDi15CQwYB5ppBaHVk-0-b68c7a1883ddb5ad4a90b28db9cfeb9e)
使用public 修饰的变量和方法在任何一个类中创建对象后都会被访问到。例如:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt005_76.jpg?sign=1739275648-bwyuzz1L3AsN6htzshG3WXsI7OwgBQKZ-0-6b5c1ed5ae65e2617ab537563f88943f)
4.友好变量和友好方法
不使用private、public 和protected 修饰的成员变量和方法被称为友好变量和友好方法。例如:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt005_77.jpg?sign=1739275648-631ol0MUWO0Po0YyWMbnEeO1RItNS8jb-0-2ef8d3a56c746c626e020b221f285bd0)
对于同一个包中的两个类而言,如果在一个类中创建了另一个类的对象,则该对象能访问自己的友好变量和友好方法。例如:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt005_78.jpg?sign=1739275648-i3MdS0KYJ7ahJdzgOchzi8cT5voeAb52-0-0fb1e211fdbceeb0e6a517ae4f02d353)
学习笔记
如果源文件使用import 语句引入了另一个包中的类,并使用该类创建了一个对象,则该类的这个对象将不能访问自己的友好变量和友好方法。
5.受保护的成员变量和方法
使用protected 修饰的成员变量和方法被称为受保护的成员变量和方法。例如:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt005_79.jpg?sign=1739275648-172a70QObD2bEZfMfbLtgMFeMKbGsLqF-0-fdede02d1e89f919f4966cbe69392a70)
对于同一个包中的两个类而言,一个类在另一个类创建对象后可以通过该对象访问自己的protected 变量和protected() 方法。例如:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt005_80.jpg?sign=1739275648-30DAnzRvm1SyQ4KXdW4unCczNj7a7o63-0-a19fc1d36a1e29329d8ed897f3326887)
6.public 类与友好类
在声明类时,如果在关键字class 前面加上关键字public,则这样的类就是公有的类。例如:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt005_81.jpg?sign=1739275648-hBE7sGTtejc33wNbwxnB4TuAmPcNhACV-0-fb8787cd3e3347dd048ddaa7a5f9be18)
可以在任何另外一个类中,使用public 类创建对象。如果一个类不使用public 修饰,例如:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt005_82.jpg?sign=1739275648-duSFUOMgeCm3LSO93TMCcEpISOGN2Qec-0-05b032abeed71649cb7320314eda34ba)
则这个没有被public 修饰的类就称为友好类。在另一个类中使用友好类创建对象时,必须保证它们在同一个包中。