在這一節,我們會學習Java類的基本結構(Class structure),變量(variables)以及方法(methods)。如果不能理解這一節所講的所有細節的話,那也沒關系的。因為在后面還會繼續詳細介紹這些剛開始看起來可能還有點模糊的概念。
首先我們在IntelliJ 里面創建一個新的Project,選擇Java,然后不要選擇其它額外的選項。繼續點擊Next.。然后我們需要給Project一個名稱。我就命名為JavaBasicClassStructure吧,Project的位置,你可以放在任意你喜歡的位置。我就放在桌面吧,如果目錄不存在,它會自動創建一個的。
然后我們創建一個簡單的類,代表一個人。 所以類是Java里面最基礎的結構了。當定義一個類的時候,我們定義類的各種特性。例如我們定義一個Person類,我們會描述一個人。當我們要使用這個類的時候,我們需要創建一個對象。所以一個類有兩個基本元素,其一是字段(field)也成為變量(variable)。以及方法(method)有時候又稱為函數(function)。
變量保存變量的狀態(states),例如在Person類里面可能是名字(first name)或姓氏(last name)。
然后方法是操作狀態的,所以方法是一些我們可以調用的操作。 例如你可以想象一下計算器,在你的計算器上按下加法按鈕。就會調用加法操作。
所以我們先要創建一個包,在src目錄里創建一個包,按下new package,然后我輸入io.zwt,你可以隨你喜歡來命名。現在我們又兩個包,你現在不用理這些細節的,后面的視頻會詳細講解包的。
```java
package io.zwt;
public class Person {
}
```
現在讓我們創建一個新的類,然后輸入Person。前面已經說了,類只是一種描述或特性,對象的特性。所以這個Person類會有什么,會有Firstname lastname 還有年齡age例如,你還可以添加一些像身份證號碼,或者任何你想添加的屬性。
所以讓我們輸入
```java
package io.zwt;
public class Person {
private String firstName;
private String lastName;
private int age;
}
```
所以這些就是我們的類里邊的變量,或稱字段,
它們描述了我們的類。
當我們定義變量的時候,我們需要定義變量的**類型**。 所以 `age` 是 `int` 類型,
即數字類型。
然后 `firstName` 和 `lastName` 是 `String` 類型,即字符串類型。
讓我們給類添加一些方法,對于`Person`類,我們需要`getFirstName`和`setFirstName`
`lastName`和`age`也是一樣。讓我們添加這些方法。
```java
public String getFirstName() {
return firstName;
}
```
現在先不用擔心看不懂這些。各種細節將會在后面詳細講解。
不過上面的就是一個方法。 它返回值的類型是String,然后我們返回firstName。
上面那個返回firstName的方法,我們稱為 getter , 它開頭是get然后緊接著變量名。例如 getFirstName,getLastName,還有getAge之類的。
方法的聲明(declaration)也稱為方法簽名(signature)那個 `public String getFirstName()`就是方法的簽名。 上面的方法簽名我們可以看出,這個方法返回的類型是String,然后方法的參數列表(parameter list)為空的。在方法的括號內,我們可以有任意個參數。但是我們這個方法沒有參數。
其它的方法當然可以有參數。例如
```java
public void setFirstName(String firstName) {
this.firstName = firstName;
}
```
先別擔心 this 關鍵詞的用法,后面的課程會講清楚的。在上面的方法,我們有參數 firstName,當我們調用這個方法的時候,我們需要指定(形式)參數(parameter),那是提供給要調用的方法的。
這只是一個簡單的例子,主要目的是演示一下一個Java類的基本結構。所有這些關于 String、int、方法的細節將會在后面的課程詳細講解。
- 0.考試大綱解讀
- 1.內容簡介與環境搭建
- 1.1內容簡介
- 1.2.在Windows安裝JDK8
- 2.Java基礎
- 2.1.Java類結構
- 2.2.main方法
- 2.3.注釋
- 2.4.package與import
- 2.5.命名沖突與代碼格式
- 2.6.靜態導入
- 2.7.理解原始數據類型
- 2.8.整數型原始類型
- 2.9.小數型原始類型
- 2.10.原始char與boolean
- 2.11.聲明和初始化變量
- 2.12.理解原始類型變量的默認初始化
- 2.13.變量作用范圍
- 2.14.類里面元素的順序
- 2.15.理解null
- 2.16.原始類型的包裝類
- 2.17.Java的好處
- 2.18.考試題目舉例
- 3.操作符
- 3.1.理解操作符
- 3.2.算術操作符
- 3.3.數值類型提升以及類型轉換
- 3.4.一元操作符第一部分
- 3.5.一元操作符第二部分
- 3.6.賦值運算符
- 3.7.復合賦值運算符
- 3.8.關系操作符
- 3.9.關系操作符
- 3.10.相等操作符
- 3.11.理解 == 與 equals()方法
- 3.12.字符算術運算
- 3.13.考試題目舉例
- 4.基本程序控制流
- 4.1.if else語句
- 4.2.三元操作符
- 4.3.switch語句
- 4.4.while循環
- 4.5.do-while循環
- 4.6.for循環
- 4.7.考試題目舉例
- 5.理解字符串類型
- 5.1.創建字符串以及字符串連接
- 5.2.理解不可變性
- 5.3.字符串常量池和字符串相等
- 5.4.String類的方法第一部分
- 5.5.String類的方法第二部分
- 5.6.方法串聯
- 5.7.使用StringBuilder類
- 5.8.StringBuilder類的方法
- 5.9.理解相等性
- 5.10.考試題目舉例
- 6.數組
- 6.1.理解數組
- 6.2.使用數組
- 6.3.數組常見的問題
- 6.4.For-each循環
- 6.5.break語句和標簽
- 6.6.continue語句
- 6.7.數據排序
- 6.8.搜索數組
- 6.9.可變數量參數
- 6.10多維數組
- 6.11嵌套循環
- 6.12考試題目舉例
- 7.ArrayList
- 7.1.理解ArrayList
- 7.2.ArrayList的方法第一部分
- 7.3.ArrayList的方法第二部分
- 7.4.在ArrayList使用包裝類
- 7.5.ArrayList與數組之間的轉換
- 7.6.ArrayList元素排序
- 7.7.搜索ArrayList
- 7.8.遍歷List第一部分
- 7.9.遍歷List第二部分
- 7.10.考試題目舉例
- 8.方法
- 8.1.設計一個方法
- 8.2.方法的返回類型
- 8.3.方法的參數列表
- 8.4.帶有數量可變參數的方法
- 8.5.訪問修飾符
- 8.6.靜態方法和字段
- 8.7.使用靜態方法和字段第一部分
- 8.8.使用靜態方法和字段第二部分
- 8.9.final方法
- 8.10.靜態初始化
- 8.11.在方法之間傳輸數據
- 8.12.方法的返回數據
- 8.13.重載方法
- 8.14.考試題目舉例
- 9.類設計
- 9.1.類的構造函數
- 9.2.默認構造函數
- 9.3.構造方法重載
- 9.4.this 與 this()的區別
- 9.5.初始化的順序
- 9.6.數據封裝
- 9.7.不可變類
- 9.8.類與繼承第一部分
- 9.9.類與繼承第二部分
- 9.10方法重寫
- 9.11.super 與 super()的區別
- 9.12.重載與重寫的區別
- 9.13.抽象類
- 9.14.抽象方法
- 9.15.創建接口
- 9.16.實現接口
- 9.17.接口的默認方法
- 9.18.接口的靜態方法
- 9.19.抽象類與接口的區別
- 9.20.多態
- 9.21.虛方法
- 9.22.參數多態
- 9.23.考試題目舉例
- 10.Java 8的日期和時間API
- 10.1.創建日期與時間
- 10.2.使用日期與時間
- 10.3.Periods
- 10.4.格式化日期和時間
- 10.5.解釋日期和時間
- 10.6.考試題目舉例
- 11.異常處理
- 11.1.理解異常處理
- 11.2.Checked 與 Unchecked 異常的區別
- 11.3.處理異常
- 11.4.使用finally語句塊
- 11.5.捕獲不同的異常
- 11.6.return 和 finally塊
- 11.7.拋出異常的方法
- 11.8.考試題目舉例
- 12.簡單的Lambda表達式
- 12.1.理解Lambda
- 12.2.使用Lambda
- 12.3.Predicates
- 12.4.考試問題舉例
- 13.福利
- 13.1.Anki記憶卡片