第十一、Java的面向對象(一)

類與對象的概念

對象:真實存在唯一的事物。
類: 實際就是對某種類型事物的共性屬性與行爲的抽取。  抽象的概念....   車

我們從小的時候就不斷的接觸很多的對象,我們的大腦就會把這些具備相同屬性與行爲的事物進行分類。
在現實生活中就存在對象與類這兩種事物。計算機是服務於人類,爲了讓計算機更加接近我們的生活,這時候就出現了面向對象的計算機語言。

面向過程(C)                  面向對象(java)

現實生活中 : 對象---------類
在java中:  類------------>對象


面向對象的計算機語言核心思想: 找適合的對象做適合的事情。

如何找適合的對象:
1. sun已經定義好了很多的類,我們只需要認識這些類,我們就可以通過這些類創建對象使用。 
2. 自定義類,通過自定義類來創建對象使用。


自定義類創建對象的三步驟:

1. 自定義類。

格式:
class 類名{
事物的公共屬性使用成員變量描述。
事物的公共行爲使用函數描述。
}

2. 通過自定義類創建對象。

格式: 
類名 變量名 =  new 類名();

3. 訪問(設置)對象的屬性或者調用對象的功能。

1.訪問對象屬性的格式:
對象.屬性名.
2.設置對象的屬性:
對象.屬性名 = 數據。
3. 調用對象的功能
對象.函數名();

//車類
class Car{
	
	//事物的公共屬性使用成員變量描述。
	String	name; //名字的屬性
	String	color; //顏色屬性
	int wheel;	//輪子數
					
	//事物的公共行爲使用函數描述。
	public void run(){
		System.out.println(name+"飛快的跑起來啦...");
	}
}

       //主函數
	public static void main(String[] args) 
	{	
		/*
		//使用了Car類聲明瞭一c變量, c變量指向了一個車對象。
		Car	c = new Car(); 
		//設置車對象的屬性值。
		c.name = "BMW";
		c.color = "白色";
		c.wheel = 4;
		//訪問車對象的屬性值
		System.out.println("名字:"+ c.name+" 顏色:"+ c.color+" 輪子數:"+c.wheel);
		c.run();
		*/

		Car	c1 = new Car(); 
		c1.name = "寶馬";
		Car c2 = new Car();
		c2.name = "大衆";
		c1 = c2; 
		System.out.println("名字:"+ c1.name);  
	}


初學者的經典錯誤:

1. 變量在同一個作用域(大括號)上是可以直接訪問的。
2. 如果一個類要訪問另外一個類變量時,那麼這時候就只能通過創建對象進行訪問。(僅對於目前正確)




需求: 一個類要訪問另外一個類變量

使用java描述一個車與修車廠的故事。 

車具備的公共屬性:輪子數、 名字、 顏色 ,還具備跑的功能行爲。跑之前要檢測輪子是否少於了4個,如果少於了4個,那麼要送到修車廠修理,修車廠修理之後,車的輪子數要補回來4個。 然後車就繼續的跑起來。

修車廠: 具備公共屬性: 名字、 地址、 電話。
公共的行爲: 修車。

//車類
class Car{
	
	//事物的公共屬性使用成員變量描述	
	String name ; // 名字

	String color; //名字

	int wheel; //輪子數
	
	//事物的公共行爲使用函數描述
	public void run(){
		if(wheel>=4){
			System.out.println(name+wheel+"個輪子飛快跑起來..");
		}else{
			System.out.println(name+"不夠4個輪子了,趕快去修理");
		}
	}
}

//修車廠
class CarFactory{
	
	String name;//名字
	
	String address ;	//地址
	
	String tel;	//電話

	//修車公共行爲 ------ 返回值類型、 未知的參數
	public void repair(Car c){
		if(c.wheel>=4){
			System.out.println("告訴你,費了很大力氣修好了,給錢");
		}else{
			c.wheel = 4;
			System.out.println("修好了,給錢!!");	
		}
	}
}


class myClass 
{
	public static void main(String[] args) 
	{	
		/*
		//0x98
		Car c = new Car();
		//給車對象賦予屬性值
		c.name = "陸豐";
		c.color = "黑色";
		c.wheel = 4;
		
		for(int i = 0 ; i<100 ; i++){
			c.run();
		}
		c.wheel = 3;
		c.run();

		//創建修車廠對象
		CarFactory f = new CarFactory();
		//給修車廠賦予屬性值
		f.name = "4S修車廠";
		f.address = "橫崗志健廣場一樓";
		f.tel = "020-1234567";

		//調用修車的修車
		f.repair(c);//0x98
		//
		c.run();
		*/

		//需求: 調用一次repair方法。  前提: 該對象調用完一個方法之後,這個對象就不再使用了。
		
	}
}


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