一.建構函式-constructor
1.建構函式
a.函式名和類名相同
b.沒有返回值型別 (注意: 區別於void!)
c.new關鍵字建立物件時自動呼叫
注意:
a.建構函式可以過載;
b.可以定義與類名相同的方法.
2.什麼時候使用建構函式
當我們想在建立物件的時候就執行一段**, 就可以把這段**放在建構函式中
例如對成員變數的賦值, 定義建構函式, 接收引數, 在執行建構函式的時候, 就可以對成員變數賦值了
3.建構函式的呼叫
a.當new關鍵字建立物件的時候呼叫
b.在其他建構函式的第一條語句中使用this()形式呼叫
4.自動生成建構函式
乙個類如果沒寫任何建構函式, 那麼會自動生成乙個. 這個自動生成的建構函式沒有引數, 也沒有任何**.
注意:
如果寫了乙個有參的建構函式, 就不會自動生成無參的了.
5.建構函式的訪問許可權
通常情況下都是public的, 在別的類中可以建立該類物件
某些特殊情況下我們定義了乙個類, 不希望別人建立物件, 那麼就可以用private修飾建構函式.
二.區域性變數和成員變數
1.區域性變數:
localvariable, 方法中定義的變數.
2.成員變數:
field, 類中定義的變數
3.重名問題:
區域性變數可以和成員變數同名.
但是區域性變數不能和區域性變數同名. 成員變數不能和成員變數同名
4.訪問問題:
在方法中直接以乙個變數名形式訪問的時候, 會先找區域性變數, 再找成員變數.
如果存在區域性變數, 直接訪問區域性的, 如果沒有區域性的才找成員的, 如果成員的也沒有, 才會報錯.
使用"this.變數名"形式訪問乙個變數, 可以直接找到成員變數
三.this關鍵字
1.建構函式中
可以使用"this(引數)"形式呼叫其它建構函式
2.普通函式中
this代表呼叫當前函式的物件
通常在set方法和建構函式中都會使用, 當區域性變數和成員變數同名時訪問成員變數
3.內部類中
訪問外部類的成員時,使用"外部類名.this.成員名"進行訪問
四.函式的引數傳遞
1.基本資料型別
基本資料型別的資料由於是儲存在棧記憶體中的, 傳入函式中函式中的變數是乙個新的值, 函式中改變呼叫處不變.
2.引用資料型別
引用資料型別的資料是儲存在堆記憶體中的, 變數記住的是位址, 在呼叫函式時函式中傳入的也是位址, 兩邊指向同乙個物件, 一邊改變兩邊都變.
五.**塊
1.什麼是**塊
a.在類中用"{}"可以定義乙個**塊
b.**塊在建立物件的時候執行
2.**塊和成員變數賦值的順序
乙個類中如果定義了成員變數, 在建立物件的時候就會初始化, 這個預設的初始化是在**塊之前做的. 基本資料型別等於0, 引用資料型別等於null.
如果**中對成員變數賦了值, 也定義了**塊, 這兩部分的順序是按照定義的先後而決定的
如果**塊寫在了賦值的前面, 那麼是先初始化, 再**塊, 再賦值
如果**塊解除安裝了賦值的後面, 那麼是先初始化, 再賦值, 再**塊
六.static關鍵字
1.static用於修飾類的成員:
靜態變數
靜態方法
靜態**塊
靜態內部類
2.靜態變數
a.類載入後就初始化
b.所有物件共享
c.可以用"類名.變數名"訪問
七.思考題
海灘上有一堆桃子, 有五隻猴子來分.
第一只猴子發現了桃子, 將桃子分成了5份, 發現多了1個, 吃了. 拿走了乙份.
第二隻猴子也來到海灘發現了桃子, 也是將桃子分成5份, 發現多了1個, 吃了. 又是拿走乙份.
五隻猴子都是這麼做的. 問: 海灘上最初有多少個桃子?
public static void sum()
system.out.println(count);
total++;} }
JAVA基礎 建構函式與函式過載
簡單粗暴的解釋 1 建構函式 必須與該類名稱相同!屬於new建立就會開始的操作。不設定時,系統會預設建立空的建構函式。2 函式過載 僅僅只有引數不同而已,其它都一樣。因為定義為乙個相同的函式名後功能效果大同小異。例項應用 package liyawen class person 類名和建構函式要一致...
Java基礎筆記07
07.01 物件導向 構造方法概述和格式 b 構造方法格式特點 07.02 物件導向 構造方法的過載及注意事項 b 構造方法注意事項 c 給成員變數賦值的兩種方式 07.03 物件導向 成員方法的分類及使用 b 根據形式引數 b 案例演示 07.04 物件導向 乙個標準學生類的 及測試 構造方法 成...
Python基礎07 函式
函式最重要的目的是方便我們重複使用相同的一段程式。將一些操作隸屬於乙個函式,以後你想實現相同的操作的時候,只用呼叫函式名就可以,而不需要重複敲所有的語句。函式的定義 首先,我們要定義乙個函式,以說明這個函式的功能。def square sum a,b c a 2 b 2 return c 這個函式的...