封装性的两种体现
1、方法就是一种封装
2、关键字private也是一种封装
private关键字
定义一个Person类其中含有age是private属性的,目的在于判断不符合要求的赋值。
package demo01;
public class Person {
private int age;
String name;
String id;
// 专门向age设置值
public void setAge(int num){ // set 有参数没有返回值
if(num>=0&&num<=150){
age = num;
}else{
System.out.println("数据异常");
}
}
// 专门从age中取值
public int getAge(){ // get 没有参数有返回值
return age;
}
public void show() {
System.out.println("我的名字是"+name+",学号是"+id+",今年"+age+"岁了!");
}
}
间接访问具有private属性的成员变量,设置一对setter/getter方法,不能直接访问。
调用Person类
package demo01;
public class UsePerson {
public static void main(String[] args) {
Person one = new Person();
one.name = "库里";
one.id = "311709001108";
//one.age = 10; 错误写法,在其他的类中不能直接访问
one.setAge(105);
int age = one.getAge();
one.show();
}
}
正常
异常提示,所以年龄是成员变量默认的0。