Getter 和 Setter 功能帮助和操作方法

Getter and Setter Function Help and How To

我目前正在编写一个程序,我需要在其中合并 get 函数来为程序生成和输出。该程序需要有 Number of SeatsA = 30 和 pricePerSeatA = 120.99。我认为我的程序设置方式是调用这些函数,然后设置数量,然后打印。我试过使用 ConcertSales concertSales= new ConcertSales();但是任何时候我准备调用我使用的函数 concertSales.getNumberOfSeatsTypeA();或 concertSales.setNumberOfSeatsTypeA(30),它给了我一条错误信息。我究竟做错了什么?请帮忙!这是我的代码:

public static void main(String[] args) {
class ConcertSales{
ConcertSales concertSales = new ConcertSales();
public int numberOfSeatTypesA;
public int numberOfSeatTypesB;
public double pricePerSeatA;
public double pricePerSeatB;
public double totalSales; 

public int getNumberOfSeatTypesA()
{ return numberOfSeatTypesA;}
//did the same for Types B

public void setNumberOfSeatTypesA(int newValue) 
 { numberOfSeatTypesA = newValue; }
//same done for SeatsB

public double computeTotalSales()
{ return totalSales = numberOfSeatTypesA*pricePerSeatA +
                       numberOfSeatTypesB*pricePerSeatB }
}
concertSales.setNumberOfSeatTypesA(30); //this is where i keep getting 
my error messages. 

感谢任何帮助!谢谢

你有没有把你的 class 写到 main 方法中?

反过来,你的class包含一个main方法

我认为您是 Java 初学者,或者说 OOP 初学者。在 Java 中,所有 functions/methods 都应该在 class 内部,甚至是 main 函数。

代码如下:

class ConcertSales{
    public int numberOfSeatTypesA;
    public int numberOfSeatTypesB;
    public double pricePerSeatA;
    public double pricePerSeatB;
    public double totalSales; 

    public int getNumberOfSeatTypesA(){ 
        return numberOfSeatTypesA;
    }

    public void setNumberOfSeatTypesA(int newValue){ 
        numberOfSeatTypesA = newValue; 
    }

    public double computeTotalSales(){ 
        return totalSales = numberOfSeatTypesA*pricePerSeatA +
                   numberOfSeatTypesB*pricePerSeatB;
    }

    public static void main(String[] args) {
        ConcertSales concertSales = new ConcertSales();
        concertSales.setNumberOfSeatTypesA(30); 
        System.out.println(concertSales.getNumberOfSeatTypesA());
    }
}

几件事:

  1. 您不需要 ConcertSales concertSales = new ConcertSales();因为 Java 会自动构造默认构造函数。该行应该移到您的主程序中。

  2. 您应该将您的 ConcertSales Class 移到 main 之外。最好在另一个文件中。

  3. 假设您为 ConcertSales 创建了一个单独的 class,您的主要 class 将如下所示。

    public static void main(String[] args) { ConcertSales sales = new ConcertSales(); // create new ConcertSales object sales.setNumberOfSeatTypesA(30); }