Java static方法里为什么不能使用this关键字

[复制链接]
查看11 | 回复4 | 2018-1-4 23:35:41 | 显示全部楼层 |阅读模式
如题

回复

使用道具 举报

千问 | 2018-1-4 23:35:41 | 显示全部楼层
java中的static是类区域,换句话说就是所有该类的所有实例共享的区域,而this指的是当前的类实例索引。在类区域中是无法确定某个类实例的。eg。class A{private static Stirng Static = "123";}这个字符串Static所有A的实例都可以访问到。反过来,class A{public static void fun(){this
// 这里不能使用因为 static区域内不能确定是某个特定的A的实例}}
回复

使用道具 举报

千问 | 2018-1-4 23:35:41 | 显示全部楼层
Static方法是类方法,先于任何的实例(对象)存在。即Static方法在类加载时就已经存在了,但是对象是在创建时才在内存中生成。而this指代的是当前的对象。
回复

使用道具 举报

千问 | 2018-1-4 23:35:41 | 显示全部楼层
this表示当前类的对象,由static修饰的方法是由类直接调用,不需要创建对象,所以在static里不能用this.
回复

使用道具 举报

千问 | 2018-1-4 23:35:41 | 显示全部楼层
静态方法应该就是不需要定义类的对象就可以直接使用的,而this表示调用这个方法的对象,两个同时使用就矛盾了,静态方法被调用的时候是不存在累的对象的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行