1. 程式人生 > >面向物件_成員變數_ 區域性變數_匿名物件_封裝_建構函式_構造程式碼塊

面向物件_成員變數_ 區域性變數_匿名物件_封裝_建構函式_構造程式碼塊

----------- android培訓java培訓、java學習型技術部落格、期待與您交流! ------------
【面向物件】
面向物件有三個特徵:封裝,繼承,多型
面向物件的特點:找物件,建物件,用物件,多型完了之後維護物件之間的關係
類和對像的關係:類就是對現實生活中事物特徵的描述,物件就是這類事物實實在在存在的個體
描述就是提取物件中共性的內容,描述就是對具體物件的抽象
描述時,這些物件的共性有:
如人的共性有:姓名,年齡,性別,人具有學習java的功能 【主要就是描述屬性(成員變數)和行為】
描述事物就是在描述事物的屬性和行為
描述在java當中是用類來體現的,而物件在java當中是通過new操作符所產生的一個實體(存在於堆記憶體當中)
對映到java中,描述就是class定義的類,而具體物件就是對應java在堆記憶體中用new建立的實體
類型別變數Car c=new Car();,類型別變數就是指物件
【成員變數 區域性變數】
成員變數 
作用域:擁有它的類中,有預設的初始化值,可以參與運算,因為它在堆記憶體中
存在於堆記憶體中,因為物件的存在,才在記憶體中存在
區域性變數 
作用域:方法或語句中  
存在於棧記憶體中,區域性變數不初始化不能參與運算,因為它在棧記憶體中

【匿名物件】

沒有名子,如下:

new Car().num=5;這句執行過就成垃圾了
Car c = new Car();  這個如果真想變垃圾,可以在c用完後寫上c=null;
c.run();
c.num = 4;c=null;
匿名物件使用方式一:當對物件的方法只調用一次時,可以用匿名物件來完成,這樣寫比較簡化。
匿名物件使用方式二:可以將匿名物件作為實際引數進行傳遞。
如果對一個物件進行多個成員呼叫,必須給這個物件起個名字。
【封裝:Encapsulation】
封裝是指隱藏物件的屬性和實現細節,對外提供公共訪問方式
好處:將變化隔離,便於使用,提高重用性,提高安全性
封裝原則:將不需要對外提供的內容都隱藏起來,把屬性都隱藏,提供公共方法對其訪問
方法(函式)是最小的封裝;大點的以次為類,包,框架
私有僅僅是封裝的一種表現形式,之所以對外提供訪問方式,就因為可以在訪問方式中加入邏輯判斷等語句,對訪問的資料進行操作。提高程式碼健壯性。
【封裝(健壯性)】
private 只能當前類中訪問,就是建立了物件也訪問不了,可以通過類中提供的公共方法訪問
【建構函式】
特點:函式名與類名相同
不能定義返回值型別
不可以寫return語句
作用:
給物件進行初始化
建構函式:物件一建立(new)就會呼叫與之對應的建構函式。
建構函式和一般函式在寫法上有不同。
在執行上也有不同。
建構函式是在物件一建立就執行。給物件初始化。
而一般方法是物件呼叫才執行,給物件新增物件具備的功能。
一個物件建立,建構函式只執行一次。而一般方法可以被該物件呼叫多次。
什麼時候定義建構函式呢?
當分析事物時,該事物存在具備一些特性或者行為,那麼將這些內容定義在建構函式中。
【構造程式碼塊】
作用:給物件進行初始化。
物件一建立就執行,建立了幾個物件就會呼叫幾次,而且優先於建構函式執行。
和建構函式的區別:
構造程式碼塊是給所有物件進行統一初始化(共性的東西),
而建構函式是給對應的物件初始化(建構函式可以有引數)。
構造程式碼快中定義的是不同物件共性的初始化內容
如果把類的所有建構函式私有化,則在本類外Person p1 = new Person();不能建立物件