各位帮忙看看哪里出问题了 我用jcreator编译的时候没有错误提示 但最后运行的时候还是运行不出来class Books {
String title;
String author;}
 class BooksTestDrive{
public static void main(String[] args){
Books[] myBooks = new Books[3];
int x=0;
myBooks[0].title="a";
myBooks[1].title="b";
myBooks[2].title="c";
myBooks[0].author="as";
myBooks[1].author="we";
myBooks[2].author="ds";


while (x<3){
System.out.print(myBooks[x].title);
System.out.print("作者");
System.out.println(myBooks[x].author);
x=x+1;
}
}
}

解决方案 »

  1.   

    class Books {
    String title;
    String author;}
    改为:class Books {
    static String title;
    static String author;}
    就行了
      

  2.   


    Exception in thread "main" java.lang.nullpointerException at BooksTestDrive.main<BookTestDrive.java:10>
      

  3.   

    加上初始化。 Book myBooks[] = new Book[3];
    int x=0;
    myBooks[0]=new Books();
    myBooks[1]=new Books();
    myBooks[2]=new Books();
    myBooks[0].title="a";
    myBooks[1].title="b";
    myBooks[2].title="c";
      

  4.   


    哇咔咔 行了 能告诉我为什么加个static就行了吗
      

  5.   

    main方法是个静态的方法,该方法是用时必须使用的是静态的字段和方法;否则用其类的实力化去调用;
      

  6.   

    应将代码改为:
    public class TestBook {
    public static void main(String[] args){
    Books[] myBooks = new Books[3];
    int x=0;
    myBooks[0]=new Books();
    myBooks[1]=new Books();
    myBooks[2]=new Books();
    myBooks[0].title="a";
    myBooks[1].title="b";
    myBooks[2].title="c";
    myBooks[0].author="as";
    myBooks[1].author="we";
    myBooks[2].author="ds";
    while (x<3){
    System.out.print(myBooks[x].title);
    System.out.print("作者");
    System.out.println(myBooks[x].author);
    x=x+1;
    }
    }}
    class Books {
      String title;
     String author;
    public Books(){

    } }
    如果用静态的static修饰的话
    class Books {
     static  String title;
      static String author;
    public Books(){

    } }
    输出的结果只是:
    c作者ds
    c作者ds
    c作者ds
    应为静态的字段在内存中只有一份所以那是最后的一个修改值;
      

  7.   


    不好意思,没考虑到覆盖的问题,楼主应该用new Book();去初始化数组
    然后对每个数组中的book对象赋值。