實踐課:關於i至誠的案例分析--陳杰
阿新 • • 發佈:2022-04-07
封裝
-
該露的露,該藏的藏
我們程式設計要追求”高內聚,低耦合"。高內聚就是類的內部資料操作細節自己完成,不允許外部干涉;低耦合:僅暴露少量的方法給外部使用。
-
封裝(資料的隱藏)
通常,應禁止直接訪問一個物件中資料的實際表示,而應通過操作介面來訪問,這稱為資訊隱藏。
-
記住這句話就夠了:屬性私有,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(); //說了一句話
}
}