Java 如何将另一个类中的方法调用给另一个类并将其传递给main
如何将另一个类中的方法调用给另一个类并将其传递给主类 我有一个Class1.java类,看起来像这样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
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分钟前的答案有什么优势?你的答案更好,因为它不会在不需要的时候初始化类。这就是重点,多亏了你们,你们两个都有一个很好的答案:)