面向對象:①類與對象②封裝③繼承④接口
類與對象:
- 概念:類就是類別的意思? 用class表示 /? 面向對象編程,萬物皆可編程,在程序中表示一個事物時,往往因為事物的復雜程度導致編程的代碼非常復雜 【基本數據類型,只能實現一個變量用來表示一個數據的情況,當下面這種有多個數據組成的一份數據,使用一個基本數據類型表示時就比較復雜】
比如:一個人、一個用戶、一個學生
人:姓名 年齡 性別 體重 身高 等
用戶:賬號ID 密碼 幾分 電話 地址 郵箱等
學生:姓名 年齡 班級 學分 學號等
????????①復合型數據類型創建的變量——叫做對象變量,對象變量中包含了,按照類模版生成的多個基本數據/其他數據
- 什么是對象? 對象就是具體的事物、具體存在的。? 程序中 對象指代一個事物在計算機中映射的數據體 存在于內存中
- 類與對象的關系?
①類就是一個概念性的東西,是一個模版 用于創建對象變量的模版
②對象是一個具體的東西 是代碼執行之后? 在內存中存在的一份數據體
類與對象的語法:
- 類的定義: 語法: public class 類名{? }
- 命名要求:推薦【阿里巴巴Java開發手冊】
? ? ? ? ①類名/類文件名:首字母大寫,多個單詞拼接,每個單詞首字母大寫 -> 駝峰命名法
? ? ? ? ②方法名/變量名:首字母小寫,多個單詞拼接,每個首字母大寫 -> 小駝峰命名法
? ? ? ? ③偶爾使用的局部變量:循環中計數等等可以使用字母? ? 或者小寫或者縮寫?
? ? ? ? ④不要使用拼音,使用單詞。
- 一個類中需要定義什么內容,能變成一個可以符合面向對象編程的復合型數據類型
- 類就是復合型數據類型,如何規劃一個類別?
? ? ? ? 類別的來源——共性
? ? ? ? 通過分析事物之間是否具有相同的/相似的? 屬性 特征 行為 功能…… 來劃分類別
? ? ? ? 所以我們定義類時,也需要找到 這個類別對應事物都有哪些數據 特征 行為 功能等
? ? ? ? 然后使用代碼將這些內容定義到類中,實現復合型數據類型的組成
-
學生管理系統
- 創建對象的格式: 類型 對象變量名 = new? 類名();
????????①學生可以注冊信息
????????②可以查看自己的信息
????????③可以修改自己的信息
????????④可以選課
????????⑤可以在線學習
????????⑥可以在線考試
- 首先需要知道系統重應該保存每個學生的哪些信息,需要哪些信息來完成所有 功能? ? ? ? ? ? ? ? 信息: 姓名 學號 學分 年齡 班級 專業 密碼 課程表? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 功能:登錄 查信息 修改信息 選課 學習 考試
- 所有一個類的內容包含? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ①屬性:用來表示這個類別對應的事物應該有什么數據信息 通常在代碼使用變量來定義
? ? ? ? ? ? ? ? 格式:屬性的數據類型? 屬性數據變量名;
? ? ? ? ? ? ? ? String name;? int age;
? ? ? ? ②方法:用來表示這個類別具備的行為/功能,一對象為主語的行為,通常使用方法(函數,一段代碼的結構)來表示
? ? ? ? ? ? ? ? 格式:public 返回值類型 方法名(參數){? 方法體? }
? ? ? ? ? ? ? ? - 返回值:方法結構的一部分,具備一定的功能性 用于幫助程序更好的完成一些邏輯
? ? ? ? ? ? ? ? ? ? ? ? - 用于實現在調用方法之后,獲得這個方法得到的結果。
? ? ? ? ? ? ? ? ? ? ? ? - 定義方法時就需要考慮如何設計返回值。思考這個方法需要返回的結果是什么類型,從而定義方法設定返回值類型。
? ? ? ? ? ? ? ? ? ? ? ? - 如果這個方法不需要返回值,返回值類型可以設定為void
? ? ? ? ? ? ? ? ? ? ? ? - 一單設定了具體的返回值類型,在方法任何有可能結束運行的位置 都需要使用return返回響應返回值類型的結果
? ? ? ? ? ? ? ? ? ? ? ? - 在調用方法的位置,可以在方法前面可以創建一個隊形返回值類型的變量,來接收方法先執行完成返回的結果
- Math 工具類 這個類中所有的方法比較特殊,是靜態方法,可以使用類名調用? ? Math.min是兩數比較得最小值? ?Math.max是兩數比較得最大值
? ? ? ? ? ? ? ? - 參數:方法結構的一部分,相當于方法的局部變量
? ? ? ? ? ? ? ? ? ? ? ? - 在定義方法時,在不知道一些具體的數據時,可以使用參數變量來替代,為了完成代碼的邏輯編寫
? ? ? ? ? ? ? ? ? ? ? ? - 在調用方法時,需要根據定義的參數類型,向方法的括號寫上對應的變數據/或者帶有數據的變量
? ? ? ? ? ? ? ? - 格式:
? ? ? ? ? ? ? ? ①無參數:空著不寫,調用方法時,方法名后面括號也空著
? ? ? ? ? ? ? ? ②有參數:
? ? ? ? ? ? ? ? ? ? ? ? 單個參數:(數據類型 數據變量名)在調用時給的參數數據只要符合參數類型就可以
? ? ? ? ? ? ? ? ? ? ? ? 多個參數:(參數數據類型 參數變量名2,數據類型 參數名1)每個參數名必須不一致,傳入參數時要注意順序
public class Student {//屬性String name;String stuID;String className;int age;int score;public void showInfo(){System.out.println("--學生個人基礎信息--");System.out.println("姓名" + name);System.out.println("學號" + stuID);System.out.println("年齡" + age);System.out.println("班級" + className);System.out.println("成績" + score);}public void study(){score+=5;System.out.println(name + "學習了一門課程,學分增加5分。");}public void play(){System.out.println(name + "正在玩");}//測試//使用類創建對象變量 并使用對象變量名調用屬性和方法public static void main(String[] args) {Student s1 = new Student();s1.name = "張三";s1.stuID = "001";s1.age = 18;s1.className = "1班";s1.score = 90;s1.showInfo();s1.study();s1.showInfo();s1.play();}
}