---
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`