# method 即C的函數 - 靜態方法有6種 - 只能讀取同樣是靜態的屬性 - 靜態:程式運行才載入 - 一般有6種 - 6種 - 無傳入,無回傳 - 用於 - 列印 - 內部運算 - 加上屬性進行運算 - 屬性:全域的(寫在method外) ```java= x=10 public void method01() { System.out.println(x); } ``` - 有傳入,無回傳 - 可傳入多個,傳入陣列,甚至傳入class ```java= public void method02(int a,int b) { if(a==0&&b==0) { System.out.println("給我一個數字"); }else { System.out.println(a+b); } } ``` - 無傳入,有回傳 ```java= ...int method01(){ int y=1; int z=2; return y+z; //將結果返回 } ``` 回傳值為某型態就用那個型態接值 ```java= int c=x.method03();//在其他程式中調用 也可以用來運算(method相加) ``` - 有傳入,有回傳 建立lib比較常用 ```java= ...int method01(int x,int y){ return x+y;//有回傳 } ``` 調用: ```java= int z=x.method04(99,97);//用對應型態接 ...println("z"); ``` - [Java Bean](https://hackmd.io/@x200706/rJ8gFcGo9) - 可變參數 是一個無限迴圈 ```java= public void method05(int... c){ //這邊...是真的這樣寫,不是省略 } ``` 備註:第二個參數得在前面 更詳細的寫法範例: ```java= public void method05(int...c) { int total=0; for(int y:c) { total+=y; } System.out.println(total); } ``` 在其他檔案調用: ```java= //調用可變參數 Demo01 d2 = new Demo01(); d2.method05(1,2,3); ``` ## 建立實體&其他 在原本的程式中: ```java= ...main(...){ Demo01 hi=new Demo01(); hi.method01(); } ``` *** - 不同package要import另一個package的完整路徑 在不同package下的程式中: ```java= import tw.com.xxx.code01.*; //IDE會自己補上.* //如果是tw.com.xxx.code01.Demo01只能用Demo01的,要用其他的要自己一個個import(效能考量) ... ... ...main(){ Demo01 d1=new Demo01(); //要用其他檔案的標題;每使用一次new會在Heap中再切一塊記憶體 d1.method01(); } ``` - call by value - 相對是參考位置 *** ## 如何簡化程式碼 ```java= //簡化前 .......printlin(""+x); .......printlin(""+x); .......printlin(""+x); //簡化後 String show=null; show=""+x; Syso...println(show); ```