1:構造方法(掌握) |
(1)作用:對對象的數據進行初始化。 |
(2)特點: |
A:方法名和類名相同 |
B:沒有返回值類型 |
C:沒有返回值 |
(3)注意事項 |
A:如果我們沒寫構造方法,系統將默認給出無參構造方法 |
B:如果我們寫了構造方法,系統將不再給出默認無參構造方法 |
建議:我們自己手動給出無參構造方法 |
(4)給成員變量賦值: |
A:無參+setXxx() |
B:帶參 |
(5)一個標準的代碼: |
class Student { |
private String name; |
private int age; |
public Student() {} |
public Student(String name,int age) { |
this.name = name; |
this.age = age; |
} |
public void setName(String name) { |
this.name = name; |
} |
public String getName() { |
return name; |
} |
public void setAge(int age) { |
this.age = age; |
} |
public int getAge() { |
return age; |
} |
public void show() { |
System.out.println("姓名是:"+name+",年齡是:"+age); |
} |
} |
class StudentTest { |
public static void main(String[] args) { |
//無參+setXxx() |
Student s = new Student(); |
s.setName("林青霞"); |
s.setAge(28); |
s.show(); |
//帶參 |
Student ss = new Student("張曼玉",20); |
ss.show(); |
} |
} |
2:對象的初始化過程(理解) |
(1)Student s = new Student();做了哪些事情 |
A:加載Student.class文件進內存 |
B:在棧中爲s開闢空間 |
C:在堆中爲學生對象開闢空間 |
D:爲學生對象的成員變量賦默認值 |
E:爲學生對象的成員變量賦顯示值 |
F:通過構造方法給成員變量賦值 |
G:對象構造完畢,把地址賦值給s變量 |
3:面向對象的練習(掌握) |
(1)寫一個類Demo,裏面有一個求和功能。並測試。 |
(2)寫一個長方形的類,裏面有求周長和麪積的功能。並測試。 |
(3)自己分析員工類,實現,並測試。 |
(4)自己寫一個包含了加減乘除運算的類,並測試。 |
4:static關鍵字(掌握) |
(1)是一個狀態修飾符。靜態的意思 |
(2)它可以修飾成員變量和成員方法 |
(3)特點: |
A:隨着類的加載而加載 |
B:優先於對象存在 |
C:被所有對象共享 |
這也是判斷我們是不是該使用靜態的條件 |
舉例:飲水機和水杯例子。 |
D:可以通過類名調用 |
靜態修飾的內容,可以通過類名調用,也可以通過對象名調用 |
(4)方法訪問特點 |
A:普通成員方法 |
可以訪問靜態成員變量,非靜態成員變量,靜態成員方法,非靜態成員方法 |
B:靜態成員方法 |
只能訪問靜態成員變量,靜態成員方法 |
簡記:靜態只能訪問靜態 |
注意: |
靜態中是不能有this的。 |
先進內存的不能訪問後進內存的。反之可以。 |
5:靜態成員變量和普通成員變量的區別(理解) |
(1)所屬不同 |
靜態屬於類的,稱爲類變量 |
非靜態屬於對象的,稱爲對象變量,實例變量 |
(2)內存空間不同 |
靜態在方法區的靜態區 |
非靜態在堆內存 |
(3)生命週期不同 |
靜態隨着類的加載而加載,隨着類的消失而消失 |
非靜態隨着對象的創建而存在,隨着對象的消失而消失 |
(4)調用不同 |
靜態可以通過類名調用,也可以通過對象名調用。建議通過類名調用 |
非靜態只能通過對象名調用 |
6:main方法是靜態的(理解) |
(1)public static void main(String[] args) |
7:製作幫助文檔(瞭解) |
(1)寫代碼 |
(2)加文檔註釋 |
(3)通過javadoc工具生成說明書 |
8:使用幫助文檔(掌握) |
請參照:07_學習並使用幫助文檔 --> 如何使用幫助文檔.txt |
9:學習Math類(掌握) |
(1)Math:針對數學進行運算的類 |
(2)特點:沒有構造方法,因爲它的成員都是靜態的 |
(3)產生隨機數: |
public static double random(): 產生隨機數,範圍[0.0,1.0) |
(4)產生1-100之間的隨機數 |
int number = (int)(Math.random()*100)+1; |
(5)猜數字小遊戲案例 |
自己對着我的分析寫一遍 |
10:代碼塊(理解) |
(1)在java中用{}起來的代碼 |
(2)分類: |
局部代碼塊:在方法中。限定變量生命週期,及早釋放,提高內存使用率 |
構造代碼塊:在類中方法外。 |
把多個構造中的相同代碼用一個構造代碼塊體現,每次創建對象都會自動調用。 |
靜態代碼塊:在類中方法外,用static修飾。 |
對類中的數據進行初始化。僅僅執行一次。 |
(3)面試題: |
A:靜態代碼塊,構造代碼塊,構造方法的執行順序? |