2016-03-28 58 views
0

我正在爲pearson myprogramming實驗室的學校做一項任務,完全按照這種方式進行,而且我的程序沒有輸出。然而,在netbeans上,我的應用程序是穩定的,編譯並提供所需的輸出。我查看了論壇,發現了類似的問題,但修復建議不適用於我的應用程序。Java在線編譯器問題

這裏是分配:

設計了一個名爲Person與字段持有人的姓名,地址和電話號碼(如所有String S)類。編寫一個初始化所有這些值的構造函數,以及每個字段的mutator和accessor方法。

接下來,設計一個名爲Customer的類,它繼承自Person類。 Customer類別應該有一個String字段用於客戶號碼和一個boolean字段指示客戶是否希望在郵件列表中。編寫一個構造函數來初始化這些值以及類的字段的適當的增變器和存取器方法。

在程序中演示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()); 





    } 

} 
+0

順便說一聲可怕的間距/格式 –

+1

可能重複[Java編譯錯誤:類Appletprac是公共的,應該在名爲Appletprac.java的文件中聲明](http://stackoverflow.com/questions/22729678/java-compile-error-class-appletprac-is-public-should-be-decla-in-a-file-nam) – ssimm

+0

你的代碼完美工作 –

回答

1

由於測試儀具有的主要方法,它應該在Tester.java文件中聲明。這將解決你的問題。在上傳的代碼中看不到Demo類。

+0

我不明白你如何在代碼實驗室中聲明一個文件,我會理解如何通過一個真正的IDE來解決這個問題,但事實並非如此。不管怎麼說,還是要謝謝你。 –

-2

同樣的事情發生在我身上,我找到了myprogramminglab的答案。在他們顯示樣品運行的工作區域中,您可以看到-SAMPLE RUN#1:java Driver。 只需更改Tester for Driver的類名並刪除公共。