---
# System prepended metadata

title: 8/27 K速記

---

# 8/27 K速記

鍊式調用
```java=
BookShelf shelf = gen();
shelf
	.by("abc")  //傳回名稱搜尋的暫存 BookShelf
	.by(data)	//使用上方的暫存書架 再使用日期搜尋，回傳暫存書架2，
	.printAll	//將上一層回傳的
```
利用回傳的類別(暫存)，可再調用同類別方法，
>超有趣的方法阿!


# 修飾詞
* static : 會在程式建立時候，建立在 globle 記憶體區，
```java=
public void main(String[] args){
	Test t1 = new Test();
	Test t2 = new Test();
	System.jout.println(Test.getSerila());//可無須實體 直接使用 <類別等級.方法> 
}

```
```java=
public class Test{
	public static int serial;
	private int a;
	public test(){
		a=5; // == this.a 實體等級
		serial++; //所有test 類別 都可以調用此數值，且不會消失。
	}
	public static int getSerial(){ //
		a--;//無實體無法調用 此處會報錯。
		return serial;// = Test.serial 類別等級
	}
}
```

* final : 不能再被修改的 修飾詞
```java=
	final int a =5;
	a = 3; //此處會報錯
```

static final => 常數 /統一調用 以 **全大寫**命名
在類別中調用，可減少重複建立，也可減少重複輸入造成的錯誤，

* enum : 列舉
```java=
public class Main{
	public static final int COLOR_RED = 0;
	public static final int COLOR_BLUE = 1;
	public static final int COLOR_GREEN = 2;
	
	enum Color{ //使用列舉 代替 同類的 多個常數 
		RED,
		BLUE,
		GREEN;
	}
	public static void main(String[] args){
		System.out.println(Color.BLUE);//會印出BLUE
	}
}
```
使用enum 若只有兩種 與boolean類似，但超過兩種 若使用int 則需要判定範圍，
且數值並不重要，直接使用名稱進行判定即可，
```java=
public class Student{
	private Sex sex
	public enum Sex{
		MALE("男"),// = 
		FEMALE("女");
		String value; //屬性
		Sex(String value){ // 此列舉物件的建構子
			this.value = value; 	
		}
		public string getValue(){ //此列舉物件的方法
			return this.value;
		}
	}
	public sort(int[] arr,Compare compare){ //限定輸入類型
		if (compare == Compare.MAX){
			//...大往小排序
		} else {
			//...小往大排序
		}
	}
	
	puvlic setSex(){
		
	}
}
```
```java=
	public void main(String[] args){
		Student s = new Student();
		s.setSex(Student.Sex.MALE); //在學生類別，設定MALE類別 設定到該學生資訊
		System.out.print(s.sex.getValue()); //s.sex = s.Sex.Male
		//印出 (s學生.sex(Sex列舉.值(MALE)).取值方法回傳值)，
		Ststem.out.print(Student.Sex.MALE.getValue());
		//印出Student類別內.Sex.MALE的getValuec)值
		Ststem.out.print(Student.Sex.FEMALE.getValue());
	}
```
