Java 在第一个类中访问另一个类的方法,而不使用main方法或任何其他方法(直接在类内部)
我只是好奇,如果我们在方法中创建一个对象并调用类a的方法,那么下面的代码为什么不起作用呢Java 在第一个类中访问另一个类的方法,而不使用main方法或任何其他方法(直接在类内部),java,Java,我只是好奇,如果我们在方法中创建一个对象并调用类a的方法,那么下面的代码为什么不起作用呢 class Main { A a=new A(); a.method(); public static void main(String[] args) { } } class A{ public void method(){ } } 静态方法保存在Java的“堆栈内存”中,而其他方法将存储在“堆内
class Main {
A a=new A();
a.method();
public static void main(String[] args) {
}
}
class A{
public void method(){
}
}
静态方法保存在Java的“堆栈内存”中,而其他方法将存储在“堆内存”中。 在开始运行java代码时,它首先引用静态内存。由于.method()位于“堆内存”中,因此无法解析 因此,请运行此命令以解决此问题:
class Main {
public static void main(String[] args) {
A a=new A();
a.method();
}
}
class A{
public void method(){
}
}
如果一个类中有一个main方法,并且它是您想要运行的类,那么java总是查看
main
方法内部以开始执行
比如说这个案例,
public class Test {
public static void main(String[] args) {
A a = new A();
a.method();
}
public static void method() {
System.out.println("method() in class Test");
}
}
class A {
public static void main(String[] args) {
Test.method();
}
public void method() {
System.out.println("method() in class A");
}
}
若我运行Test.java,那个么测试类的main方法将首先执行,反之亦然
现在有一种方法可以让java在查看类的主要方法之前运行代码。看看下面的代码
public class Test {
static {
A a = new A();
a.method();
}
public static void main(String[] args) {
System.out.println("main() of Test executing");
}
}
class A {
public void method() {
System.out.println("method() in class A");
}
}
在类中使用static{…}
使得首先在静态块中执行代码,然后在主块中执行代码。它被称为静态初始值设定项是java类中的一个静态{}代码块,并且
在调用构造函数或main方法之前只运行一次
它是任何java类中的一个静态代码块{…},在调用该类时由虚拟机执行
- 不支持返回语句
- 不支持任何参数。 -不支持此选项或超级选项