Java - 12 方法
public class main{
public static void main(String[] args){
Person pers = new Person();
pers.speak();
pers.cal(100);
int returnRes = pers.getSum(2, 3);
}
}
class Person{
String name;
int age;
public void speak(){ // public: 方法公開
System.out.println("I am");
}
public void cal(int n){ // 形參
int res = 0;
for(int i = 1; i<= n; i++){
res += i;
}
System.out.println(res);
}
public int getSum(int num1, int num2){
int res = num1 + num2;
return res; // 返回值 int
}
}
記憶體
-
當程式執行到方法時就會開闢一個獨立的空間(棧空間),執行完畢後釋放棧空間
-
當main方法(棧)執行完畢,整個程式退出
方法的用處
-
提高程式碼複用性
-
將實現的細節封裝,供其他使用者呼叫
方法使用細節
- 一個方法最多隻能有一個返回值(返回多個資料:使用陣列)
public int[] getSumAndSub(int n1, int n2){
int[] resArr = new int[2];
resArr[0] = n1 + n2;
resArr[1] = n1 - n2;
return resArr;
}
- 如果方法是vvoid,沒有return語句,或者只寫return
- 方法的呼叫
- 同一個類直接呼叫
class A{
public void print(int n){
System.out.println("Hello, "n);
}
publiv void sayOk(){
print(10); // *
}
}
- 跨類的方法呼叫需要透過物件名
class A{
public void print(int n){
System.out.println("Hello, "n);
}
public void sayOk(){
print(10);
}
// *
public void useB(){
B b = new B();
b.Hi();
}
}
class B{
public void Hi(){
System.out.println("Hello?");
}
}
方法傳參機制
基本資料型別產地的是值(值複製),形參的任何改變不影響實參
引用型別傳遞的是地址(也是值但值是地址),可以透過形參影響實參
透過hashcode看是否是同一物件
方法的編寫思路
- 方法的返回型別
- 方法的名字
- 方法的形參
- 方法體