java 理解java的三大特性之封装

使用封装有三大好处:

          1、良好的封装能够减少耦合。

           2、类内部的结构可以自由修改。

          3、可以对成员进行更精确的控制。

          4、隐藏信息,实现细节。

public class Wife {  
    private String name;  
    private int age;  
    private String sex;  
    private Husband husband;  
  
    public String getName() {  
        return name;  
    }  
  
    public void setName(String name) {  
        this.name = name;  
    }  
  
    public String getSex() {  
        return sex;  
    }  
  
    public void setSex(String sex) {  
        this.sex = sex;  
    }  
  
    public void setAge(int age) {  
        this.age = age;  
    }  
  
    public void setHusband(Husband husband) {  
        this.husband = husband;  
    }  
  
    public Husband getHusband() {  
        return husband;  
    }  
      
}  

  

所以封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,

如果不想被外界方法,我们大可不必提供方法给外界访问。

但是如果一个类没有提供给外界访问的方法,那么这个类也没有什么意义了。

但是那天如果我们需要修改Husband,例如将age修改为String类型的呢?

你只有一处使用了这个类还好,如果你有几十个甚至上百个这样地方,你是不是要改到崩溃。

如果使用了封装,我们完全可以不需要做任何修改,只需要稍微改变下Husband类的setAge()方法即可。}

public class Husband {  
      
    /* 
     * 对属性的封装 
     * 一个人的姓名、性别、年龄、妻子都是这个人的私有属性 
     */  
    private String name ;  
    private String sex ;  
    private String age ;    /* 改成 String类型的*/  
    private Wife wife;  
      
    public String getAge() {  
        return age;  
    }  
      
    public void setAge(int age) {  
        //转换即可  
        this.age = String.valueOf(age);  
    } 

  

也许你是因为粗心写成了,你发现了还好,如果没有发现那就麻烦大了,逼近谁见过300岁的老妖怪啊!

但是使用封装我们就可以避免这个问题,我们对age的访问入口做一些控制(setter)如:

public void setAge(int age) {  
        if(age > 120){  
            System.out.println("ERROR:error age input....");    //提示錯誤信息  
        }else{  
            this.age = age;  
        }  
          
    }  

  

posted @ 2017-10-17 15:37  AlamZ  阅读(358)  评论(0编辑  收藏  举报