封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。把过程和数据包围起来,对数据的访问只能通过已定义的接口。
在java中通过关键字private实现封装。
需要用特定的方法来进行属性的读写:getter setter
首先了解未封装的函数容易被其他类改变其属性值。
public class Test {
String name="张三"; //参量没有用private修饰
public void ss(){ //获取属性值
System.out.println(name);
}
}
public class Test2 {
public static void main(String[] args){
Test test=new Test();
test.name="李四";
test.ss();
}
}
运行显示结果为:
李四
说明属性值已经被Test2改变
如果将Test类中的name属性加上private修饰
编译环境报错,说明该属性不能被本类以外的类调用。
那封装之后的类通过什么方法来改变其属性值呢?
答案就是setter和getter
public class Test {
private String name="张三"; //参量用private修饰
public void ss(){ //获取属性值
System.out.println(name);
}
public String getName(){
return name;
}
public void setName(String newName){
name=newName;
}
}
public class Test2 {
public static void main(String[] args){
Test test=new Test();
test.setName("李四");
System.out.println("名字为:"+test.getName());
test.getName();
}
}
显示结果为:
名字为:李四