Java類(無參 有參構造方法 靜態變數)

2021-08-14 11:55:50 字數 3860 閱讀 1930

初始化成員變數的
1.構造方法 沒有返回值 甚至不寫返回值的型別

2.構造方法的方法名 與類名 相同

關鍵字 構造方法名()

public

class cat

// 獲取貓名

public string getname()

// 修改貓名

public

void

setname(string name)

// 獲取顏色

public string getcolor()

// 修改顏色

public

void

setcolor(string color)

// 獲取種類

public string getkind()

// 修改種類

public

void

setking(string kind)

// 會吃魚

public

void

eat()

// 會賣萌

public

void

cute()

// 會抓老鼠

public

void

catchmouse()

// 介紹自己

public

void

sayhi()

}

public

static

void

main(string args)

不存在無參構造方法時 系統會提供無參構造方法
存在有參的構造方法時 系統不會提供無參的構造方法
成員變數 -> 無參有參構造方法 -> 

set/get方法 -> 成員方法

class car

// 有參 構造方法

public

car(string name, int num)

public

void

sayhi()

public

void

fun()

}

public

static

void

main(string args)

建立乙個矩形類

計算周長 和 面積(都是整數就行)

無參有參構造方法 set/get方法
class square    

// 有參構造

public

square(int length, int width)

// 長 get方法

public

intgetlength()

// 長 set方法

public

void

setlength(int length)

// 寬 get方法

public

intgetwidth()

// 寬 set方法

public

void

setwidth(int width)

// 周長 get方法

// 建議:不要修改set和get方法的 寫法

public

intgetperimeter()

// 周長 set方法

public

void

setperimeter(int perimeter)

// 面積 get方法

public

intgetarea()

// 面積 set方法

public

void

setarea(int area)

/*// 計算周長

public int getperimeter()

// 計算面積

public int getarea() */}

使用static修飾
靜態變數儲存在方法區的靜態區(共享區)

靜態變數是共享的區間

1.物件呼叫

2.類名呼叫(推薦)

1.呼叫方式不同

非靜態變數:只能使用物件去呼叫

2.記憶體中存在位置不同

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

非靜態變數:堆記憶體

3.載入的是不同

靜態變數:隨著類的載入而載入(不依賴物件而載入)

非靜態變數:隨著物件的建立而建立(依賴物件)

4.生命週期不同

靜態變數: 隨著類的銷毀而銷毀(相當於程式結束)

非靜態變數:隨著物件銷毀而銷毀

1.載入.class檔案(位元組碼檔案)到方法區

2.main方法入棧

3.要建立girl的物件 先要載入 girl.clss

girl.clss中分為 靜態區和非靜態區

這時初始化靜態變數country初始值為null

4.建立物件(堆記憶體開闢空間)

5.把物件位址 賦值給 girl 變數 儲存

6.通過類名 修改 類變數的值

7.sayhi方法入棧 列印

8.sayhi出棧

9.main出棧

使用static修飾的方法
非靜態方法:

1.可以使用靜態變數 和 非靜態變數

2.可以使用靜態方法 和 非靜態方法

靜態方法:

1.只能使用靜態變數

2.只能使用靜態方法

class man 

public

static

void

sayhi()

// 靜態方法

// 靜態方法中 不能訪問 非靜態變數(因為載入類的時候 還沒有物件)

// 簡單記:靜態只能使用靜態的

public

static

void

fun1()

}

public

static

void

main(string args)

main就是為了讓jvm去呼叫的方法

public

jvm呼叫這個方法 要使用最大許可權

static

jvm呼叫時是不需要建立物件 直接使用類名調就行

main 不是關鍵字 jvm只認識main這個詞

string args 接收鍵盤輸入的值

有參構造與無參構造

定義person類 public class person 2.有參構造 一旦定義有參構造,無參就必須顯示定義 public person string name main函式呼叫 person person newperson 和平 system.out.println person.name 一...

有參構造與無參構造

構造方法是一種特殊的方法,它是乙個與類同名且返回值型別為同名類型別的方法。物件的建立就是通過構造方法來完成,其功能主要是完成物件的初始化。當類例項化乙個物件時會自動呼叫構造方法。構造方法和其他方法一樣也可以過載。修飾符 類名 如果開發中沒有定義無參構造方法,jvm預設給類分配乙個無參構造,形如 pu...

無參構造與有參構造

構造方法根據有無引數分為無參構造和有參構造 無參構造語句 修飾符 類名 有參構造語句 修飾符 類名 type a1,type a2.它倆構成了方法過載。區域性變數和成員變數的優先順序問題 如下述 public class dog 此時標記的name是無法賦值給name的,因為區域性變數的優先順序高於...