class Library {
String libraryName;
String address;
Library(String namelibrary)
{
libraryName=namelibrary;
}
Book[] books=new Book[150];
void addBook(Book newBook)
{
books[i]= newBook;
i++;
}
class Book
{
String title;
boolean borrowed;
}
}
public class test{
public static void main(String[] args)
{
Library firstLibrary = new Library("10 Main St.");
Library secondLibrary = new Library("228 Liberty St.");
firstLibrary.books[0]= new Book("Maths");
}
}
このコードを実行すると、シンボルブックが見つからないというメッセージが表示されます。Javaオブジェクト名のクラス内のクラス
私の理解によれば、このエラーはライブラリ内のクラスであり、そのオブジェクトから定義しています。 助けてガイドしてください。事前にお気軽にご連絡ください
これはあなたを助けるためにハード実際のコードではないようなクラスライブラリの後にクラスのブックを定義してみてください。 MAYBEパッケージの宣言、インポート???難しいこと –
'Library'の中にある' Book'をコンパイラに伝える必要があるので、 'newBook'だけでなく' new Library.Book'が必要です。また、自分のファイルでクラスを宣言し、そのようなネストされたクラスを避けるのがより一般的です。 – litelite
'Book'は' Library'のような「第1レベル」クラスではないので、 'test'クラスの文脈では直接到達できません。新しい 'Book'アイテムを実際にインスタンス化するには、' Book'コンストラクタを 'Library.new Book(" Maths ");'のように呼び出す必要があります。 – Polb