2014-01-25 114 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; 
    

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

    相关问题