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

如题所述

静态方法是不能访问非静态变量的

静态方法是类加载进来的时候就开始初始化了,但非静态的变量只能通过 new 来初始化

new 初始化对象,类先加载后通过 new 来初始化,所以你的问题不可能实现
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-04-20
在静态方法里new 一个从属于非静态变量的类,在用new 的对象.非静态变量,那个非静态变量不能是private的哦
第2个回答  2010-04-29
楼上正解,你所说的实现不了....只能是非静态方法调用非静态变量,然后在静态方法里new一个对象调用此非静态方法。
第3个回答  2010-05-06
创建非静态方法所在类的实例即可在静态方法中调用非静态的变量
第4个回答  2010-04-20
静态方法访问非静态变量可以,用this.变量名。这是在同一个类中,
如果是不同类,那么是 类名.变量名 访问

JAVA中 在static方法内部能否调用非静态方法
可以在调用之前实例化非静态方法所在的类,再用类点方法来调用。例:非静态方法是className类里面的method();className cn=new className();cn.method();这样就可以了。

java为什么不能在静态方法中使用非静态变量
静态方法是不用创建对象就直接调用,所以在静态方法中没有this指针,不能访问所属类的非静态变量和方法,只能访问方法体内的局部变量、自己的参数和静态变量,而非静态变量是给一个类的实例化对象调用的,一个是类调用,一个是类对象调用,所有在静态方法中是不能使用非静态变量的。实例:上面出错的原因...

面试官:为什么java中静态方法不能调用非静态方法和变量?
探讨Java中静态方法调用非静态方法与变量的限制,首先需要明确Java的面向对象编程基础。在Java中,静态方法与非静态方法有着本质的区别。静态方法属于类,而非实例,因此它们不接收隐含的"this"参数。非静态方法则属于类的实例,它们默认接受一个隐含的"this"参数,该参数指向调用方法的对象实例。编译器在处...

Java中 无法从静态上下文引用非静态方法
静态方法中无法直接调用非静态方法的。 你可以先new出来circle 对象。class hauptprogramm { public static void main ( String [] args){ circle kr = new circle(); circle.readCircle(); System.out.println( kr ); }}还有 记得以后类名都要大写 ...

...出现了问题:无法从静态上下文中引用非静态变量subName和fpi
因此在一个静态的方法中是不能直接访问非 static 变量,我们必须知道你想访问的是哪个对象实例的状态,也就是说我们必须用 myInstance.fieldA 这种方法来访问,这也要求我们手上必须有一个对象实例。所以你的代码中:Sub sub=new Sub();System.out.println("Sub.subName= "+Sub.subName);这个 Sub...

JAVA无法从静态上下文中引用非静态 变量 this
内部类是动态的,也就是开头以public class开头。而主程序是public static class main。在Java中,类中的静态方法不能直接调用动态方法。只有将某个内部类修饰为静态类,然后才能够在静态类中调用该类的成员变量与成员方法。所以在不做其他变动的情况下,最简单的解决办法是将public class改为public ...

java中无法从静态上下文中引用非静态 变量 i while(i>0)
)方法是静态方法,而你想去引用外面定义的非静态变量(i和j)当然就不行了,所以可以将i和j改成静态的或着将i和j的定义方到main方法里面去。1、static int i,j;2、main(){ int i,j;} 总结:静态方法只能引用外部的静态方法和静态变量,非静态方法不管是静态还是非静态的都可以引用。

【新面试题】Java中的静态方法为什么不能调用非静态方法
首先,你可能会说静态方法是属于类的,而非静态方法属于实例对象。这没错,但答案其实只差一句话。JVM是如何调用Java方法的呢?构建运行环境,调用Java方法。构建运行环境会多做一步给this指针赋值,这是关键。非静态方法会,静态方法不会。如果你能理解这段话,并从我手写的JVM中找到对应的代码,你就...

java 无法从静态上下文中引用非静态
public size(int a,int b){ this.a = a; this.b =b ;}然后在Main方法修改为: public static void main(String[] args) throws FileNotFoundException, IOException {File picture = new File("C:\/Tomcat 6.0\/webapps\/jspwu\/image\/3.jpg");BufferedImage sourceImg =ImageIO.rea...

java问题,无法从静态上下文中引用非静态变量this
不能在一个类的main中直接创建其内部类,内部类的创建需要实例化外部类才能使用,而static方法是不能在未实例化外部类(homework8)的情况下使用内部类(CCircle),可以这样修改:public class homework8 { public static void main(String[] args) { CCircle cir=new CCircle(2.0);System.out.println...

相似回答