JAVA 的办法调用以及传参
静態办法:有 static 润饰的办法。
非静態办法:沒有 static 润饰的办法。
办法調用:
一静態办法調用 静態办法 / 屬性
1)一個類:间接調用。
2)不同類 / 不同文件:
a: 類名. 屬性名 / 办法名
b: 實例化對象。類名 對象名 = new 類名();
對象名. 屬性 / 办法
二静態調用 非静態办法 / 屬性
都先實例化對象。類名 對象名 = new 類名();
對象名. 屬性名 / 办法名
一非静態調用静態办法
二非静態調用非静態办法
1)同一類中:间接調用
2)不同類中:a: 類名 . 办法(只能是静態屬性)
b: 實例化對象
總結:可间接調用的三種情況
1. 一個類中 静態調静態。
- 一個類中 非静態調用 静態 / 非静態。
- 静態 類名. 静態屬性 / 静態办法。
復製代码
public class Demo03{
int age;
public static void main(String []args){System.out.println(Demo04.name);// 静態調用静態 1
Demo04.eat();
Demo04 d = new Demo04();// 静態調用静態 2
System.out.println(d.name);
d.eat();
Demo03 d1 = new Demo03();// 静態調用非静態
d1.method();
System.out.println(d1.age);
}
public void method(){System.out.println("first method");
}
}
復製代码
復製代码
1 public class Demo04{
2 static String name = “ 張三 ”;
3
4 public static void eat(){
5 System.out.println(“ 肉夾馍 ”);
6 }
7 }
復製代码
復製代码
1 public class Demo05{
2 static int age;
3 String name;
4 public static void main(String []args){
5
6 Demo05 d1 = new Demo05();// 静態調非静態 實例化
7 d1.method();
8 }
9
10 public void method(){
11 System.out.println(age); // 非静態調静態
12 method1(); // 非静態調静態
13 System.out.println(name);// 非静態調非静態
14 method2(); // 非静態調非静態
15 System.out.println(“first method”);
16 }
17 public static void method1(){
18 System.out.println(“second method”);
19 }
20 public void method2(){
21 System.out.println(“third method”);
22 }
23 }
復製代码
復製代码
1 public class Demo06{
2
3 public static void main(String []args){
4
5 Demo06 d1 = new Demo06(); // 静態調非静態 實例化
6 d1.method();
7 }
8 public void method(){
9 System.out.println(Person.name); // 非静態調静態
10 Person.method1(); // 非静態調静態
11 Person p = new Person(); // 非静態調非静態 實例化
12 p.method2();
13 System.out.println(“first method”);
14 }
15 }
16 class Person{
17 static String name;
18 int age;
19 public static void method1(){
20 System.out.println(“second method”);
21 }
22 public void method2(){
23 System.out.println(“third method”);
24 }
25 }
復製代码
復製代码
1 public class Demo09{
2 // 實參到形參是單向的,所以在傳遞過程中形參值發生改變不會影響實參
3 public static void main(String []args){
4 int i =1;
5 String s = “ww”;
6 Demo09 d = new Demo09();
7 d.method(i,s);
8 System.out.println(i);
9 System.out.println(s);
10 }
11 public void method(int i,String s){
12 i = 100;
13 s = “asd”;
14 }
15 public void method1
16 }
復製代码
復製代码
public class ChuanDiZhi{
int x = 3;
public static void main(String args[]){ChuanDiZhi p = new ChuanDiZhi();
p.x = 9;
show(p);
System.out.println(p.x);
}
public static void show(ChuanDiZhi p){p.x = 4;}
}
復製代码
有無返回值
有 void 润饰,無返回值
int——————>return int 類型的值
string————–>return String 類型的值
數據類型 ——–>return 當前數據類型值
返回類、汇合、流等
办法的返回值類型必須和 return 之後的值數據類型一樣
办法傳遞參數
形參:模式參數,在定義办法時所攜帶的參數。
實參:實際參數,办法調用時所傳入的參數。
形參和實參的區別:
1 形參只有在被調用的時候,才分配内存單元,在調用結束時立刻开释内存單元
形參只在當前办法外部无效
2 實參能够是常量、變量、表達式、办法 等。然而在進行办法調用前,必須要有確定的值。
3 形參和實參在順序、類型、長度、必須统一。
4 實參到形參是單向的,
參數的傳值形式
1 值傳遞:在運行函數時,形參和實參在不同的内存地位之中,形參將實參的值復製一份。在函數運行結束時,形參被开释,實參的值不會發生改變。
2 地址傳遞: 在運行函數時,傳給形參的是實參的地址,那麼形參被批改時,實參也會發生改變。