java中静态方法中不能调用非静态方法

package demo1;

public class Test01 {
public static void main(String[] args) {
A a = new A();
a.method();//这不是在静态方法调用非静态方法么?
}
}
class A{
public void method() {
System.out.println("a");
}
}
上面的代码不是可以吗?

静态static方法中不能调用非静态non-static方法是值得是不能直接调用non-static方法
public class Test01 {
public static void main(String[] args) {
hello();
}
public void hello()
{
}
}
是指的这种
在静态的main方法中,直接调用了本类的非静态方法hello(),这种是不允许的
温馨提示:内容为网友见解,仅供参考
无其他回答

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

面试官:为什么java中静态方法不能调用非静态方法和变量?
在尝试调用非静态方法时,编译器会报错,因为静态方法中不存在指向特定对象实例的"this"参数,导致编译失败。同样地,尝试在静态方法中直接访问非静态变量,也会遇到编译错误,因为静态方法并不关联特定的实例,无法直接访问实例级别的非静态变量。为验证此规则,可以使用高版本JDK编写代码,明确指定静态方法中...

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

静态方法中不能有非静态方法?
是的,同时,静态方法也不能调用非静态方法的。因为:1、静态方法的内存分配时间与实例方法不同,当程序开始运行时,静态方法已经在内存中被分配了空间,有了入口地址,所以可以通过"类名.方法名"直接调用。2、实例方法只有在创建了该类的对象以后才分配内存。也就是说程序开始运行后静态方法已经有了入口地...

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

静态方法的内部可以不可以调用非静态的方法
当然不可以,静态方法会在加载类的时候首先被加载,然后是构造函数和非静态方法,它们的生命周期不同,所以静态方法无法调用非静态

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

“无法从静态上下文中引用非静态方法”这个问题怎么解决?
静态方法中不能直接调用非静态方法。因为非静态方法不是独立存在的,它是依附于对象存在——即只有申明了对象,才能通过对象调用。而静态方法则可以直接通过类名调用,而不需要申明对象。因此直接引用非静态方法就会出错。比如常见的main方法都是静态的,必须由static修饰,因此在main方法里调用类的其他非静态...

在静态方法中不能调用非静态的方法和引用非静态的成员变量.反之,则...
非静态方法(也就是类的方法了~)可以调用非静态方法和成员变量~静态方法其实就是一段已经写到内存的程序段(就是跟全局变量一个概念了),但是非静态方法和非静态成员变量在类未实例化之前是不会写到内存的,也就是不存在了~那么程序怎么可以调用不存在的东西呢~

错误: 无法从静态上下文中引用非静态方法
静态方法可以通过所在类直接调用而不需要实例化对象,非静态成员变量则是一个对象的属性。它只有在有实例化对象时才存在的,所以在静态方法中是不可以调用静态变量。如果发生调用,则编译器会报出如上的错误。例如:由于main方法其实是一个静态方法,而maxProfit方法并没有实例化,所以会报错 错误: 无法从...

相似回答