物件導向思想
乙個類中,只含有屬性和方法;
1:一種思考方式
2:複雜問題簡單化,從執行者變成指揮者
3:封裝
4:找物件,建立物件,使用物件,維護物件的關係
5:類與物件的關係
現實生活中的物件:張三,李四
想要描述:提取物件公共性內容,對具體的抽象
描述時:尋找現實中物件的共性
6:類就是:對現實生活中實物的描述
物件 :就是這類實物的 實實在在的個體
7:堆疊
棧儲存基本變數,陣列名,類名
堆中儲存new出來的空間,比如對陣列空間的分配,對類空間的分配
物件導向的三個特徵:封裝 繼承 多型
開發過程中,實際上就是找對 物件的使用,沒有物件,就建立乙個物件。
找物件,建立物件,使用物件,維護物件的關係;
區域性變數與成員變數
作用範圍:
成員變數作用於整個類中。
區域性變數作用於整個函式中,或者語句中。
在記憶體中位置:
成員變數儲存在堆記憶體中,因為物件存在,成員變數才會存在;
區域性變數儲存在棧記憶體中!!!(這裡有疑問,基本資料型別不是存放在棧記憶體中嗎?)
成員變數都有預設初始值;區域性變數無,不初始化,無法參加運算;
匿名物件
匿名物件是物件的簡寫格式
對於匿名物件,對匿名物件的屬性進行修改無意義
使用方法:
1:當對 物件的方法只呼叫一次時,可以用匿名物件完成,這樣比較簡單
2:可以將匿名物件作為實際引數進行傳遞
物件的初始化過程:
new物件的過程中,1 先載入*.class檔案(把資料從硬碟中載入到記憶體中)
2: 靜態成員,靜態**塊,靜態方法
靜態成員 預設初始化,顯示初始化,靜態**塊初始化
靜態**塊被執行(隨著類的載入執行一次)
3:在堆為new的物件開闢空間(屬性有了)
4:屬性預設初始化,顯示初始化,緊接著構造**塊初始化,建構函式初始化;
5: person p=new person(「zhangsan」,20)
1:因為new用到了person.class,所以會先找到person.class檔案並載入到記憶體中
2:執行該類的static**塊,如果有的話,給person.class類進行初始化
3:在堆記憶體中開闢空間,分配記憶體位址
4:在堆記憶體中建立物件的屬性,預設初始化
5:對屬性進行顯示初始化
6:對物件進行構造**塊初始化
7:對物件進行對應的建構函式初始化
8:將記憶體位址付給堆疊內中的變數
物件呼叫成員過程:成員只有被呼叫才會被使用(方法要有人使用);
物件導向 建構函式
建構函式 指的是用來建立物件的一種函式 建構函式的定義方式 就是普通函式的定義方式 建構函式的使用方式 一定要通過new來呼叫 function people name,age,var p new people 小明 23,男 稱呼問題 p是建構函式people建立出來的物件 叫做people的例項...
物件導向 建構函式
一 生成例項物件的原始模式 var cat var cat1 cat1.name 大毛 cat1.color 黃色 var cat2 cat2.name 二毛 cat2.color 黑色 二 解決 重複 寫乙個函式 function cat name,color var cat1 cat 三毛 紅色...
物件導向 建構函式 原型物件
3.建構函式的執行過程 4.建構函式的返回值 5.與普通函式的區別 原型物件 物件的封裝 proto 繼承使用prototype實現繼承 組合式繼承 定義 在js中,使用new關鍵字來呼叫的函式,被稱為建構函式。建構函式的作用 建立物件。假如需要建立多個類似的物件,我們會書寫很多重複的無意義 此時我...