2014-01-25 113 views
1

任何人都可以看到我如何在此代碼上運行主要方法嗎? 我想檢查是否有任何編譯時錯誤或運行時錯誤,但我得到這個錯誤消息「無法找到或加載主類應用程序」。錯誤:無法找到或加載主類應用程序

class Book { 
private static int internalID = 0; 
private String isbn; 
private int myID; 

public Book(String isbnP) { 
    if (isbnP == null) { 
     throw new IllegalArgumentException("null ISBN not accepted"); 
    } 
    isbn = isbnP; 
    myID = internalID++; 
} 

public String getBookinfo() { 
    return isbn; 
} 

public String toString() { 
    return "<" + myID + "," + isbn + ">"; 
} 
// To Do: Override Object.equals() 
// Two objects are equal iff isbn of the two books are same 

} 

class ComSBook extends Book { 
private String category; 

public ComSBook(String isbnP, String catP) { 
    super(isbnP); 
    category = catP; 
} 

@override 
public String getBookInfo() { 
    return "ComS " + category + " " + super.getBookinfo(); 
} 
} 

class NetworkBook extends ComSBook { 
private boolean isWithCD; 

public NetworkBook (String isbnP, boolean withCD){ 
    super(isbnP,"Network"); 
    isWithCD = withCD; 
} 
@override 
public String getBookInfo(){ 
    return super.getBookInfo() + " withCD: " + isWithCD; 
} 
} 


class ReviewPolymorp{ 
public static void main(String[] args){ 
    Book abook = new Book("A-1"); 
    Book bbook = new Book("B-1"); 
    ComSBook csbook = new ComSBook("C-11", "General"); 
    NetworkBook netbook = new NetworkBook("N-11", true); 

    System.out.println(abook); 
    System.out.println(bbook); 
    System.out.println(csbook); 
    System.out.println(netbook); 

    abook = csbook; 
    System.out.println(abook.getBookinfo()); 

    bbook = netbook; 
    System.out.println(bbook.getBookinfo()); 

    netbook = (NetworkBook) bbook; 
    System.out.println(netbook.getBookinfo()); 

    netbook = (NetworkBook) csbook; 
    System.out.println(netbook.getBookinfo()); 

    netbook = csbook; 

} 
} 

回答

2

你的文件應該是ReviewPolymorp.javaclass ReviewPolymorp{public,與main方法

您可能還需要檢查的項目的主要類是程序的,因爲它的空空點ReviewPolymorp。我只知道如何在NetBeans

做這個項目
  • 選擇屬性
    • 右鍵單擊
    • 單擊運行
    • 確保您ReviewPolymorp我的主類用例如全名mypackage.ReviewPolymorp
    • 然後重建項目
  • 0

    當我是你的代碼複製到我的IDE(它的日蝕),編譯錯誤出現在這一行:

    netbook = csbook; 
    

    你不能投一個實例超類的子類。

    禁用此行後,我從控制檯輸出,一旦運行該代碼:

    <0,A-1> 
    <1,B-1> 
    Exception in thread "main" <2,C-11> 
    <3,N-11> 
    C-11 
    N-11 
    N-11 
    java.lang.ClassCastException: com.test.ComSBook cannot be cast to com.test.NetworkBook 
    at com.test.ReviewPolymorp.main(ReviewPolymorp.java:75) 
    

    這是同樣的問題與上面的編譯錯誤。

    禁用後這三條線

    netbook = (NetworkBook) csbook; 
    System.out.println(netbook.getBookinfo()); 
    csbook = netbook; 
    

    代碼是不作任何修改工作。

    相關問題