2016-12-28 4 views
-5

私はちょうどJavaの学習を始めました。これは私が最初に書いたことです。 しかし、私はクラスの概念に入ることに問題があり、私はいくつかのエラーが発生しています。別のクラスへのアクセス

私は2つのファイルを持っています。最初のコードはBook.java

コードをコンパイルしようとすると15個のエラーが出ますが、そのうちのいくつかはエラーが発生します。しかし、私は最初に他のエラーのための解決策を探したい。彼らは明らかに他のクラスにアクセスできないため、「シンボルを見つけることができません」と言っています。

両方のファイルが同じディレクトリにあります。 BookStoreファイルのmainメソッドでBookクラスを作成してアクセスする必要があることを読んだことがありますが、この場合はどのように行うのかわかりません。

私の問題を助けてくれることを願っています。

J.

+0

NULLをNULLに変更するNULL –

+2

'Book'クラスの場合、' makeBook'ではなく、 'Book'という名前のコンストラクタを指定します。しかし、一般的には、各エラーメッセージを見て、それが何を言っているのかを考え、それを修正する方法を考えてください。エラーが消えるようにコードを書き直すように依頼するよりもはるかに優れています。その方法で実際に何かを学ぶからです。 –

+2

コンパイラのエラーは、メッセージを読んだり、言語ソースを参照して間違った場所を確認したり、コンパイルが成功するまで修正したりすることによって解決されるべきものです。コンパイラのエラーや言語知識の不足については、SOが質問する場所ではありません。 – duffymo

答えて

0

そのブッククラスは最適ではありません。このお試しください:

public class Book { 
    private final String name; 
    private final String isbn; 
    private final double price; 

    public Book(String name, String isbn, double price) { 
     this.name = name; 
     this.isbn = isbn; 
     this.price = price; 
    } 

    public String toString() { 
     return String.format("name: '%s' ISBN: %s price %10.2f", this.name, this.isbn, this.price); 
    } 
} 
1

を、私は即座にあなたが明示的に予約するためにコンストラクタを実装していませんでした、そこ代わりのNULL 2を見つけることができ、複数のものがあります。

あなたがBookインスタンスを作成するときは、コンストラクタはこの場合、「ブック」にあるクラスと同じ名前にする必要があることを

Book book = new Book(); 

注意を使用する必要が 3.これはただのノートです間違ったことではなく、HashMapのデータ構造を見てください。ループの代わりに多くを助けるかもしれません。

+0

ありがとう、私は既にNULLをnullに変更し、コンストラクタの名前を変更しました。しかし、私はまだ 'シンボルを見つけることができません'というエラーを受け取ります。 – mejasper

+0

私が言うつもりは、今のところいつものことです。デバッガを使うことを学ぶ必要があります。ブレークポイントを配置し、ステートメントを1つずつ実行します。変数がどのように変化しているかを見ることができ、エラーの正確な場所を特定できます。最後に、これに正解がある場合は、正解として設定することを忘れないでください。 –

0

"main"メソッドの2行目は、上の行のように、 "新しい"ブックストアを作成する必要があります。しかし、 "メイン"の最初の行については、新しい本を作成してからどこにも使用しないので、削除することができます。

エラーのリストから少なくとも1つの警告と1つの警告を削除する必要があります。コンパイラが提供しているすべてのエラーを列挙しておけば、私は推測できません。

+0

私はメインメソッドの最初の2行を変更しましたが、実際に変更されたものはありません。 – mejasper

関連する問題