0

クラス Library{} と Book{} を含むパッケージ mylib を作成しています。

ライブラリ クラス:

package mylib;
import java.util.*;

class Library {
public static void main(String[] args) {
    Scanner input = new Scanner(System.in);

    Book[] MyBooks = new Book[3];
    Book x;

    MyBooks[0] = new Book("The Lover's Dictionary", "Levithan, D.", 211, "AVAILABLE");
    MyBooks[1] = new Book("White Tiger", "Adiga, A.", 304, "AVAILABLE");
    MyBooks[2] = new Book("Thirteen R3asons Why", "Asher, J.", 336, "AVAILABLE");

    System.out.println("\n***** BOOK LISTING *****");
    for(int i = 0; i < MyBooks.length; i++) {
        x = MyBooks[i];
        System.out.println("[" + (i + 1) + "] " + x.sTitle + "\nAuthor: " +
            x.sAuthor + "\nPages: " + x.iPages + "\nStatus: " + Book.AVAILABLE);
        System.out.print("\r\n");
    }

    System.out.println("***** SELECT ACTION *****");
    System.out.println("B - Borrow a book");
    System.out.println("R - Reserve a book");
    System.out.println("I - Return a book");
    System.out.println("X - Exit program");

    System.out.print("\nEnter command: ");
    char cAction = input.nextLine().charAt(0); // Read single char

    switch(cAction) {
        case 'B':

            break;

        case 'R':

            break;

        case 'I':

            break;

        case 'X':
            Book book = new Book();
            book.exitProgram();
            break;

        default:
            System.out.println("INVALID INPUT!");
            break;
    }
}
}

ブッククラス:

package mylib;

class Book {
int iPages;
String sTitle, sAuthor;
String sBorrowedBy, sReservedBy;
String sDueDate, sReturnDate;
    String sStatus;

public static final String BORROWED = "BORROWED", AVAILABLE = "AVAILABLE", RESERVED = "RESERVED";

// Constructor
public Book(String title, String author, int pages, String status) {
    this.sTitle = title;
    this.sAuthor = author;
    this.iPages = pages;
    this.sStatus = status;
}
/*
void borrowBook() {

}

void reserveBook() {

}

 void returnBook() {

}
*/
 void exitProgram() {
    System.exit(0);
}
}

クラスでは、クラスからメソッドLibraryを呼び出すスイッチを介してプログラムを終了しようとしています。1 個のエラーが表示されますexitProgram()Bookconstructor x in class x...

どんな助けでも大歓迎です。

4

3 に答える 3

0

Book.java で exit メソッドを static にする

Book.java
static void exitProgram() {
  System.exit(0);
}

Library.java
 case 'X':
        //Book book = new Book();
        Book.exitProgram();
        break;
于 2013-07-25T05:26:11.393 に答える
0
case 'X':
            Book book = new Book();
            book.exitProgram();
            break;

引数なしを受け入れるコンストラクターがありません

public Book() {
}

引数なしで「Book」を作成する場合は、Book クラスで定義する必要があります。

また

必要な引数を渡して Book オブジェクトを作成する必要があります

case 'X':
                Book book = new Book("test","test",1,"test");
                book.exitProgram();
                break;
于 2013-07-25T05:19:11.397 に答える
0

Java ランタイムは、クラスにコンストラクターが定義されていない場合にのみ、デフォルトの引数なしコンストラクターを提供します。あなたの場合、引数の少ないコンストラクターがあるため、引数のないコンストラクターは Java ランタイムによって追加されません。Book クラスに引数なしのコンストラクタを実際に配置する必要があります。

于 2013-07-25T05:25:18.260 に答える