编程初学者,我用Java编写了一个简单的售票系统,但是运行时候报错,希望大牛能帮我看一下!
这是一个User类:
package subwayTicketSellingSystem;
import java.util.Scanner;public class User
{
private String ticketType;
private Ticket tic;
private TicketMachine machine;
public double money;
public Ticket buyTicket;
public static void main(String[] args)
{
User user1 = new User();
System.out.println("Please choose your ticket type: ");
System.out.println("1: normal ticket");
System.out.println("2: day ticket");
Scanner ticketType = new Scanner(System.in);
String ticType = ticketType.nextLine();
switch(ticType)
{
case "1":
user1.tic = new norTicket();
break;
case "2":
user1.tic = new dayTicket();
}
System.out.println("Your ticket price is: " + user1.tic.calculatePrice());
System.out.println("Please pay for your tickets: ");
Scanner money = new Scanner(System.in);
String userMoney = money.nextLine();
if (user1.machine.collectMoney())
{
System.out.println("Your charge is: " + user1.machine.giveCharge());
user1.machine.printTicket();
}
else System.out.println("Mnoey is not enough, invalid operation.");
}
}
这是一个TicketMachine类:
package subwayTicketSellingSystem;public class TicketMachine
{
User u1 = new User();
public Ticket Tickets[];
public double getTicketPrice()
{
return u1.buyTicket.calculatePrice();
}
public boolean collectMoney()
{
if ( u1.money >= u1.buyTicket.calculatePrice())
return true;
else return false;
}
public double giveCharge()
{
return u1.money - u1.buyTicket.calculatePrice();
}
public Ticket printTicket()
{
System.out.println("Your original station: ");
return null;
}
}
报错信息:
Exception in thread "main" java.lang.NullPointerException
at subwayTicketSellingSystem.User.main(User.java:31)
十分感谢!