《同一个类中不同方法之间的调用相关问题(省略的类名或者this)》
2016-04-29 13:03
393 查看
//同一个类中不同方法之间的调用相关问题(省略的类名或者this) class A { public void B() { System.out.println("b方法运行"); } public void C() { B();//下面引用《疯狂Java讲义》中的一段话。 /* 因为Java里的方法不能独立存在,它必须属于一个类或一个对象, 因此方法也不能直接像函数那样被独立执行,执行方法时必须使用 类或对象作为调用者,即所有的方法都必须使用“类.方法”或“对象.方法” 的形式来调用。这里可能产生一个问题:同一个类里不同方法之间相互调用 时,不就可以直接调用吗?这里需要指出的是:同一个类的一个方法调用另一个 方法时,如果被调用方法是普通方法,则默认使用this作为调用者;如果被调用 方法时静态方法,则默认使用类作为调用者。也就是说表面上看起来某些方法可以 被独立执行,但实际上还是使用this或类来作为调用者。 所以上面这一句 B(); 其实是省略了this的,完整的语句应该是this.B(); */ System.out.println("c方法运行"); } } public class TestDiaoYong { public static void main(String[] args) { //创建A类的对象a. A a = new A(); //调用C方法。 a.C(); } } /* class A { public static void B() { System.out.println("b方法运行"); } public static void C() { B(); //下面引用《疯狂Java讲义》中的一段话。 因为Java里的方法不能独立存在,它必须属于一个类或一个对象, 因此方法也不能直接像函数那样被独立执行,执行方法时必须使用 类或对象作为调用者,即所有的方法都必须使用“类.方法”或“对象.方法” 的形式来调用。这里可能产生一个问题:同一个类里不同方法之间相互调用 时,不就可以直接调用吗?这里需要指出的是:同一个类的一个方法调用另一个 方法时,如果被调用方法是普通方法,则默认使用this作为调用者;如果被调用 方法时静态方法,则默认使用类作为调用者。也就是说表面上看起来某些方法可以 被独立执行,但实际上还是使用this或类来作为调用者。 所以上面这一句 B(); 其实是省略了类名A的,完整的语句应该是A.B(); } } public class TestDiaoYong { public static void main(String[] args) { //A a = new A(); //a.C(); //因为C方法是静态的,所以可以直接使用类名调用。 A.C(); } } */
相关文章推荐
- Codeforces Round #312 (Div. 2)-A Simple Task
- 新手学习编程的最佳方式是什么?
- 《使用this作为返回值的相关问题》
- 《静态与非静态之间的调用问题》
- python中使用字符串前面加r
- BZOJ4540 [Hnoi2016]序列
- OpenCV系列(三):Mat详解
- Unity 编辑器列表控件
- 获取设备信息
- 【Raspberry Pi 3试用体验】+ 使用owncloud云服务
- c++编程 文件系统
- ASP.NET 状态管理(视图状态 ViewState)
- stitching detail输出的dot图含义
- noj1009
- 个人开发者app消息推送简单实现思路
- 斯坦福第十九课:总结(Conclusion)
- AndroidStudio碰到的各种问题
- winsocket之TCP/UDP编程
- jquery遍历数组与筛选数组的方法
- MFC实现文件复制删除功能