Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse-未定义的构造函数和方法_Java_Eclipse_Undefined_Super - Fatal编程技术网

Java Eclipse-未定义的构造函数和方法

Java Eclipse-未定义的构造函数和方法,java,eclipse,undefined,super,Java,Eclipse,Undefined,Super,错误在底部的主类中,我在代码中详细介绍了它们以及它们的错误消息。我的会话构造函数中还有一个super()关键字,用于从Customer类调用方法。我只想运行我的程序,但每次我解决一个问题,另一个(或两个)的地方。请帮忙 import java.util.*; public class Main { public class Customer { public String Name = ""; public int ID = 0000; public int plansL

错误在底部的主类中,我在代码中详细介绍了它们以及它们的错误消息。我的会话构造函数中还有一个super()关键字,用于从Customer类调用方法。我只想运行我的程序,但每次我解决一个问题,另一个(或两个)的地方。请帮忙

import java.util.*;

public class Main 
{
public class Customer 
{
   public String Name = "";
   public int ID = 0000;
   public int plansLeft = 0;


   public Customer()
    {
    }

   public Customer (String n, int id, int pl) 
   {
      Name = n;
      ID = id;
      plansLeft = pl;
   }
   public void setName(String n)
   {
      Name = n;  
   }
   public void setidnumber(int id)
   {
       ID = id;
   } 
   public void setPlansLeft(int pl)
   {
       plansLeft = pl;
   }


   public String getName()
   {
      return Name;
   }
   public int getIDNumber()
   {
      return ID;
   }
   public int getPlansLeft()
   {
      return plansLeft;
   }
}


public class Session extends Customer 
{   
    public int sessionIDNumber = 0000;
    public int spotsLeft = 0;

    public Session()
    {
    }

    public Session (String Name, int ID, int plansLeft, int sID, int sl) 
       {
        super(Name, ID, plansLeft); // <----- perhaps an issue here?
        sessionIDNumber = sID;
        spotsLeft = sl;
       }


    public int getsessionIDNumber() {
        return sessionIDNumber;
    }

    public int getspotsLeft() {
        return spotsLeft;
    }

    public void setsessionIDNumber(int sessionIDNumber) {
        this.sessionIDNumber = sessionIDNumber;
    }

    public void setspotsLeft(int sl) {
        this.spotsLeft = sl;
    }
}




public static void main(String[] args) 
{
    //public Customer(){}    // <----- tried using this but only adds more errors

    Customer customer = new Customer("Sarah", 12345678, 12, 0117, 0); // < ----- error is here: "The constructor Main.Customer(String, int, int, int, int) is undefined"

    System.out.println("Customer Name: " + customer.getName() + "\nCustomer ID: " + customer.getIDNumber() + "\nLessons Remaining: " + customer.getPlansLeft());
    System.out.println("\nSession ID: " + customer.getsessionIDNumber() + "\nOpen Spots Available: " + customer.getspotsLeft()); // < ------ couple more errors here: "The method getsessionIDNumber/getspotsLeft() is undefined for the type Main.Customer"
}
}
import java.util.*;
公共班机
{
公共类客户
{
公共字符串名称=”;
公共int ID=0000;
公共int plansLeft=0;
公众客户()
{
}
公共客户(字符串n,整数id,整数pl)
{
Name=n;
ID=ID;
plansLeft=pl;
}
公共void集合名(字符串n)
{
Name=n;
}
公共无效集合id号(内部id)
{
ID=ID;
} 
公共空间设置平面英尺(内部pl)
{
plansLeft=pl;
}
公共字符串getName()
{
返回名称;
}
public int getIDNumber()
{
返回ID;
}
public int getPlansLeft()
{
返回平面;
}
}
公共类会话扩展了客户
{   
public int sessiondNumber=0000;
公共int spotsLeft=0;
公开会议()
{
}
公共会话(字符串名称、int-ID、int-plansLeft、int-sID、int-sl)
{

super(Name,ID,plansLeft);//记住一件事:当您使用继承时,请始终创建子(子)类的对象。 在您的例子中,会话是子类,您在其中有五个参数,但您创建的Customer类没有五个参数

Customer customer = new Customer("Sarah", 12345678, 12, 0117, 0);
此行发出错误,因为Customer类没有五个参数

Customer customer = new Customer("Sarah", 12345678, 12, 0117, 0);
客户和会话类都存在于主类中,所以它们的对象通过主类对象进行访问

使用下面的代码而不是上面的代码-

Session session= new Main().new  Session("Sarah", 12345678, 12, 0117, 0);
当子类对象创建时,它也调用父类构造函数。 对于您的评论,请使用会话对象调用所有内容-

System.out.println("Customer Name: " + session.getName() + "\nCustomer ID: " + session.getIDNumber() + "\nLessons Remaining: " + session.getPlansLeft());
    System.out.println("\nSession ID: " + session.getsessionIDNumber() + "\nOpen Spots Available: " + session.getspotsLeft());

请记住,当您使用继承时,始终要创建子(子)类的对象。 在您的例子中,会话是子类,您在其中有五个参数,但您创建的Customer类没有五个参数

Customer customer = new Customer("Sarah", 12345678, 12, 0117, 0);
此行发出错误,因为Customer类没有五个参数

Customer customer = new Customer("Sarah", 12345678, 12, 0117, 0);
客户和会话类都存在于主类中,所以它们的对象通过主类对象进行访问

使用下面的代码而不是上面的代码-

Session session= new Main().new  Session("Sarah", 12345678, 12, 0117, 0);
当子类对象创建时,它也调用父类构造函数。 对于您的评论,请使用会话对象调用所有内容-

System.out.println("Customer Name: " + session.getName() + "\nCustomer ID: " + session.getIDNumber() + "\nLessons Remaining: " + session.getPlansLeft());
    System.out.println("\nSession ID: " + session.getsessionIDNumber() + "\nOpen Spots Available: " + session.getspotsLeft());

将Customer类定义为静态。以下是示例:-

  public class Main 
{
public static class Customer 
{
   public String Name = "";
   public int ID = 0000;
   public int plansLeft = 0;


   public Customer()
    {
    }

   public Customer (String n, int id, int pl) 
   {
      Name = n;
      ID = id;
      plansLeft = pl;
   }
   public void setName(String n)
   {
      Name = n;  
   }
   public void setidnumber(int id)
   {
       ID = id;
   } 
   public void setPlansLeft(int pl)
   {
       plansLeft = pl;
   }


   public String getName()
   {
      return Name;
   }
   public int getIDNumber()
   {
      return ID;
   }
   public int getPlansLeft()
   {
      return plansLeft;
   }
}


public class Session extends Customer 
{   
    public int sessionIDNumber = 0000;
    public int spotsLeft = 0;

    public Session()
    {
    }

    public Session (String Name, int ID, int plansLeft, int sID, int sl) 
       {
        super(Name, ID, plansLeft); // <----- perhaps an issue here?
        sessionIDNumber = sID;
        spotsLeft = sl;
       }


    public int getsessionIDNumber() {
        return sessionIDNumber;
    }

    public int getspotsLeft() {
        return spotsLeft;
    }

    public void setsessionIDNumber(int sessionIDNumber) {
        this.sessionIDNumber = sessionIDNumber;
    }

    public void setspotsLeft(int sl) {
        this.spotsLeft = sl;
    }
}




public static void main(String[] args) 
{
    //public Customer(){}    // <----- tried using this but only adds more errors

    Customer customer = new Customer("Sarah", 12345678, 12); // < ----- error is here: "The constructor Main.Customer(String, int, int, int, int) is undefined"

    System.out.println("Customer Name: " + customer.getName() + "\nCustomer ID: " + customer.getIDNumber() + "\nLessons Remaining: " + customer.getPlansLeft());
//    System.out.println("\nSession ID: " + customer.getsessionIDNumber() + "\nOpen Spots Available: " + customer.getspotsLeft()); // < ------ couple more errors here: "The method getsessionIDNumber/getspotsLeft() is undefined for the type Main.Customer"
}
}
公共类主
{
公共静态类客户
{
公共字符串名称=”;
公共int ID=0000;
公共int plansLeft=0;
公众客户()
{
}
公共客户(字符串n,整数id,整数pl)
{
Name=n;
ID=ID;
plansLeft=pl;
}
公共void集合名(字符串n)
{
Name=n;
}
公共无效集合id号(内部id)
{
ID=ID;
} 
公共空间设置平面英尺(内部pl)
{
plansLeft=pl;
}
公共字符串getName()
{
返回名称;
}
public int getIDNumber()
{
返回ID;
}
public int getPlansLeft()
{
返回平面;
}
}
公共类会话扩展了客户
{   
public int sessiondNumber=0000;
公共int spotsLeft=0;
公开会议()
{
}
公共会话(字符串名称、int-ID、int-plansLeft、int-sID、int-sl)
{

super(Name,ID,plansLeft);//将Customer类定义为static。以下是示例:-

  public class Main 
{
public static class Customer 
{
   public String Name = "";
   public int ID = 0000;
   public int plansLeft = 0;


   public Customer()
    {
    }

   public Customer (String n, int id, int pl) 
   {
      Name = n;
      ID = id;
      plansLeft = pl;
   }
   public void setName(String n)
   {
      Name = n;  
   }
   public void setidnumber(int id)
   {
       ID = id;
   } 
   public void setPlansLeft(int pl)
   {
       plansLeft = pl;
   }


   public String getName()
   {
      return Name;
   }
   public int getIDNumber()
   {
      return ID;
   }
   public int getPlansLeft()
   {
      return plansLeft;
   }
}


public class Session extends Customer 
{   
    public int sessionIDNumber = 0000;
    public int spotsLeft = 0;

    public Session()
    {
    }

    public Session (String Name, int ID, int plansLeft, int sID, int sl) 
       {
        super(Name, ID, plansLeft); // <----- perhaps an issue here?
        sessionIDNumber = sID;
        spotsLeft = sl;
       }


    public int getsessionIDNumber() {
        return sessionIDNumber;
    }

    public int getspotsLeft() {
        return spotsLeft;
    }

    public void setsessionIDNumber(int sessionIDNumber) {
        this.sessionIDNumber = sessionIDNumber;
    }

    public void setspotsLeft(int sl) {
        this.spotsLeft = sl;
    }
}




public static void main(String[] args) 
{
    //public Customer(){}    // <----- tried using this but only adds more errors

    Customer customer = new Customer("Sarah", 12345678, 12); // < ----- error is here: "The constructor Main.Customer(String, int, int, int, int) is undefined"

    System.out.println("Customer Name: " + customer.getName() + "\nCustomer ID: " + customer.getIDNumber() + "\nLessons Remaining: " + customer.getPlansLeft());
//    System.out.println("\nSession ID: " + customer.getsessionIDNumber() + "\nOpen Spots Available: " + customer.getspotsLeft()); // < ------ couple more errors here: "The method getsessionIDNumber/getspotsLeft() is undefined for the type Main.Customer"
}
}
公共类主
{
公共静态类客户
{
公共字符串名称=”;
公共int ID=0000;
公共int plansLeft=0;
公众客户()
{
}
公共客户(字符串n,整数id,整数pl)
{
Name=n;
ID=ID;
plansLeft=pl;
}
公共void集合名(字符串n)
{
Name=n;
}
公共无效集合id号(内部id)
{
ID=ID;
} 
公共空间设置平面英尺(内部pl)
{
plansLeft=pl;
}
公共字符串getName()
{
返回名称;
}
public int getIDNumber()
{
返回ID;
}
public int getPlansLeft()
{
返回平面;
}
}
公共类会话扩展了客户
{   
public int sessiondNumber=0000;
公共int spotsLeft=0;
公开会议()
{
}
公共会话(字符串名称、int-ID、int-plansLeft、int-sID、int-sl)
{
super(名称、ID、plansLeft);//试试这个:
Customer=new Main()。新客户(“Sarah”,12345678,12)
试试这个:

Customer-Customer=new-Main().new-Customer(“Sarah”,12345678,12)

您定义了一个构造函数,接受3个参数并使用5个参数进行调用。我将其更改为仅接受3个参数,并注释掉最后一行代码。现在
Customer-Customer=new-Customer(“Sarah”,12345678,12)
line给出此错误:无法访问Main类型的封闭实例。必须使用Main类型的封闭实例限定分配(例如x.new A(),其中x是Main的实例)。看一看谢谢大家的回复,你们都帮了我很多。谢谢!你定义了一个构造函数接受3个参数并用5个参数调用。我将它改为仅接受3个参数并注释掉最后一行代码。现在,
Customer=new Customer(“Sarah”,12345678,12)
line给出此错误:无法访问Main类型的封闭实例。必须使用Main类型的封闭实例限定分配(例如x.new A(),其中x是Main的实例)。看一看。感谢所有回复的人,你们都帮了我很多。谢谢!我这样做了,现在客户无法解决错误出现在所有客户上。()System.out.println Line中的呼叫我将它们全部更改为会话。()调用和我返回到相同的问题,没有可访问的Main类型的封闭实例。必须使用ty类型的封闭实例限定分配