我目前正在编写一个程序,我需要将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.
任何帮助表示赞赏!谢谢
答案 0 :(得分:1)
我认为您是Java初学者或OOP初学者。在Java中,所有函数/方法都应该是类的内部,甚至是主函数。
以下是代码:
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 :(得分:0)
你把你的班级写进了主法吗?
相反,你的类包含一个主方法答案 2 :(得分:0)
一些事情:
您不需要ConcertSales concertSales = new ConcertSales();因为Java会自动构造默认构造函数。该行应该移动到您的主程序中。
您应该将ConcertSales类移到main之外。最好在另一个文件中。
假设您为ConcertSales创建了一个单独的类,您的主类将如下所示。
public static void main(String[] args) {
ConcertSales sales = new ConcertSales(); // create new ConcertSales object
sales.setNumberOfSeatTypesA(30);
}