java - 我需要帮助将这个主要方法分离到一个类中
问题描述
我有这个电影票程序,我想有一个类,所以它成为一个主要方法和一个类,它让我心痛。
import java.util.Scanner;
public class MovieTicket {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String[] movielist ={"1) Shutter Island","2) Devil's Advocate","3) Pulp Fiction","4) Resvouar Dogs"};
Ticket obj=new Ticket();
System.out.println("Welcome to Vox Cinemas");
System.out.println("Please ,Selcet a movie please");
for (int i =0; i<movielist.length;i++){
System.out.println(movielist[i]);
}
int number = sc.nextInt();
System.out.println("The movie you selected is:"+" "+movielist[number-1]);
System.out.println("How many seats would you lie:");
String seats = sc.next();
System.out.println("You've selected:"+seats+"Seats");
}
}
解决方案
您需要为剧院、电影、票务等创建单独的类。
如下所示。
class Movie{
private String name;
private int runtime;
//add other fields like producer/actors/genre
public Movie(String name, int runtime) {
this.name = name;
this.runtime = runtime;
}
public String getName() {
return name;
}
public int getRuntime() {
return runtime;
}
}
class Ticket{
private int number;
private Movie movie;
private String screen; //Screen 1
private String seat; //A14
public Ticket(int number, Movie movie, String screen, String seat) {
//.. initiate variables here.
}
//write getters here
}
class VoxCinema{
private List<Movie> movies = new ArrayList<>();
private String address;
//theater details like name/timings etc.
public VoxCinema() {
}
public void addMovie(Movie movie) {
this.movies.add(movie);
}
public List<Movie> getAllMovies() {
return this.movies;
}
//write getters and setters
}
然后像这样在您的应用程序中使用它们:
public class TicketBookingApplication {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
VoxCinema vc = new VoxCinema();
vc.addMovie(new Movie("Shutter Island", 130));
vc.addMovie(new Movie("Devil's Advocate", 180));
/// add all movies
System.out.println("Welcome to Vox Cinemas");
System.out.println("Please ,Selcet a movie please");
List<Movie> movies = vc.getAllMovies();
for (int i = 0; i < movies.size(); i++) {
System.out.println(i + ") " + movies.get(i).getName());
}
int number = sc.nextInt();
Movie selectedMovie = movies.get(number);
System.out.println("The movie you selected is: " + selectedMovie.getName());
System.out.println("How many seats would you lie:");
String seats = sc.next();
System.out.println("You've selected:" + seats + "Seats");
// create tickets
Ticket t = new Ticket(3341, selectedMovie, "Screen 4", "D15");
//store tickets in VoxCinema object
}
}
根据您的需要实施剩余部分或修改代码。
推荐阅读
- azure - 无法从门户创建存储帐户:名称已被占用
- django - 如何在 django 平台中为嵌套评论系统创建视图?
- java - 错误:JavaFX 运行时组件丢失,并且是运行此应用程序所必需的。使用 gradle 运行项目
- java - 如何将多个整数从 Bash shell 脚本传递到 Java System.in?
- sql - proc sql中Group By类中的Case语句和聚合
- javascript - 将一个 useReducer 状态传递给另一个 useReducer
- python - 如何检查存储在列表中的字典中的键
- c - gzread 会修改输入的 buf 值吗?
- regex - 如何判断一种语言是否是常规语言、上下文无关语言、下推自动机等?
- mysql - MySql:如何获取每个组的最新行?