封装:隐藏对象内部的复杂性,只留简单的接口供外界使用
属性私有化 ,留setter,getter方法进行属性的操作。
封装
有时称为数据隐藏
将数据和和对数据的操作隐藏在一个类中,即隐藏对象的属性和实现细节,仅对外公开接口。
使用者不需要知道类的具体实现,只要知道怎么调用就可以了。
比如:
所有类的成员变量一般设置为private,如果需要访问和修改,通过getter和setter方法
1 /**封装*/ 2 3 public class Demo1{ 4 public static void main(String args[]){ 5 HumanWife hw=new HumanWife(); 6 System.out.println(hw.name); //公共的、默认的直接获取 7 8 HumanQingRen hqr=new HumanQingRen();//实例化 9 10 hqr.setName("小红"); //私有的(private),通过set为私有赋值 11 System.out.println(hqr.getName()); //得到私有的值 12 13 hqr.setAge(18); //通过set为私有属性赋值 14 System.out.println(hqr.getAge());//通过get获取私有属性值 15 16 } 17 } 18 19 class Human{ 20 String name = "张三"; 21 int age = 25; 22 char sex = '男'; 23 24 } 25 26 class HumanWife{ 27 String name = "花花"; 28 int age = 18; 29 char sex = '女'; 30 31 } 32 33 class HumanQingRen{ 34 private String name /* = "小草"*/; //直接赋值,不能在其他更改 35 private int age; 36 private char sex; 37 38 //(public)供外界使用的接口 39 public void setName(String name){ //给外界提供 set。。。方法。 40 this.name=name; //“this.name” 为本类的成员变量name。 =“name”为形参name。 41 } 42 43 public void setAge(int age){ 44 this.age=age; 45 } 46 47 48 public String getName(){ 49 return name; 50 } 51 52 public int getAge(){ 53 return age; 54 } 55 56 }
1 //权限 2 3 public class Demo02{ 4 public static void main(String []args){ 5 HumanQingRen hqr = new HumanQingRen(); 6 hqr.setName("小草"); 7 System.out.println(hqr); 8 System.out.println(hqr.getName()); 9 boolean b = false; 10 System.out.println("b的值是"+b); 11 } 12 } 13 class Human{ 14 String name = "张三"; 15 int age = 25; 16 char sex ='男'; 17 18 } 19 class HumanWife{ 20 String name = "花花"; 21 int age = 18; 22 char sex = '女'; 23 24 } 25 class HumanQingRen{ 26 private String name ; 27 private int age =10; 28 private char sex = '男'; 29 public void setName(String name){ 30 this.name = name; 31 } 32 public String getName(){ 33 return name; 34 } 35 public String toString(){ 36 return "姓名:"+name+" 年龄:"+age+" 性别:"+sex; 37 } 38 }