问题描述:定义Person的年龄时,无法阻止不合理的数值被设置进来
解决方案:用private关键字将需要保护的成员变量进行修饰
一旦使用private进行修饰,那么本类当中仍然可以随意进行访问
但是超出本类范围就不能直接访问
间接访问private成员,就是定义一个get/set方法
必须叫setXXX或者getXXX命名规则。
对于Getter来说,不能有命名参数,返回值类型和成员变量对应;
对于Setter来说,不能有返回值,参数类型和成员变量对应
public class Person {
String name;//姓名
private int age;//年龄
public void show(){
System.out.println("我叫"+name+"."+age);
}
//这个成员方法,专门用于向age设置数据
//set必须有参数,无返回值类型,参数的类型要和成员变量保持一致
public void setAge(int num){
if (num<100&&num>9){
age=num;
}else{
System.out.println("数据不合理!");
}
}
//这个成员方法专门用于获取age的数据
//get返回值类型必须和成员变量的类型保持一致
public int getAge(){
return age;
}
public class Demo03Person {
public static void main(String[] args) {
Person person=new Person();
person.name="赵丽颖";
// person.age=-18; //直接访问private类容是错误写法
person.setAge(20);
person.show();
}