1. 程式人生 > 其它 >|NO.Z.00037|——————————|BigDataEnd|——|Java&方法封裝.V19|---------------------------------------------|Java.v19|封裝實現.v02|

|NO.Z.00037|——————————|BigDataEnd|——|Java&方法封裝.V19|---------------------------------------------|Java.v19|封裝實現.v02|



[BigDataJava:Java&方法封裝.V19]                                                                             [BigDataJava.面向物件] [|章節二|方法和封裝|封裝的實現|]








一、封裝的實現
### --- 封裝的實現流程

~~~     ——>        私有化成員變數,使用private關鍵字修飾。
~~~     ——>        提供公有的get和set方法,並在方法體中進行合理值的判斷。
~~~     ——>        在構造方法中呼叫set方法進行合理值的判斷。
二、程式設計程式碼
### --- 程式設計程式碼:封裝類

/*
    程式設計實現Student類的封裝  封裝類
 */
public class Student {
    
    // 1.私有化成員變數,使用private關鍵字修飾
    // private關鍵字修飾表示私有的含義,也就是該成員變數只能在當前類的內部使用
    private int id;       // 用於描述學號的成員變數
    private String name;  // 用於描述姓名的成員變數 
    
    // 3.在公有的構造方法中呼叫set方法進行合理值的判斷
    public Student() {}
    public Student(int id, String name) {
        //this.id = id;
        //this.name = name;
        setId(id);
        setName(name);
    }
    
    // 2.提供公有的get和set方法,並在方法體中進行合理值的判斷
    // 使用public關鍵字修飾表示公有的含義,也就是該方法可以在任意位置使用
    public int getId() {
        return id;
    }
    public void setId(int id) {
        if(id > 0) {
            this.id = id;
        } else {
            System.out.println("學號不合理哦!!!");
        }
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    
    // 自定義成員方法實現特徵的列印
    // 什麼修飾符都沒有叫做預設的訪問許可權,級別介於private和public之間
    public void show() {
        //System.out.println("我是" + name + ",我的學號是" + id);
        System.out.println("我是" + getName() + ",我的學號是" + getId());
    }
}
三、程式設計程式碼:測試類
### --- 程式設計程式碼:測試類

/*
    程式設計實現Student類的測試
 */
public class StudentTest {
    
    public static void main(String[] args) {
        
        // 1.宣告Student型別的引用指向Student型別的物件
        Student s1 = new Student();
        // 2.對成員變數進行賦值並列印
        //s1.id = -1001;
        //s1.name = "張飛";
        s1.setId(-1001);
        s1.setName("張飛");
        s1.show(); // 1001 張飛
        
        System.out.println("----------------------------------------------------");
        // 3.使用有參方式構造物件並列印特徵
        Student s2 = new Student(-1001, "張飛");
        s2.show(); 
    }
}
四、編譯列印
C:\Users\Administrator\Desktop\project>javac StudentTest.java

C:\Users\Administrator\Desktop\project>java StudentTest
學號不合理哦!!!
我是張飛,我的學號是0
----------------------------------------------------
學號不合理哦!!!
我是張飛,我的學號是0








===============================END===============================


Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart                                                                                                                                                    ——W.S.Landor



來自為知筆記(Wiz)