クラス型配列の中身を表示したいのにエラーが出ます。
Q&A
Closed
解決したいこと
クラス型配列の中身を表示したいです。
実行するとエラーが出ました。
解決方法を教えて下さい。
発生している問題・エラー
Exception in thread "main" java.lang.NullPointerException
at lesson14_4.BookShelf.main(BookShelf.java:7)
または、問題・エラーが起きている画像をここにドラッグアンドドロップ
該当するソースコード クラス:BookShelf
コード訂正したコード。
```java
package lesson14_4;
public class BookShelf {
public static void main(String[] args) {
Book[] bookshelf = new Book[2];
System.out.print(bookshelf[0]);
bookshelf[0] = new Book("Javaプログラミング",2800,"A");
bookshelf[1] = new Book("test",1250,"B");
for(int i = 0 ; i < bookshelf.length ; i ++) {
System.out.println("書名:" + bookshelf[i].getName()+ "/");
System.out.println("価格:" + bookshelf[i].getPrice()+ "円/");
System.out.println("著者名:" + bookshelf[i].getAuther()+ "/");
}
}
}
```
訂正前のコード
```java
package lesson14_4;
public class BookShelf {
public static void main(String[] args) {
Book[] bookshelf = new Book[2];
bookshelf[0].setName("Javaプログラミング"); //7行目
bookshelf[0].setPrice(2800);
bookshelf[0].setAuther("A");
bookshelf[0].setName("test");
bookshelf[0].setPrice(1250);
bookshelf[0].setAuther("B");
for(int i = 0 ; i < bookshelf.length ; i ++) {
System.out.println("書名:" + bookshelf[i].getName()+ "/");
System.out.println("価格:" + bookshelf[i].getPrice()+ "円/");
System.out.println("著者名:" + bookshelf[i].getAuther()+ "/");
}
}
}
### 該当するソースコード クラスBook
```java
package lesson14_4;
public class Book {
private String name;
private int price;
private String auther;
public Book(String name,int price,String auther) {
this.name = name;
this.price = price;
this.auther = auther;
}
public String getName() {
return name;
}
public int getPrice() {
return price;
}
public String getAuther() {
return auther;
}
public void setName(String name) {
this.name = name;
}
public void setPrice(int price) {
this.price = price;
}
public void setAuther(String auther) {
this.auther = auther;
}
}
自分で試したこと
ここに問題・エラーに対して試したことを記載してください。
同じようなエラーを解決された方がいないか検索してみたのですが、私のエラーの理由は分かりませんでした。