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地址傳遞:在運行函數時,傳給形參的是實參的地址,那麼形參被批改時,實參也會發生改變。