问题描述:创建一个对象one的年龄时,无法阻止不合理的数值被设置进来。
解决方案:用private关键字讲需要保护的成员变量进行修饰。
一旦使用了private关键字进行修饰,那么本类当中仍然可以访问。
但是!超出了本类范围之外就不能在访问了。
间接访问private成员变量,就需要定义一对儿setter/getter方法。
必须叫setXxx/getXxx的命名规则。
对于setter来说,不能有返回值,参数类型和成员变量对应。
对于getter来说,不能有参数,返回值类型和成员变量对应。
下面定义一个Person类:
package demo03;
public class Person {
String name;
private int age;
public void show(){
System.out.println("我叫:"+name+",年龄:"+age);
}
//这个成员方法,专门用于向age设置数据
public void setAge(int num){
if(num<100&&num>0){ //合理情况
age=num;
}else{ //数据不合理
System.out.println("数据类型错误!");
}
}
//这个成员方法,专门用于获取age的数据
public int getAge(){
return age;
}
}
创建一个对象,年龄故意写错:
package demo03;
public class Demo03Person {
public static void main(String[] args) {
Person one=new Person();
one.show();
one.name="张三";//没用private关键字,可以直接访问
//one.age=-18; //写了private关键字,直接访问private内容,是错误写法!
one.setAge(-18);
one.show();
}
}
注意:对于基本类型当中的boolean类型,Getter方法必须改成isXxx,而Setter方法规则不变,还是setXxx的写法
以上就是private用法!