提示:本文采用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语句)
本文仅自用,如能帮到你不胜荣幸