1.概述
1.1 對象Object:表示任意存在的事物,即對象是實體存在的事物。通常劃分為兩類:靜態(tài)部分和動態(tài)部分。靜態(tài)部分被稱為“屬性”,是客觀存在不可被忽視的,動態(tài)部分指的是對象的行為,即對象執(zhí)行的動作。(例如:對象:一個人,屬性:人的性別,行為:行走)
-
1.2 類:類是封裝對象的屬性和載體(例如:類:鳥群,屬性:翅膀,爪子,行為:覓食,飛行)類包括對象的屬性和方法,類中的對象的屬性是以成員變量的形勢定義的,對象行為是以方法的形式定義的,類其實就是對象的設計圖。
l1.PNG -
1.3 特點:
A. 封裝性encapsulation(是核心思想。將對象的屬性和行為封裝起來,其載體就是類); 對外提供公有的getter/setter例子:Fruit
z1.PNG
B. 繼承性inheritance(是實現(xiàn)重復利用的重要手段,子類通過基礎,復用父類屬性和行為的同時又添加子類特有的屬性和行為);
C. 多態(tài)性polymorphism(子類繼承父類的同時,又具備了自己的特征,能夠實現(xiàn)不同的效果)
2.類與對象
含義: 類是封裝對象的屬性和載體,Java中定義類時使用class關鍵字
-
2.1 成員變量:對象的屬性
z1.PNG -
2.2 成員方法:
z1.PNG 定義:權限修飾符:(控制方法的訪問權限)是private、public、protected中的任意一個,也可不寫;返回值類型:用來指定方法返回數(shù)據(jù)的類型,可任意類型,若方法不需要返回值,則使用void關鍵字
注意:若定義方法時未指定權限修飾符,方法默認訪問權限為缺省(即只能在本類或同個包中進行訪問);如果有返回值,一定要用return關鍵字返回相應類型的數(shù)組。
-
2.3 成員方法的參數(shù):
調用方法可以給該方法傳遞一個或多個值(實參:傳給方法的值;形參:在方法內部,接收實參)
值參數(shù):表示實參和形參的直接按值傳遞
z1.PNG
引用參數(shù):參數(shù)的類型是數(shù)組或者其他引用類型,則方法中對參數(shù)的修改回反野到原有的數(shù)組或其他應用上去。
不定長參數(shù):若有若干個相同類型參數(shù),可用不定長(例:int add(int...x)) -
2.3 構造方法:是一個與類同名的方法。每當類實例化一個對象出來,類都會自動調用構造方法。
z1.PNG
z1.PNG 2.4 局部變量:在成員方法中定義一個變量,則該變量就是局部變量。局部變量在方法執(zhí)行時被創(chuàng)建,在方法執(zhí)行結束時被銷毀。
-
注意:局部變量使用時要進行賦值操作或被初始化,否則會出現(xiàn)編譯錯誤
z2.PNG
-
2.5 this關鍵字:用來代表本類對象的引用,this被隱式地用于引用對象的成員變量和方法。如果方法中出現(xiàn)了與局部變量同名的參數(shù),會導致方法無法使用成員變量。
z1.PNG
-
2.6 類的主方法:主方法是類的入口點,它指定了程序從何開始,提供對程序流向的控制。Java編譯器通過主方法來執(zhí)行程序。
z1.PNG
主方法特征:靜態(tài)的,所以如要直接在主方法中調用其他方法,則該方法必須也是靜態(tài)的;主方法沒有返回值;主方法的形參為數(shù)組,其中args[0]--args[n]分別表示程序的第一個參數(shù)到第n+1個參數(shù),可以使用args.length獲取參數(shù)的個數(shù)
- 2.7 小結:A、把數(shù)據(jù)抽象成類:萬事萬物皆是對象,數(shù)據(jù)也一樣。任何數(shù)據(jù)都有特性,將這些特性設置成類的屬性。如,時間包含年、月、日、時、分、秒,通用信息包含電話號碼和姓名。B、局部變量和全局變量:其實所有的變量都是局部變量,只是根據(jù)變量有效范圍不同而產生不同的叫法,如非靜態(tài)全局變量和靜態(tài)變量,非靜態(tài)全局變量的有效范圍時整個類體,當類銷毀后這些全局變量會同時銷毀。靜態(tài)變量的作用范圍時整個程序的生命周期 ,只有當程序結束后,靜態(tài)變量才會銷毀。
3、static關鍵字
由static修飾的變量(靜態(tài)變量)、常量(靜態(tài)常量)和方法(靜態(tài)方法),統(tǒng)稱為類的靜態(tài)成員。
-
3.1 靜態(tài)變量:把共享的變量用static修飾(例如:一個泳池中,同時打開入水口和出水口,這兩個動作會同時影響到水池中的水量,此時水池中的水量就可以認為是一個共享的變量)
z1.PNG
同一個類的不同實例對象,可以共用一個靜態(tài)變量
z2.PNG -
3.2 靜態(tài)方法:在無法創(chuàng)建類的對象時,要調用類中的方法才能夠完成業(yè)務邏輯,在z1.PNG
這種情況下就可以使用靜態(tài)方法(無需實例化就可以調用)
z1.PNG -
3.3靜態(tài)代碼塊:用static修飾代碼區(qū)域可以稱之為靜態(tài)代碼塊
z1.PNG運行順序:靜態(tài)代碼塊由始至終只允許了一次;非靜態(tài)代碼塊在每次創(chuàng)建對象的時候,會在構造方法之前運行,所以在讀取成員變量name時,只能獲取到String類型的默認值“null”;構造方法只有在使用new創(chuàng)建對象的時候才會運行;成員方法只有在使用對象調用的時候才會運行。
參考文章:點這里