1. 程式人生 > >黑馬程式設計師----java基礎之面向物件

黑馬程式設計師----java基礎之面向物件

------- <a href="http://www.itheima.com" target="blank">android培訓</a>、<a href="http://www.itheima.com" target="blank">java培訓</a>、期待與您交流! ---------

面向物件的理解

面向物件是相對於面向過程而言的

面向物件和麵向過程都是一種思想

面向過程強調的是功能行為

面向物件是將功能封裝進物件,強調具備了功能的物件

面向物件是基於面向過程的.

取個例子來說,把大象放到冰箱裡:分三步,開啟冰箱---把大象發到冰箱---關上冰箱;這是面向過程的思想,強調的是過程,注重的是過程,注重的是過程中存在的行為(功能):開啟功能,儲存功能,關閉功能.把它轉變成物件應該怎麼做呢:我們可以很容易的想到,開啟,儲存和關閉都是冰箱的功能

,而我們操作的都是冰箱,所以我們可以將這些行為定義在冰箱當中,因為冰箱是實實在在存在的個體,所以我們可以把它看作是一個物件,而我們要在儲存事務時,只需要掉用冰箱的那些功能就行啦!

Java開發,總的來說就是找物件使用,沒有物件,就建立一個物件,基本就是:找物件,建立物件,使用物件.維護物件的關係.這幾個步驟,

類和物件的關係.

現實生活中的物件張三,李四

想要描述:提取物件中共性內容.對具體的抽象.

描述時:這些物件的共性有:姓名,年齡,性別,學習Java的功能.

對映到Java中,描述就是class定義的類.

具體物件就是對應Java在堆記憶體中用new建立的實體

類就是:對現實生活中事物的描述,描述這類事物的屬性和行為

物件:就是這類事物,實實在在存在的個體.

/*
需求:描述汽車(顏色,輪胎數).描述物件,就是描述這類事物的屬性和行為
屬性對應的是類中的變數,行為對應的是類中的函式(方法).
*/
class Car
{
//描述顏色
String color = "red";
//描述輪胎數
int num = 4;
//執行行為
public void run()
{
System.out.println(color+":::"+num);
}
}
class ArrayTest3 
{
public static void main(String[] args) 

{
//生產汽車.在Java中通過new操作符來完成
//其實就是在堆記憶體產生一個實體
Car c = new Car();//c就是一個類型別變數.記住,類型別變數指向物件

//需求:將已有的車改變成lanse指揮該物件做使用.在Java中,指揮方式是:物件.物件成員

c.color = "blue";

c.run();//blue 4;

Car c1 = new Car();

c1.run();//red 4;

}
}

成員變數和區域性變數

作用範圍

成員變數作用於整個類中

區域性變數作用於函式中,或者語句中

在記憶體的位置

成員變數:在堆記憶體中,因為物件的存在,而在記憶體中存在

區域性變數:存在棧記憶體中

匿名物件

匿名物件是物件的簡化形式

匿名物件的兩種使用情況

當對物件方法僅進行一次呼叫時

匿名物件可以作為實際引數進行傳遞

建構函式

建構函式的特點

函式名與內名相同

不用定義返回值型別

不可以寫return語句

建構函式的作用

給物件進行初始化

注意:

預設建構函式的特點:當一個類中沒有定義建構函式時,系統會預設給該類加一個空引數的建構函式,當在類中自定義了建構函式後,系統不會再給該類新增構造函數了.

多個建構函式是以過載的形式存在的

物件已建立就會呼叫與之對應的建構函式

建構函式和一般方法在寫法上不同,在執行上也不同

建構函式是在物件一建立就執行,給物件初始化

而一般方法是物件呼叫才執行,給物件新增物件具備的功能

一個物件建立,建構函式只執行一次

而一般方法可以被該物件呼叫多次

什麼時候定義建構函式呢?

當分析事物時,該事物存在具備一些特性或者行為,那麼將這些內容定義在建構函式中

構造程式碼塊

作用:給物件進行初始化

物件一建立就執行,而且優先於建構函式執行

和建構函式的區別

構造程式碼塊是給所有物件進行統一初始化

而建構函式是給對應的物件初始化

構造程式碼塊中定義的事不同物件共性的初始化內容

關鍵字:this

this:是用於區分區域性變數和成員變數同名的情況

this代表本類物件,代表它所在所屬物件的引用,也就是說,那個物件在呼叫this所在的函式.this就代表那個物件

this的應用:當定義類中功能時,該函式內部要用到呼叫該函式的物件時,這時用this表示這個物件

但凡本類功能內部使用了本類物件,都用this表示.

需求:給人定義一個用於比較年齡是否相同的功能.也就是是否是同齡人


this語句:用於建構函式之間進行互相呼叫

this語句只能定義在建構函式的第一行,因為初始化要先執行

關鍵字:static

用於修飾成員(成員變數和成員函式)

成員被static修飾後會隨著類的載入而載入,

因為static隨著類的載入而載入,,所以也會隨著類的消失而消失,說明它的生命週期最長

並且優先於物件存在,(靜態是先存在的,物件是後存在的)


被所有物件所共享,

可以直接被類名呼叫


使用靜態是要注意:靜態方法只能訪問靜態成員(非靜態方法既可以訪問靜態,也可以訪問非靜態)

靜態方法中不可以寫this,super關鍵字(因為靜態優先於物件存在,所以靜態方法中不可以存在this)

靜態有利有弊

利處:  對物件的共享資料進行單獨空間的儲存,節省空間.沒必要每一個物件中都儲存一份,還可以直接被類名呼叫

弊端:  生命週期過長,訪問出現侷限性.(靜態只能訪問靜態)

主函式是靜態的;它是一個特殊的函式,作為程式的入口,可以被jvm呼叫

主函式的定義

public:代表該函式的訪問許可權是最大的

static:代表主函式是隨著類的載入就已經存在

void:主函式沒有具體的返回值

main:不是關鍵字,但是是一個特殊的單詞,可以被Java識別.

(String[] args):函式的引數,引數型別是一個數組,該陣列中的元素是字串

主函式的格式是固定的:  jvm識別

什麼時候定義靜態變數(類變數)呢?

當物件中出現共享資料時,該資料被靜態修飾

物件中的特有資料要定義成非靜態存在於堆記憶體中

什麼時候定義靜態函式呢?

當功能內部沒有訪問到非靜態資料(物件的特有資料)

該功能可以定義成靜態的

製作幫助文件


在類中定義作者,版本號,該類所具備的功能

在dos命令列中輸入


然後再e:\java\riji資料夾中就有了生成的幫助文件啦!然後點開index.html就行啦!