Learning Object-Oriented Programming In Java

  • Class和Object的差別
    • class代表廣泛的非具體的抽象概念,可以是任何東西
      • 例:IDE、圖書館、書
    • object是具體的東西
      • Netbeans、Eclipse、台北圖書館、倚天屠龍記
  • Java和C語言的差異
    • Java在編譯的時候需要和其他Java文件一起編譯成一個工程(package)
    • C語言直接編譯即可(gcc test.c -o test)
    • 定義類別的時候也不太一樣(全域變數)
  • 兩個例子分別說明類的概念
    • 張三和李四到銀行存錢
      • 存款、提款
      • 建立帳戶的時候就需要給名稱和存款的額度
    • 二哈繼承狗的類別
      • 一般會給狗取名字,而狗也有自己的年齡和性別
      • 二哈繼承狗的類別,在eclipse當中可以直接override父類別建構方法
  • 子類繼承父類
    • Eclipse產生的建構子會自動為相對應的成員變數進行賦值
    • UML類圖,哈士奇繼承狗的類別
    • overload:相同名稱不同參數會找到對應的方法呼叫
    • override:覆寫父類別的方法
      • 當子類出現和父類別一樣的方法時,就用子類別的方法
      • 子類只能夠存取protected的成員變量
ArrayListTest.javalink
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 沒有加會有小紅線提示
import java.util.ArrayList;
public class ArrayListTest{
public static void test1{
int[] arr = new int[10];
arr[0] = 2;
arr[1] = 3;
for(int i=0; i< arr.length; i++){
System.out.println(arr[i]);
}
}
public static void main(String[] args){
// 沒有指定型別的話會出現小黃線
ArrayList<Integer> arr = new ArrayList<Integer>();
arr.add(1);
arr.add(3);
arr.add(5);
arr.remove(1); //移除第二個元素
for(int i=0; i<arr.size(); i++){
// 使用get來取得陣列的值
System.out.println(arr.get(i));
}
}
}