![零基础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=1740081230-vjXytUpp20NGyeT1l3H00VNZr486gQ2k-0-cacf99375747b5a4474adee8ca861ca3)
访问权限使用访问修饰符进行限制,访问修饰符有private、protected 和public,它们都是Java 中的关键字。
1.什么是访问权限
访问权限是指对象是否能够通过运算符 “.” 操作自己的变量或通过运算符 “.” 调用类中的方法。
在编写类时,类中的实例方法总是可以操作该类中的实例变量和类变量;类方法总是可以操作该类中的类变量,与访问修饰符没有关系。
2.私有变量和私有方法
使用private 修饰的成员变量和方法被称为私有变量和私有方法。例如:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt005_73.jpg?sign=1740081230-AKWp4z880mJr2y6JcenCPhjIJuD9YxJi-0-ee53f456747ace796c9e99679c29259e)
如果现在有一个B 类,则在B 类中创建一个A 类的对象后,该对象不能访问自己的私有变量和方法。例如:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt005_74.jpg?sign=1740081230-yxgnCWs6H5GP0lralMkqM7ifF0UBGVRn-0-fd4d0cbfeef3eb36a27f42743ad7896a)
如果一个类中的某个成员是私有类变量,则在另一个类中,不能通过类名来操作这个私有类变量。如果一个类中的某个方法是私有类方法,则在另一个类中,也不能通过类名来调用这个私有类方法。
3.公有变量和公有方法
使用public 修饰的变量和方法被称为公有变量和公有方法。例如:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt005_75.jpg?sign=1740081230-FGvQxlaF5lQ1Jq5RRoT2ZivG7RCQuz5k-0-a1ffe63cf50e90ae94addbbde3694e9b)
使用public 修饰的变量和方法在任何一个类中创建对象后都会被访问到。例如:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt005_76.jpg?sign=1740081230-WN8KXuAjaONgQm2NK311JQtjfn5ZZMSk-0-aad5819d3f30cd43aafae5a706f994a0)
4.友好变量和友好方法
不使用private、public 和protected 修饰的成员变量和方法被称为友好变量和友好方法。例如:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt005_77.jpg?sign=1740081230-EjmVnf8Qkh7xGYmLtSWHfFufuUXMpBiw-0-9cc4787993a9d2a14cddc1ff682f380b)
对于同一个包中的两个类而言,如果在一个类中创建了另一个类的对象,则该对象能访问自己的友好变量和友好方法。例如:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt005_78.jpg?sign=1740081230-67zEt27imQCTooM4dzHmWgKVHtNF9P2G-0-985e7e775bf8771fa378c1225f29888e)
学习笔记
如果源文件使用import 语句引入了另一个包中的类,并使用该类创建了一个对象,则该类的这个对象将不能访问自己的友好变量和友好方法。
5.受保护的成员变量和方法
使用protected 修饰的成员变量和方法被称为受保护的成员变量和方法。例如:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt005_79.jpg?sign=1740081230-e0TbWZE8A6XN4bae9DRltyX7nBuDIxkj-0-ac92b62eb62fe6b651764e01d09a7f79)
对于同一个包中的两个类而言,一个类在另一个类创建对象后可以通过该对象访问自己的protected 变量和protected() 方法。例如:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt005_80.jpg?sign=1740081230-TYD7ctntYN2rZpFTkGlhoeW6rJq4zH3J-0-e6b2d5da8bba6f25966c7eb31c100c1c)
6.public 类与友好类
在声明类时,如果在关键字class 前面加上关键字public,则这样的类就是公有的类。例如:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt005_81.jpg?sign=1740081230-aLnK5wdIBRC2votKdK0dWKvo64PNa7ri-0-43c1a32c3a7be8ca419e972471674520)
可以在任何另外一个类中,使用public 类创建对象。如果一个类不使用public 修饰,例如:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt005_82.jpg?sign=1740081230-TsTUnxBGIV3rF4Okw1jGvMoGed4qhtFN-0-9c63b028d039dc1887c3fdb989e2216d)
则这个没有被public 修饰的类就称为友好类。在另一个类中使用友好类创建对象时,必须保证它们在同一个包中。