出于数据安全性考虑,常对类的成员变量设置一些访问权限进行保护,
即用关键字private对其修饰、封装,使该成员变量无法被外界直接操作。
此时若想访问这个私有变量的时候,可以通过set、get方法调用。其中,set方法可对成员变量赋值;get用于获取成员变量的值。单独使用时分别对应了只写和只读。
在没有private封装的情况下,当对一个类实例化后可以直接访问类中的成员变量,成员变量是该类所有实例共享的属性。
本文创建了一个简单的经private修饰内部属性的名为People的类,并实例化了一个对象stu,当用形如 stu.name 的方式试图给类的成员变量赋值时,时报错如下:
'name' has private access in '......'
说明封装成功对其进行了保护,此时可通过set、get方法间接访问,
通过setXxx写入,通过getXxx读出,以此方式将学生陈宏晨的三项信息写入并读出,程序如下:
public class Demostudent {
public static void main(String[] args) {
People stu=new People();
stu.setName("陈宏晨");
stu.setAge(30);
stu.setMale(true);
System.out.println("姓名:"+stu.getName());
System.out.println("年龄:"+stu.getAge());
System.out.println("性别:"+stu.isMale());
}
}
/*结果:
姓名:陈宏晨
年龄:30
性别:true*/
附:创建的类People
public class People {
private String name;
private int age;
private boolean 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 void setMale(boolean b) {
male = b;
}
public boolean isMale() {
return male;
}
// 对于布尔值,Getter方法要写成isXxx形式,setter方法不变
}