Method
○ 為一段獨立完整的程式碼
優點
● 避免撰寫重複的程式碼
● 將程式碼分為n個方法,可以選擇簡單的程式碼先寫在去run,較利於除錯
● 需要時在呼叫即可 (分為 靜態 & 動態)
● 易於維護和修改
當所有敘述皆寫於main中,造成大量程式碼集中在內,難以維護
傳回值型別 (傳回值最多1個 or 0個)
○ 有傳回值
● 傳回值型別必須與方法定義的型別相同
● 傳回值可以是:常數、變數or 運算式
● 需有return敘述
○ 無傳回值
● 因為無傳回值,所以一般不寫return
● 如果有寫return直接加分號;
● 通常配合" if " 使用
=============================================================================================
◎ 區域變數 位於 "方法"和"建構子" 之中,區域變數存在於方法之中,所以一旦方法執行完就會將區域變數
歸還給記憶體空間,故方法內的區域變數不能加 static 。
◎ 寫在建構子內的方法通常不具備傳回值的作用,就好比是 void 寫法
所以在建構子和void 寫法中加上return; 基本上是用來中斷後續程式碼執行。
=============================================================================================
※ 以小狗為例
小狗的屬性:名字name、種類type、年齡age
=============================================================================================
+++ 靜態 & 動態 Method+++
class statement{
static String name (){ // 靜態的方法
return "Ponbi";
}
String type(){ // 動態的方法
return "Mix";
}
}
public class staticMovement {
public static void main (String [] args){
System.out.println(statement.name()); // 靜態的方法,一建立時就存在,所以可以直接呼叫
statement one = new statement(); // 動態的方法需要先new一個物件出來
System.out.println(one.type());
}
}
=============================================================================================
○ 有傳回值
+++Method+++ (算數)
public class Count {
static int sum(int x, int y){ // 收到兩個參數值
int z = x + y; // 定義一個變數來接算樹結果
return z; // 並將值回傳到main底下
}
public static void main (String [] args){
int redapple =5;
int greenapple =7;
int count =0;
count = sum(redapple,greenapple);
// 加總數量並傳兩個參數,找到上面的方法(sum)去做計算
System.out.println("總共有 "+ count + " 顆蘋果");
}
}
○ 無傳回值
+++簡易版Method+++
public class Puppy {
public static void Name(){ //建構子內可以放static+方法
System.out.println("Ponpon");
}
public static void main(String [] args){
System.out.print("My puppy name is ");
Name(); // 呼叫方法Name()
}
}
=============================================================================================
○ 無傳回值
+++合體版Method+++
public class Puppy {
public static void Name(){ //建構子內可以放static+方法
System.out.println("PonBi");
}
public static String Name="Ponpon";
public static String Type="Mix";
public static int Age = 5;
public static void main(String [] args){
System.out.print("My puppy name is ");
Name(); // 可以直接呼叫
Puppy.Name(); // 也可以使用 取得類別方法
String dogName = Puppy.Name; //取得類別屬性 = 類別名稱 . 類別屬性
String dogType = Puppy.Type;
int dogAge = Puppy.Age;
System.out.print("I have a "+ Type + " dog, her name is " +Name+ ". she is "+Age+ " years old." );
}
}
○ 無傳回值
+++抽離版Method+++ (將method 與 main 分開,method不變)
// 將method 與 main 分開時要先import,import 後面加上要到何處尋找你要的套件
import static blog.Puppy.Age;
import static blog.Puppy.Name;
import static blog.Puppy.Type;
public class main{
public static void main(String [] args){
System.out.print("My puppy name is ");
Name(); // 可以直接呼叫
Puppy.Name(); // 也可以使用 取得類別方法
String dogName = Puppy.Name; //取得類別屬性 = 類別名稱 . 類別屬性
String dogType = Puppy.Type;
int dogAge = Puppy.Age;
System.out.print("I have a "+ Type + " dog, her name is " +Name+ ". she is "+Age+ " years old." );
}
}
沒有留言:
張貼留言