類和物件
- 類和物件的關系,
- 類的介紹
- 類變數(靜態變數)
- public && private
- 一些建議和小結
- 寫在最后的話
這段時間博主學習了一些Java中類和物件的知識,今天我們就來聊聊Java中的類和物件,
類和物件的關系,
類其實就是一個模板,比如說類就好比一張房子的設計圖紙,或者說是一個倒印模具,創建一個類就好比設計一張圖紙,刻一個模板,物件就好比一座建好的房子,一個成型的模型,無疑想要一座房子或者一個模型都先需要一張圖紙和一個模板,而這就是類和物件的關系,
類的介紹
首先Java里面的類由關鍵字class定義,類中的元素稱為:成員屬性,類中的函式稱為:成員方法,
class Person {
public int age;//成員屬性 實體變數
public String name;
public String sex;
public void eat() {//成員方法
System.out.println("吃飯!");
}
public void sleep() {
System.out.println("睡覺!");
}
}
如下就是定義一個類
class Person {
public String name;
public String sex;
public int age;
//....人的屬性
}
然后拿這個類創建一個物件,然后我們可以通過點號 . 來訪問這個物件的成員,看下圖
Person person = new Person();//實體化一個物件

可以看到在沒有賦值之前是會默認賦值為型別相對應的0值,
| 型別 | 對應的0值 |
|---|---|
| 整型 | 0 |
| 浮點型 | 0.0 |
| 字符型別r | /u0000 |
| 參考型別 | null |
注:這里之所以有默認的0值,是因為他們都是成員變數,不屬于區域變數,所以有默認值,區域變數需要自己賦值才能使用,
類變數(靜態變數)
所謂的類變數也就是靜態變數,由關鍵字static修飾,存盤在方法區,在類加載的時候就會分配空間,所以類變數是脫離物件的,就是說,就算沒有實體化物件也是可以使用類變數的,看下圖,沒有物件依然可以通過 類名.變數名 使用類變數

同樣的,由static修飾的方法也是類方法也叫靜態方法,它和類變數具有相同的性質,類加載時分配空間,不依賴于實體化的物件,可以直接通過 類名.函式名() 呼叫,
如果不是靜態的變數和方法,那么我們就需要先通過new關鍵字實體化一個物件才可以使用,
public && private
在類的定義中有許多的訪問權限修飾符,而public和private是兩個最常使用的,顧名思義,public修飾的變數是公開的,所謂的公開就是說可以直接訪問,舉個栗子

當我們使用public修飾成員變數時可以正常使用,通過點號訪問物件的成員,但是當我們使用private修飾的時候,就會報錯,因為private是私有的,只能在當前類里面使用,不能被外部參考,

如果要其他類中需要使用的話就需要提供公開的介面,給需要使用的類呼叫,簡單來講就是,我寫個公開的方法,你把資料通過方法傳給我,我自己來操作,比如以下方法,看名字也能知道這些方法的作用,我們來使用一下這些方法


可以看到,通過公開的介面我們可以對私有的成員變數進行一系列的操作,細心的小伙伴們可能會發現在setName等等方法里面都出現了 this.變數名那么這個是什么呢,this其實是一個關鍵字,表示當前方法的參考,那么為什么要有這個關鍵字呢,那是因為當變數名相同時,區域變數有限使用,可能會導致無法賦值等情況,看下圖,當去掉this之后,名字明顯為初始值,這就是因為區域變數優先使用的原因,導致類里面的成員變數沒有被賦值,

一些建議和小結
1.建議實作類的時候將成員變數盡量設定為private屬性,防止資料被直接篡改,而方法非必要公開的介面也設定為private屬性的,具體根據實際情況來定
2.變數名和方法名使用小駝峰命名規則,盡量做到見名知意,做不到應該給上適當的中文注釋,幫助其他人理解代碼的意思
3.static修飾的代碼和代碼塊優先于任何代碼執行
4.一個類可以創建多個物件,很好理解,一張圖紙可以建造多棟相同的房子,比如小區的樓房就是一張圖紙建造出來的
5.在實體化一個物件的時候會呼叫一個構造方法,所謂的構造方法就一個名字與類名相同的方法,可以帶引數,沒有回傳值型別宣告,并且如果你沒有定義的話,編譯器就會自動實作一個不帶引數的構造方法,如果你定義了,那么編譯器就不會自動生成,并且構造方法也是支持多載的,構造方法的用處之一就是可以在創建物件的時候就進行賦值,


加上一句this.name ,就可以不需要setname了,只需要創建物件的時候,直接傳參即可,其他的博主就不在贅述了,


寫在最后的話
以上就是博主這段時間的學習內容,今天分享就到這里了,如果文章中有表達不清楚或者表述有錯誤的地方歡迎評論或者私信指出,博主會及時處理,好了本篇博客就到此結束了,我們下篇博客見,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/279981.html
標籤:java
下一篇:Java類和物件的學習
