Java .. 给定公共类并且没有 Main 方法作为组项目的一部分 .. 我该如何编译?
Posted
技术标签:
【中文标题】Java .. 给定公共类并且没有 Main 方法作为组项目的一部分 .. 我该如何编译?【英文标题】:Java .. Given public class and no Main method as part of a group project .. how do I compile? 【发布时间】:2020-03-18 00:55:26 【问题描述】:参加了一个在线 Java 入门课程,我的反应迟钝的教授为我们提供了“公共课程航空公司”来纠正错误、提高效率、添加功能等。只提供了 .txt 文件。到目前为止,在课堂上,我已经在 Eclipse 中编写了所有我自己的代码。如何获取没有 main 方法的提供的 .txt 文件并尝试编译它以便我可以处理作业?
感谢您的任何意见。 迈克
'''
import java.util.Scanner;
public class Airline
boolean seats[]; // array of seats
final int SIZE = 10; // number of seats
final int FIRST_CLASS = 1;
final int ECONOMY_CLASS = 2;
public Airline()
seats = new boolean[ SIZE ]; // array of seats
// prints boarding pass
public void printBoardingPass( int seat )
String section = ( seat < 5 ) ? "First Class" : "Economy Class";
System.out.printf( "%s. Seat #%d\n", section, seat );
// print seating menu
public void printMenu()
System.out.println( "Please type 1 for First Class" );
System.out.println( "Please type 2 for Economy" );
System.out.print( "choice: " );
// checks customers in and assigns them a boarding pass
public void checkIn()
int firstClass = 0; // next available first class seat
int economy = 5; // next available economy seat
int section = 0; // passenger's seating choice
Scanner input = new Scanner( System.in );
System.out.println( "Welcome to Java Airways" );
while ( ( firstClass < 5 ) || ( economy < 10 ) )
printMenu();
section = input.nextInt();
if ( section == FIRST_CLASS ) // user chose first class
if ( firstClass < 5 )
seats[ firstClass++ ] = true;
printBoardingPass( firstClass );
// end if
else if ( economy < 10 ) // first class is full
System.out.println(
"First Class is full, Economy Class?" );
System.out.print( "1. Yes, 2. No. Your choice: " );
int choice = input.nextInt();
if ( choice == 1 )
seats[ economy++ ] = true;
printBoardingPass( economy );
else
System.out.println( "Next flight leaves in 3 hours." );
// end else if
// end if
else if ( section == ECONOMY_CLASS ) // user chose economy
if ( economy < 10 )
seats[ economy++ ] = true;
printBoardingPass( economy );
// end if
else if ( firstClass < 5 ) // economy class is full
System.out.println(
"Economy Class is full, First Class?" );
System.out.print( "1. Yes, 2. No. Your choice: " );
int choice = input.nextInt();
if ( choice == 1 )
seats[ firstClass++ ] = true;
printBoardingPass( firstClass );
// end if
else
System.out.println( "Next flight leaves in 3 hours." );
// end else if
// end else if
System.out.println();
// end while
System.out.println( "The plane is now full." );
// end method checkIn
// end class Airline
'''
【问题讨论】:
可以随时添加main方法,按方法测试类方法 重命名文件Airline.java
; 或 在 Eclipse 中创建一个新的 Airline
类。将其复制并粘贴到 eclipse 中。
它不需要main
方法来编译。你可以添加一个,也可以创建自己的类,实例化一个Airline
,然后调用它的checkIn
方法,即Airline airline = new Airline(); airline.checkIn();
好的..我认为教授期待大卫的技术..感谢大家的投入
谢谢大卫..我创建了自己的类并调用了 checkIn() 以便我可以运行程序..我让它运行了。从我初学者的角度来看,代码看起来不错。不知道如何以我有限的技能改进它。再次感谢
【参考方案1】:
这是一个有效的 java 源文件,所以只需将其重命名为 Airplane.java
(公共类必须始终位于以自身命名的源文件中;鉴于该文件包含 public class Airplane
,因此源文件必须命名为 Airplane.java
就是这样,注意外壳!
它没有main方法但没问题,你仍然可以编译它。您根本无法运行它(尝试执行java Airline
会产生错误:no main method found
)。您可以创建另一个使用 Airline
类的类,或者,您可以向 Airline 类添加一个 main 方法。
【讨论】:
以上是关于Java .. 给定公共类并且没有 Main 方法作为组项目的一部分 .. 我该如何编译?的主要内容,如果未能解决你的问题,请参考以下文章
为啥包含 main 方法的类没有实例化并且在 Java 中仍然可以?