標籤:run方法 使用 抽象 汽車 事物 思考 sys nbsp out
一
物件導向 1.1 什麼是面向過程、物件導向
面向過程與物件導向都是我們編程中,編寫程式的一種思維方式。
面向過程的程式設計方式,是遇到一件事時,思考“我該怎麼做”,然後一步步實現的過程。
物件導向的程式設計方式,是遇到一件事時,思考“我該讓誰來做”,然後那個“誰”就是對象,他要怎麼做這件事是他自己的事,反正最後一群對象合力能把事就好就行了。
1.2
物件導向思維方式的好處
通過生活中的真實情境使用物件導向分析完之後,我們開始分析面向過程和物件導向的差異做出總結:
物件導向思維方式是一種更符合人們思考習慣的思想
面向過程思維方式中更多的體現的是執行者(自己做事情),物件導向中更多的體現是指揮者(指揮對象做事情)。
物件導向思維方式將複雜的問題簡單化。
二
類與對象 2.1
對象在代碼中的體現
在分析現實生活中的事物時發現,這些事物都有其具體的特點和功能,這些特點和功能就組成了這個特殊的事物。
描述小汽車。
分析:
事物的特點(屬性):
顏色。
輪胎個數。
事物的(功能):運行。
發現:事物其實就是由特點(屬性)和行為(功能)組成的。
可以簡單理解:屬性就是數值,其實就是變數;行為就是功能,就是方法。
小汽車 {
顏色;
輪胎個數;
運行() { }
}
定義類的格式
public class 類名 {
//可編寫0至n個屬性
資料類型 變數名1;
資料類型 變數名2;
//可編寫0至n個方法
修飾符 傳回值類型 方法名(參數){
執行語句;
}
通過電腦語言Java來描述這個事物。
public class Car { String color; int number; void run() { System.out.println(color + ":" + number); }}
通過代碼的描述,知道類的真正意義就是在描述事物。屬性和功能統稱為事物中的成員。
事物的成員分為兩種:成員屬性和成員功能。成員屬性在代碼中的體現就是成員變數;成員功能在代碼中的體現就是成員方法。
把寫好的代碼測試一下。需要一個可以獨立運行類。
測試類別
public class CarDemo { public static void main(String[] args) { /* * 測試:Car類中的run方法。 */ // 1,建立Car的對象。給對象起個名字。 Car c = new Car();// c是類類型的變數。c指向了一個具體的Car類型的對象。 // 2,通過已有的對象調用該對象的功能。格式:對象.對象成員; // 3,可以該對象的屬性賦值。 c.color = "red"; c.number = 4; c.run(); }}
2.2
對象的記憶體配置圖解
物件導向的編程思想力圖在程式中對事物的描述與該事物在現實中的形態保持一致。為了做到這一點,物件導向的思想中提出兩個概念,即類和對象。其中,類是對某一類事物的抽象描述,而對象用於表示現實中該類事物的個體。接下來通過一個圖例來抽象描述類與對象的關係,如所示。
在中,可以將玩具模型看作是一個類,將一個個玩具看作對象,從玩具模型和玩具之間的關係便可以看出類與對象之間的關係。類用於描述多個對象的共同特徵,它是對象的模板。對象用於描述現實中的個體,它是類的執行個體.
2.3
局部變數和成員變數區別
區別一:定義的位置不同,定義在類中的變數是成員變數,定義在方法中或者{}語句裡面的變數是局部變數。
區別二:在記憶體中的位置不同,成員變數儲存在堆記憶體的對象中,局部變數儲存在棧記憶體的方法中。
區別三:聲明周期不同。成員變數隨著對象的出現而出現在堆中,隨著對象的消失而從堆中消失。局部變數隨著方法的運行而出現在棧中,隨著方法的彈棧而消失。
區別四:初始化不同,成員變數因為在堆記憶體中,所有預設的初始化值,局部變數沒有預設的初始化值,必須手動的給其賦值才可以使用。
2.4
封裝概述
封裝,它也是物件導向思想的特徵之一。物件導向共有三個特徵:封裝,繼承,多態。接下來我們具體學習封裝。
封裝表現:
1、方法就是一個最基本封裝體。
2、類其實也是一個封裝體。
從以上兩點得出結論,封裝的好處:
1、提高了代碼的複用性。
2、隱藏了實現細節,還要對外提供可以訪問的方式。便於調用者的使用。這是核心之一,也可以理解為就是封裝的概念。
3、提高了安全性。
Java基礎文法——物件導向