1. 程式人生 > 其它 >實踐課:關於i至誠的案例分析--陳杰

實踐課:關於i至誠的案例分析--陳杰

封裝

  • 該露的露,該藏的藏

    我們程式設計要追求”高內聚,低耦合"。高內聚就是類的內部資料操作細節自己完成,不允許外部干涉;低耦合:僅暴露少量的方法給外部使用。

  • 封裝(資料的隱藏)

    通常,應禁止直接訪問一個物件中資料的實際表示,而應通過操作介面來訪問,這稱為資訊隱藏。

  • 記住這句話就夠了:屬性私有,get/set

封裝的意義

  • 1.提高程式的安全性,保護資料
  • 2.隱藏程式碼的實現細節
  • 3.統一介面
  • 4.提高系統可維護性
package com.oop.demo04;

//類 private:私有
public class Student {

    //屬性私有
    private String name; //名字
    private String 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

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    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 = 3;
        }else {
            this.age = age;
        }
    }
}
package com.oop;


import com.oop.demo04.Student;

//一個專案應該只存一個main方法
public class Application {

    public static void main(String[] args) {

        Student s1 = new Student();

        s1.setName("樸海");
        System.out.println(s1.getName()); // 樸海

        s1.setAge(999); //不合法的
        System.out.println(s1.getAge()); //3

    }
}

繼承

  • 繼承的本質是對某一批類的抽象,從而實現對現實世界更好的建模
  • extends的意思是擴充套件。子類的是父類的擴充套件。
  • Java中類只有單繼承,沒有多繼承!
  • 繼承是類和類之間的一種關係。除此之外,類和類之間的關係還有依賴、組合、聚合等。
  • 繼承關係的兩個類,一個為子類(派生類),一個為父類(基類)。子類繼承父類,使用關鍵字extends來表示。
  • 子類和父類之間,從意義上來講應該具有"is a"的關係。
  • object 類
  • super
  • 方法重寫
package com.oop.demo05;

//在Java中,所有的類都預設直接或間接繼承Object類
//Persong 類:父類
public class Person /*extends Object*/{
    
    //public    公有
    //protected 受保護的
    //default   預設
    //private   私有
    private int money = 10_0000_0000;

    public void say(){
        System.out.println("說了一句話");
    }

    public int getMoney() {
        return money;
    }

    public void setMoney(int money) {
        this.money = money;
    }
}
package com.oop.demo05;

//Student 類 is Person:派生類  子類
//子類繼承了父類,就會繼承父類的全部方法!
public class Student extends Person{
    //Ctrl + H

}
package com.oop.demo05;

//Teacher 類 is Person:派生類  子類
public class Teacher extends Person{
}
package com.oop;


import com.oop.demo05.Student;

//一個專案應該只存一個main方法
public class Application {

    public static void main(String[] args) {
        Student student = new Student();
        student.say();  //說了一句話

    }
}