java基礎———第六天

面向對象

理解:

面向對象思想就好比你想蓋一棟房子,你可以自己買材料,自己砌磚,自己搞裝修。你也可以找一個建築公司,讓他們幫你把房子建好。前一種方法就是面向過程的思想,後一種就是面向對象的思想。總結就是:當遇到問題時,首先考慮誰有解決該問題的方法,通過調用該方法,解決問題。

重要經驗:誰擁有數據,誰就提供對外操作這些數據的方法。

特點:

可以將複雜的事情簡單化,將程序員從執行者轉換成了指揮者。完成需求時,先要去找具有所需的功能的對象來用,如果對象不存在,那麼就創建一個所需功能的對象。這樣就簡化了開發並提高了功能複用性。

特徵:

封裝(encapsulation)

繼承(inheritcmce)

多態(polymorphism)

類與對象的關係:

類:是一組相同屬性行爲的對象的抽象。

對象:即該類事物實實在在存在的個體。

例:人就是一個類(把每一個相同屬性行爲的對象進行抽取),

人的屬性:姓名、年齡、身高、體重、等。

 人的行爲:吃飯、睡覺、說話、走路、等。

對象的創建:

java中是通過new關鍵字來創建實體的。

類的定義:

生活中描述事物無非是描述事物的屬性和行爲。

java中用類class描述事物也是如此。

屬性:對應類中的成員變量。

行爲:對於類中的成員函數。

成員變量的局部變量的區別:

1、作用範圍:

成員變量:定義在類中,作用於整個類。

局部變量:只在他所屬的局部大括號中有效。如函數上的參數,函數上的變  量。

2、存儲情況:

成員變量:存儲在堆內存中,隨着對象的存在而存在,當對象變成垃圾時被  回收時,該對象中的成員變量也會消失。

局部變量:存儲在棧內存中,當方法被調用或者語句被執行時才存在,當方  法運行完畢或者語句運行完畢時,局部變量被自動釋放。

3、初始化情況:

成員變量:在堆內存中有默認初始化值。

局部變量:必須手動初始化後,纔可以被調用。

創建對象實例:

//對Car這類事物進行描述
class Car {					
	String color = "red";
	int num = 4;
	void show(){
		int num = 100;		
		System.out.println("color="+color+"..num="+num);
	}
}
class CarDemo {
	public static void main(String[] args) {
		Car c = new Car();	//建立對象
		c.color = "black";	//對對象的屬性進行修改
		c.show();			//使用對象的功能。
	}				
}

//創建對象在內存中的詳細步驟
1,主函數進棧,給類類型變量c分配空間
2,在堆內存中開闢空間,分配內存地址
3,在堆內存中建立對象特有屬性,並進行默認初始化
4,對屬性進行顯示初始化
5,將內存地址賦給棧內存中的c變量

封裝

概念:是指隱藏對象的屬性和實現細節,僅對外提供公共訪問方式。

好處:將變化隔離,便於使用提高代碼重用性和安全性。

原則:將不需要對外提供的內容都隱藏起來,提供對外公共方法對其訪問。

關鍵字:private(私有)

     是一個權限修飾符;

     用於修飾成員(成員函數的成員變量);

     被私有化的成員只在本類中有效。

注:私有僅僅是封裝的一種體現形式而已。

關鍵字:this(本類的引用)

      哪個對象在調用this所在的函數,this就代表哪個對象。

構造函數:

特點:方法名必須和類名相同;

        沒有返回值類型,也不能定義void,在方法名前不聲明類型;

  可以定義多個構造方法,也就是說,構造方法可以重載;

  不能被人員所調用。

細節:如果在定義類時,沒有定義構造方法,編譯系統會自動插入一個無參的默認   構造方法,該構造方法不執行任何代碼。

作用:如果我們想改變系統的默認初始化,想讓系統創建對象時就爲該對象個屬性   顯示指定初始化值,就可以通過構造方法來實現。

局部代碼塊(定義在方法裏)

如:  void show () {

{

xxxxxx……

}

}

作用:限定變量生命週期

構造化塊塊\初始化塊(定義在類裏)

如: class  Demo() {

{

  xxxxx……

}

}

作用:把共同屬性一起初始化,而且是優先構造函數之前執行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章