A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© as9600 中级黑马   /  2016-3-18 23:13  /  430 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在类中非静态方法中可以用this代表当前对象的引用,而静态方法不能使用是不是说非静态方法必须对象调用。

5 个回复

倒序浏览
静态方法可以两种调用方式,创建对象和直接用类名.方法名调用,非静态的应该只能用创建对象调用吧
回复 使用道具 举报
不是,因为静态方法会优先于对象存在于方法区中,所以如果静态方法中如果有非静态的成员会导致编译失败
回复 使用道具 举报
this指向的是当前对象的引用(堆中),静态方法存在于方法区,是两个完全不同的区域,对此java设计的调用模式也不同
回复 使用道具 举报
因为静态方法随着类的加载而加载,而this是代表当前对象的引用,那就是说静态方法在对象的前面,如果没有new对象,静态方法怎么去引用对象,这是一个先后问题。分析内存图,你就明了了。
回复 使用道具 举报
静态成员变量和静态方法先于对象创建而存在
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马