《同一個類中不同方法之間的調用相關問題(省略的類名或者this)》


 1 //同一個類中不同方法之間的調用相關問題(省略的類名或者this)
 2 class A
 3 {
 4     public void B()
 5     {
 6         System.out.println("b方法運行");
 7     }
 8     public void C()
 9     {
10         B();//下面引用《瘋狂Java講義》中的一段話。
11         /*
12         因為Java里的方法不能獨立存在,它必須屬於一個類或一個對象,
13         因此方法也不能直接像函數那樣被獨立執行,執行方法時必須使用
14         類或對象作為調用者,即所有的方法都必須使用“類.方法”或“對象.方法”
15         的形式來調用。這里可能產生一個問題:同一個類里不同方法之間相互調用
16         時,不就可以直接調用嗎?這里需要指出的是:同一個類的一個方法調用另一個
17         方法時,如果被調用方法是普通方法,則默認使用this作為調用者;如果被調用
18         方法時靜態方法,則默認使用類作為調用者。也就是說表面上看起來某些方法可以
19         被獨立執行,但實際上還是使用this或類來作為調用者。
20 
21         所以上面這一句 B(); 其實是省略了this的,完整的語句應該是this.B();
22         */
23         System.out.println("c方法運行");
24     }
25 }
26 public class TestDiaoYong
27 {
28     public static void main(String[] args) 
29     {
30         //創建A類的對象a.
31         A a = new A();
32         //調用C方法。
33         a.C();
34     }
35 }
36 
37 /*
38 class A
39 {
40     public static void B()
41     {
42         System.out.println("b方法運行");
43     }
44     public static void C()
45     {
46         B();
47         //下面引用《瘋狂Java講義》中的一段話。
48 
49         因為Java里的方法不能獨立存在,它必須屬於一個類或一個對象,
50         因此方法也不能直接像函數那樣被獨立執行,執行方法時必須使用
51         類或對象作為調用者,即所有的方法都必須使用“類.方法”或“對象.方法”
52         的形式來調用。這里可能產生一個問題:同一個類里不同方法之間相互調用
53         時,不就可以直接調用嗎?這里需要指出的是:同一個類的一個方法調用另一個
54         方法時,如果被調用方法是普通方法,則默認使用this作為調用者;如果被調用
55         方法時靜態方法,則默認使用類作為調用者。也就是說表面上看起來某些方法可以
56         被獨立執行,但實際上還是使用this或類來作為調用者。
57 
58         所以上面這一句 B(); 其實是省略了類名A的,完整的語句應該是A.B();
59     }
60 }
61 public class TestDiaoYong
62 {
63     public static void main(String[] args) 
64     {
65         //A a = new A();
66         //a.C();
67         //因為C方法是靜態的,所以可以直接使用類名調用。
68         A.C();
69     }
70 }
71 */

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM