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...