1、问题:我们发现直接访问成员变量则对其赋的数据无法限定。
//Student类
public class Student{
int age;
}
//Test类
public class Test{
public static void main(String [] args){
Student student = new Student();
student.age = 1000;//此处可以赋任何值,没有限制
System.out.println(student.age);
}
}
2、解决方法:成员变量变为private,生成setter方法,为成员变量赋值;生成getter方法获取成员变量的值。
//Student类
public class Student{
private int age;
public void setAge(int age){//为成员变量赋值
if(age<0 || age >=120){
System.out.println("年龄无效");
} else{
this.age = age;
}
}
public int getAge(){//获取成员变量的值
return age;
}
}
//Test类
public class Test{
public static void main(String [] args){
Student student = new Student();
student.setAge(10);
System.out.println(student.getAge());
}
}
3、由以上可以得出封装的定义:使用公共方法操作(设置或获取)私有成员变量称为封装,有助于数据安全。