8.2 private关键字的作用及使用
问题描述:定义Person的年龄时,无法阻止不合理的数值被设置进来。
解决方案:用private关键字将需要保护的成员变量进行修饰。
一旦使用了private进行修饰,那么本类当中仍然可以随意访问。
但是!超出了本类之外就不能再直接访问了。
间接访问private成员变量,就是定义一对 Getter / Setter 方法
必须叫setXxx或者是getXxx命名规则。
对于基本类型当中的boolean值,Getter方法一定要写成isXxx的形式,而setXxx规则不变。
示例代码:
public class Person { String name; private int age; public void show(){ System.out.println("我叫:" + name + ",年龄:" + age); } public void setAge(int num){ if (num < 100 && num >= 9){ age = num; }else { System.out.println("数据不合理!"); } } public int getAge(){ return age; } }
public class Demo03Person { public static void main(String[] args) { Person person = new Person(); person.show(); person.name = "赵丽颖"; person.setAge(-20); person.show(); } }
练习使用private关键字来定义学生类:
public class Student { private String name; private int age; private boolean male; public void setMale(boolean b){ male = b; } public boolean isMale() { return male; } public void setName(String str){ name = str; } public String getName(){ return name; } public void setAge(int num){ age = num; } public int getAge(){ return age; } }
public class Demo04Student { public static void main(String[] args) { Student stu = new Student(); stu.setName("鹿晗"); stu.setAge(20); stu.setMale(true); System.out.println("姓名:" + stu.getName()); System.out.println("年龄:" + stu.getAge()); System.out.println("是不是爷们:"+ stu.isMale()); } }
执行结果: