類與對象的概念
對象:真實存在唯一的事物。
類: 實際就是對某種類型事物的共性屬性與行爲的抽取。 抽象的概念.... 車
我們從小的時候就不斷的接觸很多的對象,我們的大腦就會把這些具備相同屬性與行爲的事物進行分類。
在現實生活中就存在對象與類這兩種事物。計算機是服務於人類,爲了讓計算機更加接近我們的生活,這時候就出現了面向對象的計算機語言。
面向過程(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方法。 前提: 該對象調用完一個方法之後,這個對象就不再使用了。
}
}