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

标签 java eclipse undefined super

错误位于底部的主类中,我在代码中详细说明了它们及其错误消息。我的 Session 构造函数中还有一个 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"
}
}

最佳答案

将 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"
}
}

关于Java Eclipse - 未定义的构造函数和方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52049466/

相关文章:

Java生成不重复2 ^ 48周期的 "random"数字

java - 在 Eclipse 中查找未使用的公共(public)成员

eclipse - 如何使用Play调试测试! 2.0

javascript - 调用元素的 "Click()"方法返回未定义,尽管该元素确实存在

javascript - 为什么 undefined var 没有添加到 window 对象 JavaScript 中?

c - 无论如何,如何在 C 中使用已声明但未定义的函数?

javascript - 这个值 1522899000000 是什么时间戳格式? ionic 或 AngularJS。我如何在 Java 中使用它

java - 使用 CMIS 连接到 Alfresco

java - 在 Maven 中,如何运行位于 src/test/java 下的类?

java - Eclipse IDE 的自动代码格式化