java中如何用静态方法访问非静态变量

[复制链接]
查看11 | 回复5 | 2010-4-20 00:15:15 | 显示全部楼层 |阅读模式
静态方法访问非静态变量可以,用this.变量名。这是在同一个类中,如果是不同类,那么是 类名.变量名 访问
回复

使用道具 举报

千问 | 2010-4-20 00:15:15 | 显示全部楼层
我想你应该是知道静态方法只可以调用静态变量和静态方法的对吧,既然这样,是不可能在这个方法中通过任何方法实现对非静态变量的访问吧。
回复

使用道具 举报

千问 | 2010-4-20 00:15:15 | 显示全部楼层
静态方法是不能访问非静态变量的静态方法是类加载进来的时候就开始初始化了,但非静态的变量只能通过 new 来初始化new 初始化对象,类先加载后通过 new 来初始化,所以你的问题不可能实现
回复

使用道具 举报

千问 | 2010-4-20 00:15:15 | 显示全部楼层
楼上正解,你所说的实现不了....只能是非静态方法调用非静态变量,然后在静态方法里new一个对象调用此非静态方法。创建非静态方法所在类的实例即可在静态方法中调用非静态的变量
回复

使用道具 举报

千问 | 2010-4-20 00:15:15 | 显示全部楼层
class A{int a;static{
System.out.println(a);//这里编译错误
System.out.println( new A().a);//这里就可以了
}}
回复

使用道具 举报

千问 | 2010-4-20 00:15:15 | 显示全部楼层
在静态方法里new一个该类的对像就可以了。
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行