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