您的位置:首页 > 编程语言 > Java开发

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

2017-10-17 15:37 134 查看

使用封装有三大好处:

          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;
}

}

  

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: