private 关键字,Getter和Setter成员方法
问题描述:定义Person,年龄age不应该为负数或太大,数据不安全。
解决方案:使用private关键字。
- 一旦使用了private关键字对成员进行了修饰,只有本类当中才能用。那么超出了本类范围之外,就不能直接访问了。
- 如果使用了private修饰的成员变量,可以使用间接访问。
- 要为private成员变量编写一对Setter 和 Getter成员方法。
public class Person {
// 成员变量
String name;// 姓名
private int age; // 年龄
// 成员方法
public void show() {
System.out.println("我叫" + name + ",今年" + age + "岁。");
}
//专门定义一个成员方法用来设置成员变量的数据,Seter方法
public void setAge(int num) { //必须是void,set开头命名,参数的数据类型也要和private的一样
//设置条件判断进行数据合理性检测,安全性把关
if (num<0||num>200) {
System.out.println("数据不合理");
}
age = num;
}
//专门定义了一个成员方法用来获取成员变量的数据,Getter方法
public int getAge() {
return age;
}
}
public class Demo06Person {
public static void main(String[] args) {
Person person = new Person();
person.show();// 我叫null,今年0岁。
person.name = "赵丽颖";
// person.age = 19; //错误!private内容不能直接访问
person.setAge(-20); //数据不合理
person.setAge(20);
person.show(); // 我叫赵丽颖,今年20岁。
}
}