我的java學習日記(6)

Java學習第六節J2SE面向對象

一、           面向對象與面向過程之區別與聯繫:

 

說明:CC++C#均是由微軟出產的系列產品;而java則是sun公司基於C++設計的一個編程語言。

二、           相關基本概念

1、對象:是由特徵和行爲構成。特徵即是對象本身的屬性描述,用變量記錄;行爲即是對象的功能,通過方法實現。

2、類(類名首字母要大寫)

(1)    類的聲明:可聲明屬性、方法、類、靜態塊、構造器等。

(2)    格式: [特殊符號]類型名稱;(new();)

(3)    訪問時通過( . )點來實現。

(用類名可以訪問的變量是靜態變量)

①聲明靜態變量:權限修飾符 static數據類型變量名;如private static intnum=100;

(在整個程序運行中,靜態變量最早被加載,而且只加載一次,載入內存,永遠存在)

②聲明靜態常量:權限修飾符 static final數據類常量名=常量值;

publicstatic final double PI=3.14

實例變量即是對象,靜態變量即是在數據類型前加static。實例變量可以訪問靜態變量,而靜態變量不可以訪問實例變量。類只有一個對象。

3、構造器,即構造方法、構造函數,也是指對象的初始化方法。

Java構造器不是函數,所以它不能被繼承,這是我們在寫extends的時候寫子類的構造器比較常見,即使子類與父類的構造器參數完全一樣,我們也要寫super就是因爲這個原因。構造器的修飾符比較有限,僅僅只有publicprivate protected這三個使用,其他的例如任何構造器都不能使用,也就是說構造器不允許被成名成對象、同步、靜態等等訪問限制以外的形式訪問。因爲構造器不是函數,所以他是沒有返回值的,但允許有return語句,return語句什麼都不返回,如果你指定了返回值,雖然編譯器不會報出任何錯誤,但是jvm會認爲他是一個與構造器同名的函數罷了,也會導致一些不必要的錯誤。

分爲傳參數的構造器和不傳參的構造器

   不傳參的構造器,舉例:student s=new student();

②傳參的構造器,舉例:student s=new student(String name,int number);

使用構造器時需要記住:

1、構造器必須與類同名(如果一個源文件中有多個類,那麼構造器必須與公共類同名)

2、每個類都有一個以上的構造器

3、構造器可以有0個、1個或一個以上的參數

4、構造器沒有返回值

5、構造器總是伴隨着new操作一起調用

A1.java構造了兩個函數,一個無參的,一個有參的。

test6.java調用了A1.java中構造的兩個函數。

 

注意:

1構建一個類的對象時候(new),一定會調用構造方法

2一個類一定有構造方法,如果不明確設置則系統會爲我們提供給一個無參的構造方法,如果明確定義構造方法,則系統就不會爲我們提供構造方法。

3構造方法也支持方法的重載,即一個類中可以有多個構造方法。

4構造方法中一般放一些初始化的操作

5構造方法之間可以互相調用this(必要的參數);注意該語句必須是構造方法的第一條語句。

4、面向對象的構造器(構造器也是一種實例方法),依賴於構造條件,滿足一定的條件纔可以實例化對象,否則不可以。

this是當前的意思,只允許用在實例對象/方法中(需要用對象調)。

this. 表示訪問

this( )轉發構造器,只允許卸載構造器第一行

5、靜態塊

類的構造器,有參數、有初始化方法,叫靜態塊

格式:static{ }

加載類方法:①Class.forName();main方法聲明的內容後面要加throws Exception

             ②直接調用

new對象

6、常量的聲明

方法一:final String address=””;//final表示只能給所聲明的常量賦一次值

方法二:final String address

       Address=””;

方法三:final static String ADDRESS=”AA”;

當調用常量方法時不加載,當調用非常量方法時可以加載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章