--- tags: Java, Development, Software, --- # Java note02 ### 裝箱---以Integer為例 語法: ``` Integer object = new Integer(整數常數或變數) ``` ``` e.g. int x =1234; Integer obj1=new Integer(x); ``` ### 拆箱---以Integer為例 語法: 基本資料型態 ``` 變數=IntegerObject.xxxValue ``` ``` e.g. int x = obj2.intValue(); Short y = obj2.shortValue(); ``` 一維陣列的複製- 語法:System.array.copy(來源陣列,索引值,目標陣列,索引值,個數) ### 類別與物件--- 1.物件是類別的實體 2.類別的成員有 ①屬性field ②方法method ③建構式constructor 定義(宣告)屬性- 語法: ``` [ACCESS][qualifiors]資料型態 屬性名稱[初值] ``` 定義類別--- 語法: ``` [public] class 自訂名稱 [extends 基礎類別] { 成員 } ``` 說明: 1.一個檔案只能有一個public class 2.public class的名稱是檔案的主檔名 3.public僅表示對外[開放]的等級 4.未表示基礎類別時,表示是 extends [java.lang.Object] 說明: 1. Access---表示存取權限,即對外開放的等級,區分為四種 1.public :完全對外開放 2.protected : i.相同套件(路徑)-完全開放 ii.不同套件-僅對子類別開放 3.預設 (無keyword):同protected的 i. 4.private: 表面意義是[不對外開放],但實際上是[間接對外開放], 換言之是提供[預設等級]以上的存取方法 e.g. private String name ; : public String getName(); 2. qualifiers---表示配置的位置與特性,提供兩個 1.static:配置在static記憶區,共用屬性, 2.final:表示常數(java 沒有用constant) 註:1.2可以避用,而且無優先等級之分 ``` 例. Q:下列何者不合理 1.int w=123; 2.static imt x = 123; 3.final int y = 123; 4.static final int z = 123; 5.final static int z = 123; A:5個compile都會過,but 3.不合理, final是常數,所以放在static 共用,放在static省去記憶體空間 ``` 3. 資料型態---只需是java的資料型態都可以使用 int x =123; Integer y = 123; Integer y = new Integer(123); 4. 屬性名稱---數是同識別字 5. 指定初值---系統會自動初始化 原則: ① 整數-0 ② 浮點數-0.0 ③ 字元-\u000 ④ 布林-false ⑤ 類別型態-null ### 方法(成員方法)--- ``` [ACCESS][quilifiers] 回傳值型態 方法名稱([參數群]) { 主體 } ``` 說明: 1. access---同屬性 2. quilifiers--- 1.static-類別方法(共同的方法,直接以類別方法來叫用) 2.final-不允許子類別Override 3. 回傳值型態- java資料型態都可以是回傳值型態,若不使用回傳值型態時,以[void]取代 4. 方法名稱-命名規範同識別字 5. 參數群- 1.宣告方式:資料型態 參數名稱 2.參數的位階是[區域變數] 3.jdk5 開始支援參數個數不固定,宣告方式: 資料型態...參數群名稱 e.g. int...x 註:是以陣列存放參數 6. 在同個類別中可以定義若干個同名的方法,稱為Overload 註:同名方法以參數來區分 ### 方法的參數個不固定--- 1. 參數中只能有一組不固定的參數群 註:不同之個數的參數群可以簡稱為群組參數 2. 群組參數必須記在最末 3. 群組參數的處理方式用一維陣列 ### 建構式(Constructor)--- 說明: 1.與類別同名的成員方法 2.支援Overload 3.四種存取權限都可以使用 註:1.存取的權限是指對外開放的等級 2.同一個類別內的成員可以相互利用 3.private建構式讓其他對外的建構叫用 4.建立物件實體時,必須叫用建構 5.定義類別時,未撰寫建構,在編譯的過程中 會自動加入一個"無參數的零建構"此建構名為"default constructor" 6.建構是無回傳值的成員方法,但撰寫時不用加上void 7.建構叫用其他建構使用 this ### This--- 說明: 1. 物件的代名詞(另一種參考的寫法) 2. 每個物件的實體都有 ``` int x,y; public point (int a,int b){ x=a; y=b; } int x,y; public point (int x,int y){ this.x=x; this.y=y; } ``` ### Matcher -字串比對器類別 說明: ①套件路徑在java.util.regex ②Matcher物件是由Pattern物件來建立 1. 建立pattern物件 (類別方法) ⑴ Pattern 物件 = Pattern.compile(正則) ⑵ Pattern 物件 = Pattern.compile(正則,Pattern.CASE.INSENSITIVE) 2. 建立Matcher物件 (物件方法) Matcher 物件 =Pattern物件.matcher(字串) ### 繼承---Inheritance (bigtitle) ``` [public] class 自訂類別 extends 基礎類別 { ①加入新成員 ②Override } ``` 說明: ①採用單一繼承 ②是完整的繼承(public) ③自訂類別是延伸類別,通稱子類別 ④基礎類別通稱父類別 ### super---發生在繼承時 說明: ①物件的參考 ②可以用來叫用父類別的成員 ③以super([參數群])來叫用父類別的建構式 ### this---建立物件時 說明: ①物件的參考 ②可以用來叫用自身類別的成員 ③以this([參數群])來叫用自身類別的建構 ### Override--- 說明: ①發生在繼承 ②成立的要件 a.存取權限,維持,提升 b.回傳值型態:維持 c.參數的個數,型態,次序要與原方法相同 protected int show(int x, double y) protected public ### Overload- 說明: ①發生在定義類別 ②成立的要件 a.參數型態不同 b.參數的個數不同 c.參數的型態次序不同 註:a,b,c三項中,有一項成立即可 抽象類別(abstract class)- 說明: ①不能直接建立物件,必須經由繼承 ②成員 方式1:與一般類別相同 方式2:內含抽象方法 註:抽象方法是只有定義,但是無本體,語法 [access] abstract 回傳值型態 方法名稱 ([參數群]) 用途是要求繼承必須[Override]該方法 polymorphism 父 物件 = new 子() class 父{ ; } class 子 extends 父{ ; } 成立的條件 1.繼承關係 2.Override ###### tags: `Java` `Development` `Software`