java初識第七天

2021-09-05 18:11:23 字數 2812 閱讀 8481

1:成員變數和區域性變數的區別(理解)

(1)在類中的位置不同

成員變數:類中方法外

區域性變數:方法定義中或者方法宣告上

(2)在記憶體中的位置不同

成員變數:在堆中

區域性變數:在棧中

(3)生命週期不同

成員變數:有預設值

區域性變數:沒有預設值,必須定義,賦值,然後才能使用

2:類作為形式引數的問題(理解)?

(1)如果你看到乙個方法需要的引數是另乙個類名,就應該知道實際需要的是乙個具體的物件。

3:匿名物件(理解)

(1)沒有名字的物件

(2)應用場景

(a)呼叫方法,僅僅只呼叫一次的時候。

(b)可以作為實際引數傳遞。

4:封裝

(1)隱藏實現細節,提供公共的訪問方式

(2)好處:

a:隱藏實現細節,提供公共的訪問方式

b:提高**的復用性

c:提高**的安全性

(3)設計原則

把不想讓外界知道的實現細節給隱藏起來,提供公共的訪問方式

(4)private是封裝的一種體現

封裝:類,方法,private修飾成員變數

5:private關鍵字

(1)私有的意義,可以修飾成員變數和成員方法

(2)特點:

被private修飾後的長遠只能在本類中訪問

(3)private的用用:

以後再寫乙個類的時候:

把所有的成員變數給private了

提供對應的get***()/set***()

6:this關鍵字

(1)代表當前類的引用物件

記住:哪個物件呼叫方法,該方法內部的this就代表哪個物件

(2)this的應用場景

a:解決區域性變數隱藏成員變數的問題

b:其實this還有其他的應用,明天再講。

7:構造方法

(1)作用:用於對物件的資料進行初始化

(2)格式:

a:方法名和類同名

b:沒有返回值型別,連void都沒有

c:沒有返回值

思考題:構造方法中可不可以有return呢?

可以。而是我們寫成這個樣子就ok了:return;

其實,在任何的void型別的方法的最後你都可以寫上:return;

(3)構造方法的注意事項

a:如果我們沒有寫構造方法,系統將提供乙個預設的無參構造方法

b:如果我們給出了構造方法,系統將不再提供預設的構造方法

如果這個時候,我沒讓你要是用無參構造方法,就必須自己給出

推薦:永遠手動給出無參構造方法。

(4)給成員變數賦值的方式

a:set***()

b:帶參構造方法

(5)標準案例

class student()

public student(string name,int age)

public string getname()

public void setname(string name)

public int getage()

public void setage(int age)

}測試:

class studentdemo

}8:** student s1=new student();做了那些事?

(1)把student.class檔案載入到記憶體

(2)在棧內為s1開闢空間

(3)在堆內為學生物件申請空間

(4)給學生的成員變數進行預設初始化。null,0

(5)給學生的成員變數進行顯示初始化。林青霞,27

(6)通過構造方法給成員變數進行初始化。吳彥祖,30

(7)物件構造完畢,把位址賦值給s1變數

9:物件導向的練習題

(1)標準的手機類的定義和測試

(2)demo類有求和方法,test類進行測試。

什麼時候定義成員變數?

當變數是用來描述乙個類的時候

(3)長方形案例

(4)員工案例

(5)mymath案例(自己提供加減乘除並測試)

10:static關鍵字

(1)靜態的意思。可以修飾成員變數和成員方法

(2)靜態的特點:

a:隨著類的載入而載入

b:優先於物件存在

c:被類的所有物件共享

這其實也是我們判斷該不該使用靜態的一句。

舉例:飲水機和水杯的思考問題

d:可以通過類名呼叫

既可以通過物件名呼叫,也可以通過類名呼叫,建議通過類名呼叫

(3)靜態的記憶體圖

靜態的內容在方法區的靜態區

(4)靜態的注意事項:

a:在靜態方法中沒有this物件

b:靜態只能訪問靜態

(5)靜態變數與成員變數的區別

a:所屬不同

靜態變數:屬於類,類變數

成員變數:屬於物件,物件變數,例項變數

b:記憶體位置不同:

靜態變數:方法區的靜態區

成員變數:堆記憶體

c:生命週期不同

靜態變數:靜態變數是隨著類的載入而載入,隨著累的消失而消失

成員變數:成員變數是隨著物件的建立而存在,隨著物件的消失而消失

d:呼叫不同

靜態變數:可以通過物件名呼叫,也可以通過類名呼叫

成員變數:只能通過物件名呼叫

(6)main方法是靜態的

public:許可權最大

static:不用建立物件呼叫

void:返回值給jvm沒有意義

main:就是乙個常見的名稱

string args:可以接受資料,提供程式的靈活性

Java學習第七天

類成員 static成員 當使用例項來訪問類成員時,系統底層依然是委託該類來訪問類成員。因此,即便該類例項為null,她依然可以訪問所屬類的類成員。例如 package lesson5 單例模式 singleton 主要通過靜態變數 靜態方法和private構造方法完成。例如 package les...

Java學習第七天

07.01 物件導向 構造方法constructor概述和格式 掌握 b 構造方法格式特點 07.02 物件導向 構造方法的過載及注意事項 掌握 b 構造方法注意事項 07.03 物件導向 給成員變數賦值的兩種方式的區別 b 構造方法 07.04 物件導向 學生類的 及測試 掌握 構造方法 成員方法...

學習 java第七天

1 public int add int.arg arg 是陣列 2 傳統的for語句是不用下標去跑,foreach是直接跑元素,所以定義x型別要與陣列或其他物件一樣。3 x代表每乙個元素 4 介紹主函式 ftringargs可以接受外部的輸入 第二章物件導向 2 定義乙個類就等於一種新的資料型別。...