如何将另一个类中的方法调用到其他类并将其传递给主类
我有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
,它有效
答案 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();
}
如果子类在另一个包中,则导入该包的那个类。