搞懂java陣列、瞭解物件導向基礎

2020-10-07 16:03:34

陣列

陣列的概念:是一種容器,可以同時存放多個資料值。
陣列的特點:

  1. 陣列是一種參照資料型別
  2. 陣列當中的多個資料,型別必須統一
  3. 陣列的長度在程式執行期間不可改變

兩種常見的初始化陣列方式:
1.動態初始化陣列的格式:
資料型別[] 陣列名稱 = new 資料型別[陣列長度];

public class Demo01Array {

    public static void main(String[] args) {
        // 建立一個陣列,裡面可以存放300個int資料
        // 格式:資料型別[] 陣列名稱 = new 資料型別[陣列長度];
        int[] arrayA = new int[300];

    }
}

使用動態初始化陣列的時候,其中的元素將會自動擁有一個預設值。規則如下:
如果是整數型別,那麼預設為0;
如果是浮點型別,那麼預設為0.0;
如果是字元型別,那麼預設為’\u0000’;
如果是布林型別,那麼預設為false;
如果是參照型別,那麼預設為null。
2.靜態初始化基本格式:
資料型別[] 陣列名稱 = new 資料型別[] { 元素1, 元素2, … };
(靜態初始化沒有直接指定長度,但是仍然會自動推算得到長度。)

public class Demo02Array {

    public static void main(String[] args) {
        // 直接建立一個陣列,裡面裝的全都是int數位,具體為:5、15、25
        int[] arrayA = new int[] { 5, 15, 25, 40 };

        // 建立一個陣列,用來裝字串:"Hello"、"World"、"Java"
        String[] arrayB = new String[] { "Hello", "World", "Java" };
    }
}

靜態初始化省略格式:
資料型別[] 陣列名稱 = { 元素1, 元素2, … };

public class Demo03Array {

    public static void main(String[] args) {
        // 省略格式的靜態初始化
        int[] arrayA = { 10, 20, 30 };
    }
    
}

類與物件

類的定義格式:

class 類名稱{
	// 成員屬性
    資料型別 屬性名; 
    // 成員方法
    許可權修飾符 返回值型別 方法名(形式參數列){        //方法體        return 返回值;    }
    }
 }

物件的定義格式:
類名 物件名 = new 類名();
使用物件存取類中的成員:
物件名.成員變數;
物件名.成員方法();
匿名物件:
沒有物件名稱的物件 就是匿名物件。
匿名物件只能使用一次,因為沒有任何的物件參照,所以將稱為垃圾,等待被G·C回收。 只使用一次的物件可以通過匿名物件的方式完成

構造方法

定義格式:
構造方法的寫法上,方法名與它所在的類名相同。它沒有返回值,所以不需要返回值型別,甚至不需要void。舉例:

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

作用: 用於物件初始化。
執行時機: 在建立物件時,自動呼叫
特點: 所有的Java類中都會至少存在一個構造方法 如果一個類中沒有明確的編寫構造方法, 則編譯器會自動生成一個無參的構造方法, 構造方法中沒有任何的代 碼! 如果自行編寫了任意一個構造器, 則編譯器不會再自動生成無參的構造方法
建議:當類中有非常數成員變數時,建議提供兩個版本的構造方法,一個是無參構造方法,一個是全屬性做引數的構造方法。 當類中所有成員變數都是常數或者沒有成員變數時,建議不提供任何版本的構造。
方法的過載:
方法名稱相同, 引數型別或引數長度不同, 可以完成方法的過載 ! 方法的過載與返回值無關!
構造方法的過載:
參數列的長度或型別不同即可完成構造方法的過載