物件導向08:封裝詳解

三口一头居發表於2024-03-25
package com.oop.demo04;

//類   private:私有
public class Student {
    //屬性私有,封裝大多數時候都是對於屬性來的
    private String name;//名字,以前public所有人都可以操作這個名字,現在屬性私有就不讓所有人都可以操縱這個屬性了
    private int id;//學號
    private char sex;//性別
    private int age;

    //提供一些可以操作這個屬性的方法!
    //提供一些public的get、set方法

    //get獲得這個資料
    public String getName(){
        return this.name;
    }

    //set 給這個資料設定值
    public void setName(String name){
        this.name = name;
    }

    //alt+insert,選中屬性可以自動給屬性設定get和set方法

    public char getSex() {
        return sex;
    }

    public void setSex(char sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if(age>120 || age<0){
            this.age = age;
        }else{
            age=3;//安全性檢查
        }

    }
}
package com.oop;

import com.oop.demo04.Student;

/*
* 封裝的意義
* 1.提高程式的安全性
* 2.隱藏程式碼的實現細節
* 3.統一介面
* 4.系統的可維護性增加了
* */
public class Application {
    public static void main(String[] args) {
        Student s1 = new Student();
        s1.setName("qingjiang");
        System.out.println(s1.getName());


        s1.setAge(999);//把年齡設定成這樣是不合法的,所以需要在封裝時做一些安全性檢查
        System.out.println(s1.getAge());

    }
}

相關文章