Java 如何将另一个类中的方法调用给另一个类并将其传递给main

Java 如何将另一个类中的方法调用给另一个类并将其传递给main,java,Java,如何将另一个类中的方法调用给另一个类并将其传递给主类 我有一个Class1.java类,看起来像这样 public class Class1{ public void callMe() { System.out.println("Menambah tabel mahasiswa"); } } public class Class2 { private Class1 class1; //getset generated by netbean

如何将另一个类中的方法调用给另一个类并将其传递给主类

我有一个Class1.java类,看起来像这样

public class Class1{

    public void callMe() {
        System.out.println("Menambah tabel mahasiswa");
    }

}
public class Class2 {

    private Class1 class1;

    //getset generated by netbeans, skipped

    public void justCallMe(){
        class1.callMe();
    }
}
    Class2 classy = new Class2();
    classy.justCallMe();
然后在名为
Class2.java
的文件中创建另一个名为
Class2
的类,如下所示

public class Class1{

    public void callMe() {
        System.out.println("Menambah tabel mahasiswa");
    }

}
public class Class2 {

    private Class1 class1;

    //getset generated by netbeans, skipped

    public void justCallMe(){
        class1.callMe();
    }
}
    Class2 classy = new Class2();
    classy.justCallMe();
我想在主类中使用名为
justCallMe()
的class2方法,如下所示

public class Class1{

    public void callMe() {
        System.out.println("Menambah tabel mahasiswa");
    }

}
public class Class2 {

    private Class1 class1;

    //getset generated by netbeans, skipped

    public void justCallMe(){
        class1.callMe();
    }
}
    Class2 classy = new Class2();
    classy.justCallMe();
但它给了我错误“java.lang.NullPointerException”
我认为这是由于错误地将方法从一个类传递到另一个类和main,这是因为我尝试调用
System.out.println(“test”)
;在
Class2
中,它起作用了

您的代码有几处错误

首先,

Class2 classy = new classy();
应该是

Class2 classy = new Class2();
因为您正在创建
Class2

其次,在构造函数中,您需要初始化它的
Class1
成员,因此在
Class2
中,您需要一个构造函数来为您进行初始化

public Class2() {
   class1 = new Class1();
}
您收到的
NullPointerException
可能是因为在实际代码中您确实有
Class2 classy=new Class2()但未初始化其
class1
成员

您应该首先“新建”您的类

Private Class1 class1 = new Class1();

您的代码包含许多错误。要更好地理解,请参阅以下源代码

首先,创建一个子类

class subclass {
         //Create a method to be called .Here the name is used as Meth

         public void Meth(){
         //Do some work here
         }
然后,创建一个包含main方法的超类

    class superclass {
           public static void main(String ar[]){
           //Create an object of sub class
           subclass subc = new subclass();
           //To call function to execute its task
           subc.Meth();
}

如果子类在另一个包中,则导入该包的该类。

哦,我的错误,键入错误,来自@Benjamin Gruenbaum的更正,让我先试试Hi,我想知道你认为你的答案比我5分钟前的答案有什么优势?你的答案更好,因为它不会在不需要的时候初始化类。这就是重点,多亏了你们,你们两个都有一个很好的答案:)