一》類與物件的關係
類:就是對現實生活中事物的描述。
物件:就是這類事物,實實在在存在的實體(個體)。
二》成員變數和區域性變數
1.區別:
a.作用域不同:
成員變數:作用於整個類中:
區域性變數:作用於函式中,語句中;
b.在記憶體中的位置不同:
成員變數:在堆記憶體中,因為物件的存在,才在記憶體中存在。
區域性變數:存在於棧記憶體中。
三》封裝
1.封裝的好處:
a.將變化隔離
b.便於使用
c.提高重用性
d.提高安全性
2.封裝原則:
a.將不需要對外提供的內容都隱藏起來。
b.把屬性都隱藏,提供公共方法對其訪問。
3.如何隱藏(private):
private:私有,許可權修飾符,用於修飾類中的成員(成員變數,成員函式)。
注意:私有僅僅是封裝的一種表現形式;
將需要隱藏的成員私有化,提供set(),get()方法對其操作(屬性)。
將需要隱藏的方法私有化,提供另乙個對外方法,對其呼叫。
四》this關鍵字在建構函式間的呼叫:
this語句:用於建構函式之間互相呼叫(只限於建構函式);
this語句只能定義在建構函式的第一行。因為初始化要先執行。
五》static關鍵字:
1.static:靜態;
用法:是乙個修飾符,用於修飾成員(成員變數,成員方法);
當成員被靜態修飾後,就多了個呼叫方式,除了可以被物件呼叫外,還可以直接被類名調 用。
2.被修飾後的成員具備以下特點:
a.隨著累的載入而載入
b.優先於物件存在
c.被所有物件所共享
d.可以直接被類名呼叫
3.使用注意事項:
a.靜態方法只能訪問靜態成員
b.靜態方法中不可以寫this,super關鍵字,因為優先於物件存在。
3.例項變數和類變數的區別:
a.存在位置:
類變數隨著類的載入而存在於方法區中,
例項變數隨著物件的建立而存在於堆記憶體中。
b.生命週期:
類變數生命週期最長,隨著類的消失而消失,
例項變數生命週期隨著物件的消失而消失。
七》main函式:
1.主函式:是乙個特殊的函式,作為程式的入口,可以被jvm
呼叫。
2.主函式的定義:
public:代表著該函式訪問許可權是最大的。
static:代表主函式隨著類的載入就已經存在了。
void:主函式沒有具體的返回值。
main:不是關鍵字,是乙個特殊的單詞,可以被
jvm識別。
(string
【】 args
):函式的引數,引數型別是乙個陣列,該陣列中的元素是字串。
3.主函式是固定格式的:jvm
識別。
唯一能改變的就是引數名args
;一般不變;
八》靜態什麼時候使用:
1.什麼時候使用靜態?
要從兩方面下手:
a.因為靜態修飾符的內容有成員變數和函式;
什麼時候定義靜態變數(類變數)那?
當物件中出現共享資料時,該資料被靜態所修飾。
物件中的特有資料要定義成非靜態,存在於堆記憶體中。
什麼時候定義靜態函式那?
當功能內部沒有訪問到非靜態資料(物件的特有資料),
那麼該功能可以定義成靜態的。
九》靜態**塊
1.靜態**塊格式:
static
執行語句;
2.特點:
隨著類的載入而執行,只執行一次,並優先於主函式執行。
3.用於給類進行初始化的。
4.構造**塊
staticcode()
system.out.println("b");
static
system.out.println("a");
結果為:a c b
執行順序:建構函式<
構造**塊
<
靜態**塊;
十》物件的初始化過程:
class person
public void setname(string name)
public void speak()
public static void showcountry()
}class persondemo }
person p = new person("
張三",20); 該句話都做了什麼事情?
1.因為new
用到了person.class
檔案,所以會先找到
person.class
檔案並載入到記憶體中。
2.執行該類中的static
**塊,如果有的話,給person.class
類進行初始化。
3.在堆記憶體中開闢空間,分配記憶體位址。
4.在堆記憶體中建立物件的特有屬性,並進行預設初始化。
5.對屬性進行顯式初始化。
6.對物件進行構造**塊初始化。
7.對物件進行對應的建構函式初始化。
8.將記憶體位址賦給記憶體中的p
變數。
Java物件導向 類,物件
oop,object oriented programming,物件導向程式設計 面向過程 以功能行為為主體的思想體現。物件導向 以執行功能的物件為主體的思想體現。物件導向特徵 封裝 隱藏內部實現,穩定外部介面。繼承 子類繼承父類成員,實現 復用。多型 不同子類對同一訊息作出不同的反映。具有相同屬性...
JAVA 物件導向 類和物件)
基本概念 物件導向是一種新興的程式設計方法,或者是一種新的程式設計規範 paradigm 其基本思想是使用物件 類 繼承 封裝 訊息等基本概念來進行程式設計。例題 1個班有 個小組,每個小組有 學生 要求 1 輸入班級名,能查詢到其下的所有小組名及每個小組的學生資訊,展示如下 你查詢的班級名為 第一...
物件導向 類與物件
物件導向是相對於面向過程而言的,具體的來說,比如 我們想要吃一頓午飯,我們親自買菜,洗菜.切菜,炒菜,煮飯,這樣做成一桌菜就叫面向過程,也就是說整個過程 你都親自完成,而 物件導向呢?點外賣 點一桌子菜和公尺飯 不管他咋做出來的 面向過程程式設計 就是 我們想要實現乙個功能 直接去呼叫別人寫好的功能...