【后端】java基础(5.3)java高级基础之java的修饰符——访问控制符
java的控制符可分为两大类,一种是访问控制符,另一种是非访问控制符。我们上文提到的public,private便是访问控制符了。
- 访问控制符:访问控制符的作用是说明被声明的内容(类、属性、方法和构造方法)的访问权限
我们的访问控制符有四种:- public
- protected
- 不修饰
- private
这里有一张经典的表可以说明他们的作用范围:
访问控制符 | 同一类下 | 同一包下 | 不同包下的子类 | 不同包下的非子类 |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
不修饰 | √ | √ | × | × |
private | √ | × | × | × |
以上表格中“√”表示可以访问,“×”表示不能访问,我们可以看出,public修饰的内容范围最大,private修饰的范围内容最小。
我们新建一个工程,在里面建两个包,test1和test2,然后在test1包下建一个类,叫Person,这次只给给四个属性,name age,gander,birth,用不同的修饰方法来修饰,并在类里面新建一个main方法。
- public class Person {
- public String name;
- protected int age;
- String gander;
- private String birth;
- 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;
- }
- public String getGander() {
- return gander;
- }
- public void setGander(String gander) {
- this.gander = gander;
- }
- public String getBirth() {
- return birth;
- }
- public void setBirth(String birth) {
- this.birth = birth;
- }
- public static void main(String[] args) {
- Person person = new Person();
- }
- }
然后,我们在main方法里实例化一个Person类,然后我们不使用它的getter和setter方法,直接使用属性:
- public static void main(String[] args) {
- Person person = new Person();
- person.name = “大妖怪”;
- person.age = 100;
- person.birth = “2016”;
- person.gander = “男”;
- System.out.println(person.name);
- }
你会发现运行起来没有问题,这个就是同一类下的情况。
我们继续建一个Test类在test1包下,然后把我们刚刚这段main方法拷进去:
(此图片来源于网络,如有侵权,请联系删除! )
你会发现,我们调用birth属性这里报错了,并且点击左边的红叉,它会给出提示让你要么改birth的修饰符,要么调用setBirth方法。
(此图片来源于网络,如有侵权,请联系删除! )
这种情况属于不在同一类下在同一包下的情况了,我们查看下birth属性的修饰方法,正好是private。
那么我们把Test类拷到test2包下并且导包:
(此图片来源于网络,如有侵权,请联系删除! )
你会发现现在只有name可以正常使用,别的都报错了,这种情况是不同包下的非子类,通过表格我们可以查到只有public修饰的属性可以被访问,而name的修饰符就是public。
接下来,我们让这个Student类继承我们的Person类,并且写个test方法去调用我们父类中的属性:
- public class Student extends Person {
- public void test(){
- name = “大妖怪”;
- age = 1;
- birth = “2016”;
- gander = “男”;
- }
- }
(此图片来源于网络,如有侵权,请联系删除! )
此时你会发现,没报错的只有我们的name和age,也就是public和protected修饰的属性。
讲到这可以顺便说说我们的一些代码命名规范了:
- 项目名全部小写
- 包名全部小写
- 类名首字母大写,如果类名由多个单词组成,每个单词的首字母都要大写
- 变量名、方法名首字母小写,如果名称由多个单词组成,每个单词的首字母都要大写
- 常量名全部大写
- 所有命名规则必须遵循以下规则:
- 名称只能由字母、数字、下划线、$符号组成
- 不能以数字开头
- 名称不能使用JAVA中的关键字
- 不允许出现中文及拼音命名
至于什么是关键字,给个最简单的判断方法,在eclipse中你写出来的东西是红色的就是了,比如class:
(此图片来源于网络,如有侵权,请联系删除! )
免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。
本站为避免不必要的纷争,分享的所有资源中一切可能有版权风险的资源将全部转载自第三方网站或平台,站长只为大家提供相关资源的介绍和跳转引导。 因可能有疏忽大意,所以如有遗漏资源侵犯了您的合法权利,请联系站长删除。
【小程序源码网资源下载使用说明】:
本站所分享的一切QQ小程序源码,thinkphp整站源码,微信小程序源码,图文教程等资源仅供用户学习参考使用,任何人不得作其他用途,违者自行承担所有责任。
【小程序源码网毫无人看的介绍】:
本站又称Z站,原名贼娘网,开站于2018年,换过三任站长,目前站长是第四任站长,本站是一个主要分享免费开源小程序源码/网站源码/免费素材/教程资源的网站,主要小程序资源有用于学习的小程序源码,也有正版原创可商用的小程序源码,是一个公益博客型网站。
【小程序源码网原创源码版权申明】:
未经小程序源码网许可,任何人不得擅自使用本站原创首发源码进行商业行为(除本站VIP用户在期限内,版权无使用限制),否则将依法承担相应赔偿责任。
【小程序源码网转载文章版权申明】:
本站所转载的QQ小程序或微信小程序源码与其他资源仅供学习,任何人不得作其他用途,违者自行承担所有责任。
【小程序源码网站长最后的屁话】:
如有您认为本站有任何侵犯您合法权益的文章,或者您有什么疑问需求,欢迎联系站长QQ,站长24小时在线,备注公司名称和源码版权问题或者需要小程序定制开发等站长业务类型可急速处理,如果您只是交流小程序的一些开发问题或源码问题可以加入QQ群讨论,就不用加站长啦,对于白嫖党,QQ群才是处理问题的天堂,当然站长也欢迎大家骚扰~
小程序源码网 » 【后端】java基础(5.3)java高级基础之java的修饰符——访问控制符