1. 程式人生 > >Java基礎(三)

Java基礎(三)

etx 一個 保護 命名 import語句 查看 true 出現 concat

1、構造方法

當一個對象被創建時候,構造方法用來初始化該對象,給對象的成員變量賦初始值。

小貼士:無論你與否自定義構造方法,所有的類都有構造方法,因為Java自動提供了一個無參數構造方法,一旦自己定義了構造方法,Java自動提供的默認無參數構造方法就會失效。

格式

修飾符 構造方法名(參數列表){
// 方法體
}

構造方法的寫法上,方法名與它所在的類名相同。它沒有返回值,所以不需要返回值類型,甚至不需要void。使用
構造方法後,代碼如下:

public class Student {
private String name;
private int age;
// 無參數構造方法
public Student() {} // 有參數構造方法 public Student(String name,int age) { this.name = name; this.age = age; } }

註意事項
1. 如果你不提供構造方法,系統會給出無參數構造方法。
2. 如果你提供了構造方法,系統將不再提供無參數構造方法。
3. 構造方法是可以重載的,既可以定義參數,也可以不定義參數。

標準代碼——JavaBean

public class ClassName{
//成員變量
//構造方法
//無參構造方法【必須】
//有參構造方法【建議】
//成員方法 //getXxx() //setXxx() }
技術分享圖片
public class Student {
//成員變量
private String name;
private int age;
//構造方法
public Student() {}
public Student(String name,int age) {
this.name = name;
this.age = age;
}
//成員方法
publicvoid setName(String name) {
this.name = name;
}
public String getName() {
return name; } publicvoid setAge(int age) { this.age = age; } publicint getAge() { return age; } } public class TestStudent { public static void main(String[] args) { //無參構造使用 Student s= new Student(); s.setName("柳巖"); s.setAge(18); System.out.println(s.getName()+"‐‐‐"+s.getAge()); //帶參構造使用 Student s2= new Student("趙麗穎",18); System.out.println(s2.getName()+"‐‐‐"+s2.getAge()); } }
例子

2、ArrayList使用步驟

java.util.ArrayList <E> :該類需要 import導入使後使用。
<E> ,表示一種指定的數據類型,叫做泛型。 E ,取自Element(元素)的首字母。在出現 E 的地方,我們使
用一種引用數據類型將其替換即可,表示我們將存儲哪種引用類型的元素。代碼如下:

ArrayList<String>,ArrayList<Student>

基本格式:

ArrayList<String> list = new ArrayList<String>();

在JDK 7後,右側泛型的尖括號之內可以留空,但是<>仍然要寫。簡化格式:

ArrayList<String> list = new ArrayList<>();

查看成員方法

public boolean add(E e) : 將指定的元素添加到此集合的尾部

對於元素的操作,基本體現在——增、刪、查。常用的方法有:
public boolean add(E e) :將指定的元素添加到此集合的尾部。
public E remove(int index) :移除此集合中指定位置上的元素。返回被刪除的元素。
public E get(int index) :返回此集合中指定位置上的元素。返回獲取的元素。
public int size() :返回此集合中的元素數。遍歷集合時,可以控制索引範圍,防止越界。

如何存儲基本數據類型
ArrayList對象不能存儲基本類型,只能存儲引用類型的數據。類似 <int> 不能寫,但是存儲基本數據類型對應的
包裝類型是可以的。所以,想要存儲基本類型數據, <> 中的數據類型,必須轉換後才能編寫,轉換寫法如下:

基本類型 基本類型包裝類
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

3、筆記

1、用private關鍵字將需要保護的成員變量進行修飾。

一旦使用了private進行修飾,那麽本類當中仍然可以隨意訪問。
但是!超出了本類範圍之外就不能再直接訪問了。

間接訪問private成員變量,就是定義一對兒Getter/Setter方法 ---> (像Python的__set__和__get__)

必須叫setXxx或者是getXxx命名規則。
對於Getter來說,不能有參數,返回值類型和成員變量對應;
對於Setter來說,不能有返回值,參數類型和成員變量對應。

註意事項:對於基本類型當中的boolean值,Getter方法一定要寫成isXxx的形式,而setXxx規則不變。

2、
當方法的局部變量和類的成員變量重名的時候,根據“就近原則”,優先使用局部變量。
如果需要訪問本類當中的成員變量,需要使用格式:
this.成員變量名

“通過誰調用的方法,誰就是this。”

3、構造方法是專門用來創建對象的方法,當我們通過關鍵字new來創建對象時,其實就是在調用構造方法。
格式:
public 類名稱(參數類型 參數名稱) {
    方法體
}
    註意事項:
    1. 構造方法的名稱必須和所在的類名稱完全一樣,就連大小寫也要一樣
    2. 構造方法不要寫返回值類型,連void都不寫
    3. 構造方法不能return一個具體的返回值
    4. 如果沒有編寫任何構造方法,那麽編譯器將會默認贈送一個構造方法,沒有參數、方法體什麽事情都不做。
    public Student() {}
    5. 一旦編寫了至少一個構造方法,那麽編譯器將不再贈送。
    6. 構造方法也是可以進行重載的。
    重載:方法名稱相同,參數列表不同。

4、一個標準的類通常要擁有下面四個組成部分:

    1. 所有的成員變量都要使用private關鍵字修飾
    2. 為每一個成員變量編寫一對兒Getter/Setter方法
    3. 編寫一個無參數的構造方法
    4. 編寫一個全參數的構造方法

    這樣標準的類也叫做Java Bean

5、Scanner類的功能:可以實現鍵盤輸入數據,到程序當中。

    引用類型的一般使用步驟:

    1. 導包
    import 包路徑.類名稱;
    如果需要使用的目標類,和當前類位於同一個包下,則可以省略導包語句不寫。
    只有java.lang包下的內容不需要導包,其他的包都需要import語句。

    2. 創建
    類名稱 對象名 = new 類名稱();

    3. 使用
    對象名.成員方法名()

    獲取鍵盤輸入的一個int數字:int num = sc.nextInt();
    獲取鍵盤輸入的一個字符串:String str = sc.next();

6、創建對象的標準格式:
類名稱 對象名 = new 類名稱();

匿名對象就是只有右邊的對象,沒有左邊的名字和賦值運算符。
new 類名稱(參數列表);

註意事項:匿名對象只能使用唯一的一次,下次再用不得不再創建一個新對象。
使用建議:如果確定有一個對象只需要使用唯一的一次,就可以用匿名對象。

7、Random類用來生成隨機數字。使用起來也是三個步驟:

    1. 導包
    import java.util.Random;

    2. 創建
    Random r = new Random(); // 小括號當中留空即可

    3. 使用
    獲取一個隨機的int數字(範圍是int所有範圍,有正負兩種):int num = r.nextInt()
    獲取一個隨機的int數字(參數代表了範圍,左閉右開區間):int num = r.nextInt(3)
    實際上代表的含義是:[0,3),也就是0~2

8、java.lang.String類代表字符串。
    API當中說:Java 程序中的所有字符串字面值(如 "abc" )都作為此類的實例實現。
    其實就是說:程序當中所有的雙引號字符串,都是String類的對象。(就算沒有new,也照樣是。)

    字符串的特點:
    1. 字符串的內容永不可變。【重點】
    2. 正是因為字符串不可改變,所以字符串是可以共享使用的。
    3. 字符串效果上相當於是char[]字符數組,但是底層原理是byte[]字節數組。

    創建字符串的常見3+1種方式。
    三種構造方法:
    public String():創建一個空白字符串,不含有任何內容。
    public String(char[] array):根據字符數組的內容,來創建對應的字符串。
    public String(byte[] array):根據字節數組的內容,來創建對應的字符串。
    一種直接創建:
    String str = "Hello"; // 右邊直接用雙引號

    註意:直接寫上雙引號,就是字符串對象。

9、字符串常量池:程序當中直接寫上的雙引號字符串,就在字符串常量池中。

對於基本類型來說,==是進行數值的比較。
對於引用類型來說,==是進行【地址值】的比較。

10、==是進行對象的地址值比較,如果確實需要字符串的內容比較,可以使用兩個方法:

    public boolean equals(Object obj):參數可以是任何對象,只有參數是一個字符串並且內容相同的才會給true;否則返回false。
    註意事項:
    1. 任何對象都能用Object進行接收。
    2. equals方法具有對稱性,也就是a.equals(b)和b.equals(a)效果一樣。
    3. 如果比較雙方一個常量一個變量,推薦把常量字符串寫在前面。
    推薦:"abc".equals(str)    不推薦:str.equals("abc") ---> 當str為null時,str.equals()報錯

    public boolean equalsIgnoreCase(String str):忽略大小寫,進行內容比較。

11、String當中與獲取相關的常用方法有:

public int length():獲取字符串當中含有的字符個數,拿到字符串長度。
public String concat(String str):將當前字符串和參數字符串拼接成為返回值新的字符串。
public char charAt(int index):獲取指定索引位置的單個字符。(索引從0開始。)
public int indexOf(String str):查找參數字符串在本字符串當中首次出現的索引位置,如果沒有返回-1值。

12、字符串的截取方法:

public String substring(int index):截取從參數位置一直到字符串末尾,返回新字符串。
public String substring(int begin, int end):截取從begin開始,一直到end結束,中間的字符串。
備註:[begin,end),包含左邊,不包含右邊。

技術分享圖片

Java基礎(三)