1. 程式人生 > >Java學習——初學面向物件

Java學習——初學面向物件

一、面向物件概述
1.思想概述:
A.面向過程開發,其實就是面向著具體的每一個步驟和過程,把每一個步驟和過程完成,然後由這些功能方法相互呼叫,完成需求。更多的是用於底層程式碼。
面向過程的代表語言:C語言
B.把我們需要的這些步驟和功能在進行封裝,封裝時根據不同的功能,進行不同的封裝,功能類似的封裝在一起。這樣結構就清晰了很多。用的時候,找到對應的類就可以了。這就是面向物件的思想。
Java就是經典的面嚮物件語言。
C.特點
a:是一種更符合我們思想習慣的思想;
b:可以將複雜的事情簡單化;
c:將我們從執行者變成了指揮者角色發生了轉換。
2.特徵
封裝(encapsulation)
繼承(inheritance)
多型(polymorphism)
二、類與物件
1.Java語言最基本單位是類,所以,我們就應該把事物用一個類來體現。類就是一組相關的屬性和行為的集合。
2.物件就是該類事物的具體體現。比如動物是一個類,貓就是動物類裡的一個物件。
3.定義類其實就是定義類的成員(成員變數和成員方法)
a:成員變數 和以前定義變數是一樣的,只不過位置發生了改變。在類中,方法外。
b:成員方法 和以前定義方法是一樣的,只不過把static去掉。
eg.
電腦類:
public class Computer {
// 定義成員變數
String pinpai=“戴爾”;
int price=5000;
// 定義成員方法
public void play(String name){
System.out.println(“玩”+name);
}
}

測試類:
public class ComputerTest {
public static void main(String[] args){
//呼叫類中的成員變數
Computer computer = new Computer();
String pinpai=computer.pinpai;
int price=computer.price;
System.out.println(pinpai);
System.out.println(price);
//呼叫成員方法
computer.play(“爐石傳說”);
}
}
三、成員變數和區域性變數的區別
A:在類中的位置不同
成員變數:在類中方法外
區域性變數:在方法定義中或者方法宣告上
B:在記憶體中的位置不同
成員變數:在堆記憶體
區域性變數:在棧記憶體
C:生命週期不同
成員變數:隨著物件的建立而存在,隨著物件的消失而消失
區域性變數:隨著方法的呼叫而存在,隨著方法的呼叫完畢而消失
D:初始化值不同
成員變數:有預設初始化值
區域性變數:沒有預設初始化值,必須定義,賦值,然後才能使用。

注意事項: 區域性變數名稱可以和成員變數名稱一樣,在方法中使用的時候,採用的是就近原則。
四、封裝
1.概述:就是指隱藏物件的屬性和實現細節,僅對外提供公共訪問方式。
2.好處:隱藏實現細節,提供公共的訪問方式;提高了程式碼的複用性;提高安全性。
3.原則:將不需要對外提供的內容都隱藏起來。把屬性隱藏,提供公共方法對其訪問。
4.private關鍵字
A:private關鍵字特點
a:是一個許可權修飾符
b:可以修飾成員變數和成員方法
c:被其修飾的成員只能在本類中被訪問
B:private最常見的應用:
(1):把成員變數用private修飾(後面繼承也會有講解)
(2):提供對應的getXxx()和setXxx()方法
五、this關鍵字
A:為什麼要有this
當我們的區域性變數和成員變數相同的時候,如果我們不使用this關鍵字,那麼會導致一個問題:就是區域性變數隱藏了成員變數的問題
B:this關鍵字特點
是當前類的物件引用。
誰呼叫這個方法,那麼該方法的內部的this就代表誰。
C:this的應用場景
解決區域性變數隱藏成員變數