Java在线编译器问题
我正在皮尔森我的编程实验室为学校做一项作业,顺便说一句,这个实验室太差劲了,我的程序没有结果。然而,在netbeans上,我的应用程序是可靠的,可以编译并提供所需的输出。我浏览了论坛,发现了一个类似的问题,但修复建议对我的应用程序不起作用 以下是作业: 设计一个名为Java在线编译器问题,java,Java,我正在皮尔森我的编程实验室为学校做一项作业,顺便说一句,这个实验室太差劲了,我的程序没有结果。然而,在netbeans上,我的应用程序是可靠的,可以编译并提供所需的输出。我浏览了论坛,发现了一个类似的问题,但修复建议对我的应用程序不起作用 以下是作业: 设计一个名为Person的类,其中包含用于保存姓名、地址和电话号码的字段(全部为Strings)。编写一个构造函数来初始化所有这些值,以及每个字段的mutator和accessor方法 接下来,设计一个名为Customer的类,该类继承自Pers
Person
的类,其中包含用于保存姓名、地址和电话号码的字段(全部为String
s)。编写一个构造函数来初始化所有这些值,以及每个字段的mutator和accessor方法
接下来,设计一个名为Customer
的类,该类继承自Person
类。Customer
类应该有一个客户编号的String
字段和一个boolean
字段,指示客户是否希望在邮件列表中。编写一个构造函数来初始化这些值,并为类的字段编写适当的mutator和accessor方法
在程序中演示Customer
类,提示用户输入客户的姓名、地址、电话号码和客户号码,然后询问用户是否希望接收邮件。使用此信息创建客户对象,然后打印其信息
将所有类放在同一个文件中。为此,不要将其公开。
相反,只需写下:
class Person { ... }
class Customer { ... }
提交以下代码后,我收到了以下错误:
Driver.java:103: error: class Demo is public, should be declared in a file named Demo.java
public class Demo
^
1 error
代码:
import java.util.Scanner;
class Person
{
private String name;
private String address;
private String number;
public Person(String name, String address, String number)
{
super();
this.name = name;
this.address = address;
this.number = number;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getAddress()
{
return address;
}
public void setAddress(String a)
{
address = a;
}
public String getNumber()
{
return number;
}
public void setNumber(String number){
this.number = number;
}
}
class Customer extends Person
{
private String custNumber;
private boolean wants;
public Customer(String name, String address, String number, String custNumber, boolean wants)
{
super(name, address, number);
this.custNumber = custNumber;
this.wants = wants;
}
public String getcustNumber()
{
return custNumber;
}
public boolean isWants()
{
return wants;
}
public void setWants(boolean wants)
{
this.wants = wants;
}
}
/**
*
* @author Jonathan
*/
public class Tester
{
public static void main(String[] args)
{
String name, address, number;
String custNumber;
String decide;
boolean wants;
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter name of customer:Enter address of customer:Enter phone number of customer:Enter yes/no -- does the customer want to recieve mail?:");
name = keyboard.nextLine();
address = keyboard.nextLine();
number = keyboard.nextLine();
custNumber = keyboard.nextLine();
decide = keyboard.nextLine();
wants = decide.equals("yes");
Customer one = new Customer(name, address, number, custNumber, wants); // creates new Customer Object.
System.out.println("Customer: ");
System.out.println("Name: " + one.getName());
System.out.println("Address: " + one.getAddress());
System.out.println("Phone Number: " + one.getNumber());
System.out.println("Receive Mail?: " + one.isWants());
}
}
因为Tester有main方法,所以应该在Tester.java文件中声明它。这将解决你的问题。在上传的代码中看不到演示类 同样的事情也发生在我身上,我为我的编程实验室找到了答案。在显示示例运行的工作区中,您可以看到-sample run#1:java驱动程序。
只需将Tester for Driver更改为类名并删除public 顺便说一句,很抱歉代码的间隔/格式太糟糕了,可能重复的代码工作得很好。只需使用
javac filename.java
编译,但使用java Tester
运行,我不知道如何在代码实验室中声明文件,我知道如何通过真正的IDE解决问题,但事实并非如此。无论如何,谢谢。
import java.util.Scanner;
class Person{
private String name;
private String address;
private String number;
//Constructors
public Person(String name, String address, String number){
this.name = name;
this.address = address;
this.number = number;
}
public Person(){}
//Accessors
public String getName(){
return this.name;
}
public String getAddress(){
return this.address;
}
public String getNumber(){
return this.number;
}
//Mutators
public void setName(String n){
this.name = n;
}
public void setAddress(String a){
this.address = a;
}
public void setNumber(String n){
this.number = n;
}
}
class Customer extends Person{
private String customerNumber;
private boolean recieveMail;
//Constructors
public Customer(String name, String address, String number, String customerN, boolean rm) {
super(name, address, number);
this.customerNumber = customerN;
this.recieveMail = rm;
}
public Customer(){}
//Accessors
public String getCustomerNumber(){
return this.customerNumber;
}
public boolean getRecieveMail(){
return this.recieveMail;
}
//Mutators
public void setCustomerNumber(String c){
this.customerNumber = c;
}
public void setRecieveMail(boolean r){
this.recieveMail = r;
}
}
class Driver {
public static void main(String args[]){
Scanner scanner = new Scanner(System.in);
System.out.print("Enter name of customer:");
String name1 = scanner.nextLine();
System.out.print("Enter address of customer:");
String address1 = scanner.nextLine();
System.out.print("Enter phone number of customer:");
String number1 = scanner.nextLine();
System.out.print("Enter customer number:");
String customerNumber = scanner.nextLine();
System.out.print("Enter yes/no -- does the customer want to recieve mail?:");
String answer = scanner.nextLine();
boolean recieveMail = (answer.equals("yes"));
Customer customer = new Customer(name1, address1, number1, customerNumber, recieveMail);
System.out.println("\nCustomer: ");
System.out.println("Name: "+customer.getName());
System.out.println("Address: "+customer.getAddress());
System.out.println("Phone Number: "+customer.getNumber());
System.out.println("Customer Number: "+customer.getCustomerNumber());
System.out.println("Recieve Mail?: "+customer.getRecieveMail());
}
}