访问修饰符和this关键字

提示:本文采用idea编辑器
本章代码基于作者的上一篇文章“【Java面向对象编程笔记1】类和对象”结尾处的代码进行修改



预备知识:成员变量和局部变量

成员变量和局部变量
由上一章内容易知,method()方法的age叫成员变量(属性)
没有被赋值,故默认被赋初值age = 0
而method()方法的age是局部变量
已经被赋值了,故age = 10
那么上述代码打印出来的age = ?

答案是10
因为局部变量与成员变量的名字相同时,成员变量就会被屏蔽
可以简单理解为有多个重名的值时,采纳最近的那个值(就近原则)

提示:此处只做简单了解


一、this关键字

如果局部变量与成员变量的名字相同,此时成员变量被隐藏,但我又想使用成员变量,就要加上this关键字。即,this的作用:区分成员变量和局部变量

还是拿上面那个图举例,如果我想使用method()方法外的那个age,
那么只需要把第五行代码改写成:

System.out.println(this.age);

打印出来的结果就是 0


二、访问修饰符

访问修饰符可以用来控制类、属性和方法、字段的可见性和访问权限。
加上不同的访问修饰符,可以增加属性的安全性。Java中提倡对象应当通过调用方法来改变自己的属性

访问修饰符主要分为四类:
1.public(公共访问)
被声明为public的类、方法、字段可以被任何其他类访问。
2.protected(受保护访问)
被声明为protected的方法、字段只能被同一个包中的类访问,或者是其子类。
3.default(默认访问,即不写任何关键字)
如果没有指定访问修饰符,则默认为default,同一个包中的类可以访问,不同包中的类无法访问。
4.private(私有访问)
被声明为private的方法、字段只能在声明它们的类内部访问。

比较值得注意的是,使用private修饰符后,需要提供相应的get方法和set方法给其他类使用
(1)每个属性都有它的setXXX()和getXXXX()方法,且这两个方法都要用public修饰
(2)setXXX()方法:用于给该属性赋值
(3) getXXX()方法:用于获取该属性的值

ps:XXX是该属性或方法的名字;在idea中每个属性或方法的set方法和get方法都可以自动生成


总结

综上所学,可以把上篇文章的代码优化如下:
(如果你想设置price的合理输入值为price>0,否则输出“错误” 。可以在set()方法中写一个if-else语句)
在这里插入图片描述


本文仅自用,如能帮到你不胜荣幸

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值