JAVA 物件導向

2021-08-26 21:15:02 字數 1798 閱讀 7253

day3

物件導向分析----類所包含的屬性應該採用private封裝起來,並用getter和setter方法取得和設定,所有的類與方法都不要直接輸出,交給呼叫處輸出,若有需要的話可以加入若干的構造方法。

person per2=new person();//若父類沒有無參建構函式此句不成立 public person()

子類在例項化的時候會預設呼叫父類的無參建構函式,若要呼叫含參建構函式,必須super(引數1,引數2);如果父類沒有無參建構函式,則編譯出錯;

例如:父類是person,只有含有name,age兩個引數的建構函式,建構函式是person(string name,int age); 子類是student,建構函式有name,age,school三個引數,建構函式是student( string name,int age ,string school);就必須在student中的建構函式中加上super(name,age),這樣就可以明確呼叫父類中的建構函式了。否則會出現不能找到相應的建構函式。而實現處必須傳進三個引數給student類。

public person()

public person(int id,string name,float salary)

public person(int id, int age, string name, string gender, string position,

date birthday, float salary) 輸出

呼叫無參構造

呼叫三參構造

person [id=1, age=23, name=張文濠, gender=男, position=worker, birthday=wed jan 04 00:07:00 cst 1989, salary=3500.0]

呼叫無參構造

呼叫三參構造

person [id=2, age=0, name=張小文, gender=null, position=null, birthday=null, salary=3600.0]

構造方法用private封裝,則外部要例項化的時候會失敗;

但是內部能夠例項化成功;需要考慮的就是如何從外部取出instance物件;

可以講instance生命成static變數,則外部可以從類宣告後在吧instance賦值給外部變數

但是為了實現封裝性,最好把instance也封裝起來,然後則可以用呼叫方法取得該物件;(加乙個getter)

class singleton

public void print()

};public class singletondemo03

};

這樣做的好處就是把例項化只進行一次,想象一下,宣告n個物件,如果真的每乙個都要例項化,就會很耗費資源,但是如果吧例項化封裝在乙個類中的話,就可以很節省資源;(這個就是單例設計模式);在入口處(建構函式)限制了例項化操作;

內部類類中有類:內部類可以直接呼叫外部類的引數或者方法;呼叫外部類的時候會直接例項化內部類;缺點就是破壞程式的結構性;外部(不是外部類,指的是別的類或者方法)不能直接呼叫內部類的函式或者引數;

優點:可以方便訪問外部類的成員函式;

非要使用內部類的話可以用static宣告內部類即可;而內部類使用到的引數也必須是static,因為非static方法不能訪問static

JAVA 物件導向

this關鍵字只能在方法內部使用,表示 呼叫方法的那個物件 的引用。this 用於建構函式之間進行相互呼叫。語句只能定義在建構函式的第一行。static 靜態 使用注意事項 1.靜態方法只能訪問靜態成員。非靜態方法可以訪問靜態成員。2.靜態方法中不可以定義this,super關鍵字。因為靜態優先於物...

JAVA 物件導向

定義類的格式 class student 例 public int addnumber int a,int b 注 方法名中的引數int a,int b為區域性變數 類方法中的一類特殊方法 構造方法。構造方法是當用類生成物件時,系統在生成物件的過程中利用的方法。注意 構造方法在生成物件的時候會被呼叫...

Java物件導向

理解物件導向 物件導向是相對面向過程而言 物件導向和面向過程都是一種思想 面向過程 強調的是功能行為 物件導向 將功能封裝進物件,強調具備了功能的兌現 物件導向是局域面向過程的 物件用計算機語言對問題域中事物的描述,物件通過屬性和方法來分別對應事物所具有的靜態屬性和動態屬性 物件導向的特點 是一種復...