Java入門系列-15-封裝

爲何要封裝

Student stu=new Student();
stu.age=-10;

上面的代碼中 age 屬性被隨意訪問,容易產生不合理的賦值java

什麼是封裝

封裝:將類的某些信息隱藏在內部,不容許外部程序直接訪問,而是經過該類提供的方法來實現對隱藏信息的操做和訪問。安全

封裝是面向對象三大特徵之一this

封裝後隱藏了類的實現細節,方便咱們加入控制語句保證數據安全性,方便修改實現。code

Java 中實現封裝能夠用如下3步實現:對象

1.修改屬性的可見性,設爲 private (類外部沒法訪問)ip

2.建立共有的 getter/setter 方法用於屬性讀寫get

3.在 getter/setter 方法中加入屬性控制語句class

public class Student {
    private String name;
    private int age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        if(age>0&&age<=100) {//年齡大於0小於100
            this.age = age;
        }else {
            this.age=18;//默認值
        }
    }
    public static void main(String[] args) {
        Student stu1=new Student();
        //給屬性賦值
        stu1.setAge(10);
        stu1.setName("張三");
        //使用屬性的值
        System.out.println(stu1.getName()+" 的年齡爲:"+stu1.getAge());
        Student stu2=new Student();
        stu2.setAge(110);
        stu2.setName("李四");
        System.out.println(stu2.getName()+" 的年齡爲:"+stu2.getAge());
    }
}

在使用 private 關鍵字修飾屬性以後,就不能再直接訪問屬性了,而是須要經過 getter 和 setter 方法進行取值和賦值。cli

在 Eclipse 中能夠使用 Shift+Alt+S+R 自動生成 getter/setter搜索

在 Idea 中使用 Alt+Insert 後選擇 Getter and Setter

搜索關注公衆號「享智同行」,第一時間獲取技術乾貨

相關文章
相關標籤/搜索