如何将另一个类中的Method调用到另一个类并将其传递给main

时间:2013-03-16 02:05:37

标签: java

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

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

public class Class1{

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

}

然后我在名为Class2的文件中创建另一个名为Class2.java的类,看起来像这样

public class Class2 {

    private Class1 class1;

    //getset generated by netbeans, skipped

    public void justCallMe(){
        class1.callMe();
    }
}

我希望在主类中使用名为justCallMe()的class2方法,看起来像这样

    Class2 classy = new Class2();
    classy.justCallMe();

但它给我错误“java.lang.NullPointerException” 我认为这是由于从类到类和主要的错误传递方法导致我尝试调用System.out.println("test");在Class2,它有效

4 个答案:

答案 0 :(得分:2)

您的代码有几个问题。

首先,

Class2 classy = new classy();

应该是

Class2 classy = new Class2();

由于您正在创建Class2

的实例

其次,在构造函数中,您需要初始化其Class1成员,因此在Class2内,您需要一个能够为您执行此操作的构造函数

public Class2() {
   class1 = new Class1();
}

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

答案 1 :(得分:0)

您的错误在这里:

Class2 classy = new **classy**();

应该是:

Class2 classy = new **Class2**();

是的,也在class2中初始化class1。

答案 2 :(得分:0)

你应该先“新”你的班级。

Private Class1 class1 = new Class1();

答案 3 :(得分:0)

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

首先,创建一个子类

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();
}

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