06.01_面向對象(面向對象思想概述)(瞭解)
- A:面向過程思想概述
- 第一步
- 第二步
- B:面向對象思想概述
- 找對象(第一步,第二步)
- C:舉例
- 買煎餅果子
- 洗衣服
- D:面向對象思想特點
- a:是一種更符合我們思想習慣的思想
- b:可以將複雜的事情簡單化
- c:將我們從執行者變成了指揮者
- 角色發生了轉換
- E:面向對象開發
- 就是不斷的創建對象,使用對象,指揮對象做事情。
- F:面向對象設計
- 其實就是在管理和維護對象之間的關係。
- G:面向對象特徵
- 封裝(encapsulation)
- 繼承(inheritance)
- 多態(polymorphism)
06.02_面向對象(類與對象概述)(掌握)
- A:我們學習編程是爲了什麼
- 爲了把我們日常生活中實物用學習語言描述出來
- B:我們如何描述現實世界事物
- 屬性 就是該事物的描述信息(事物身上的名詞)
- 行爲 就是該事物能夠做什麼(事物身上的動詞)
- C:Java中最基本的單位是類,Java中用class描述事物也是如此
- 成員變量 就是事物的屬性
- 成員方法 就是事物的行爲
- D:定義類其實就是定義類的成員(成員變量和成員方法)
- a:成員變量 和以前定義變量是一樣的,只不過位置發生了改變。在類中,方法外。
- b:成員方法 和以前定義方法是一樣的,只不過把static去掉,後面在詳細講解static的作用。
- E:類和對象的概念
- a:類:是一組相關的屬性和行爲的集合
- b:對象:是該類事物的具體體現
- c:舉例:
- 類 學生
- 對象 具體的某個學生就是一個對象
06.03_面向對象(學生類的定義)(掌握)
- A:學生事物
- B:學生類
- C:案例演示
- 屬性:姓名,年齡,性別
- 行爲:學習,睡覺
06.04_面向對象(手機類的定義)(掌握)
- 模仿學生類,讓學生自己完成
- 屬性:品牌(brand)價格(price)
- 行爲:打電話(call),發信息(sendMessage)玩遊戲(playGame)
06.05_面向對象(學生類的使用)(掌握)
- A:文件名問題
- 在一個java文件中寫兩個類:一個基本的類,一個測試類。
- 建議:文件名稱和測試類名稱一致。
- B:如何使用對象?
- 創建對象並使用
- 格式:類名 對象名 = new 類名();
- D:如何使用成員變量呢?
- 對象名.變量名
- E:如何使用成員方法呢?
- 對象名.方法名(…)
06.06_面向對象(手機類的使用)(掌握)
- A:學生自己完成
- 模仿學生類,讓學生自己完成
06.07_面向對象(一個對象的內存圖)(掌握)
- A:畫圖演示
- 一個對象
- 一個對象
06.08_面向對象(二個對象的內存圖)(瞭解)
- A:畫圖演示
- 二個不同的對象
- 二個不同的對象
06.09_面向對象(三個引用兩個對象的內存圖)(瞭解)
- A:畫圖演示
- 三個引用,有兩個對象的引用指向同一個地址
- 三個引用,有兩個對象的引用指向同一個地址
06.10_面向對象(成員變量和局部變量的區別)(掌握)
-
A:在類中的位置不同
- 成員變量:在類中方法外
- 局部變量:在方法定義中或者方法聲明上
-
B:在內存中的位置不同
- 成員變量:在堆內存(成員變量屬於對象,對象進堆內存)
- 局部變量:在棧內存(局部變量屬於方法,方法進棧內存)
-
C:生命週期不同
- 成員變量:隨着對象的創建而存在,隨着對象的消失而消失
- 局部變量:隨着方法的調用而存在,隨着方法的調用完畢而消失
-
D:初始化值不同
- 成員變量:有默認初始化值
- 局部變量:沒有默認初始化值,必須定義,賦值,然後才能使用。
-
注意事項:
- 局部變量名稱可以和成員變量名稱一樣,在方法中使用的時候,採用的是就近原則。
- 基本數據類型變量包括哪些:byte,short,int,long,float,double,boolean,char
- 引用數據類型變量包括哪些:數組,類,接口,枚舉
06.11_面向對象(方法的形式參數是類名的時候如何調用)(掌握)
- A:方法的參數是類名public void print(Student s){}//print(new Student());
- 如果你看到了一個方法的形式參數是一個類類型(引用類型),這裏其實需要的是該類的對象。
06.12_面向對象(匿名對象的概述和應用)(掌握)
- A:什麼是匿名對象
- 沒有名字的對象
- B:匿名對象應用場景
- a:調用方法,僅僅只調用一次的時候。
- 那麼,這種匿名調用有什麼好處嗎?
- 節省代碼
- 注意:調用多次的時候,不適合。匿名對象調用完畢就是垃圾。可以被垃圾回收器回收。
- 那麼,這種匿名調用有什麼好處嗎?
- b:匿名對象可以作爲實際參數傳遞
- a:調用方法,僅僅只調用一次的時候。
- C:案例演示
- 匿名對象應用場景
- D: 匿名對象內存圖:
06.13_面向對象(封裝的概述)(掌握)
-
A:封裝概述
- 是指隱藏對象的屬性和實現細節,僅對外提供公共訪問方式。
-
B:封裝好處
- 隱藏實現細節,提供公共的訪問方式
- 提高了代碼的複用性
- 提高安全性。
-
C:封裝原則
- 將不需要對外提供的內容都隱藏起來。
- 把屬性隱藏,提供公共方法對其訪問。
06.14_面向對象(private關鍵字的概述和特點)(掌握)
- A:人類賦值年齡的問題
- B:private關鍵字特點
- a:是一個權限修飾符
- b:可以修飾成員變量和成員方法
- c:被其修飾的成員只能在本類中被訪問
- C:案例演示
- 封裝和private的應用:
- A:把成員變量用private修飾
- B:提供對應的getXxx()和setXxx()方法
- private僅僅是封裝的一種體現形式,不能說封裝就是私有
06.15_面向對象(this關鍵字的概述和應用)(掌握)
- A:this關鍵字特點
- 代表當前對象的引用
- B:案例演示
- this的應用場景
- 用來區分成員變量和局部變量重名
06.16_面向對象(手機類代碼及其測試)(掌握)
- A:學生練習
-
請把手機類寫成一個標準類,然後創建對象測試功能。
class Demo2_Phone { public static void main(String[] args) { Phone p1 = new Phone(); p1.setBrand("三星"); p1.setPrice(5288); System.out.println(p1.getBrand() + "..." + p1.getPrice()); p1.call(); p1.sendMessage(); p1.playGame(); } } /* 手機類 屬性:品牌brand,價格price 行爲:打電話call,發短信sendMessage,玩遊戲,playGame */ class Phone { //java bean private String brand; //品牌 private int price; //價格 public void setBrand(String brand) { //設置品牌 this.brand = brand; } public String getBrand() { //獲取品牌 return this.brand; //this.可以省略,你不加系統會默認給你加 } public void setPrice(int price) { //設置價格 this.price = price; } public int getPrice() { //獲取價格 return price; } public void call() { //打電話 System.out.println("打電話"); } public void sendMessage() { //發短信 System.out.println("發短信"); } public void playGame() { //玩遊戲 System.out.println("玩遊戲"); } }
相關面試題:
1:局部變量和成員變量的區別?
詳情見筆記
2:匿名對象是什麼?應用場景是什麼?
沒有名字的對象
當作參數傳遞
對方法一次調用
3:封裝是什麼?java中封裝的體現有哪些?請舉例說明。
封裝是隱藏實現細節,對外提供公共的訪問方法
私有屬性
私有行爲
4:this關鍵字是什麼?this關鍵字的應用場景?
代表當前對象的引用
區分局部變量和成員變量重名的時候
5:如何使用一個類的成員
對象名.成員
-