初心者なのですが、
OnlineBookクラスを継承したOnlineMagazineクラスを作成して、出版月と出版日を保持するフィールド(int型)を追加する。これらに登録を行うメソッドvoid setMonth(int month),void setDate(int date)、および出版年/出版月/出版日をまとめて出力するメソッドString getPublicationDate()を作成する。といったことをやったのですがエラーが出てどうすればよいのかわかりません。どなたか教えてもらえないでしょうか?
public class javaprog {
public static void main(String[] args) {
/* Bookクラスからインスタンスを生成 */
Book book = new Book("The Java Tutorial", 55, 1999);
System.out.println("Title = " + book.getTitle());
System.out.println("Price = " + book.getPrice());
/* Bookクラスからインスタンスを生成 */
OnlineBook obook = new OnlineBook("The Java Virtual Machine Specification", 0, "http://java.sun.com/docs/books/vmspec/index.html");
System.out.println("Title = " + obook.getTitle());
System.out.println("Price = " + obook.getPrice());
System.out.println("Website = " + obook.getWebsite());
System.out.println(getPublicationDate());
}
}
class Book { // クラスBookの宣言
String title; // 題名
private int price; // 価格(ドル)
int year; // 出版年(西暦)
Book(String t, int p, int y) { // コンストラクタ
title = t; // 題名の設定
price = p; // 価格の設定
year = y; // 出版年の設定
}
public String getTitle() { // 題名の取得
return title;
}
public int getPrice() { // 価格の取得
return price;
}
public int getYear() { // 出版年の取得
return year;
}
}
class OnlineBook extends Book { // クラスBookを継承
public String website; // URL
OnlineBook(String t, int p, int y, String website) {
super(t, p, y); // スーパークラスのコンストラクタの呼び出し
this.website = website; // URLの設定
}
public String getWebsite() { // URLの取得
return website;
}
public String getTitle() {
return "Online: " + title;
}
}
// 追加したところ↓
class OnlineMagazine extends OnlineBook { // クラスOnlineBookを継承
int month; // 出版月
int date; // 出版日
OnlineMagazine(String t, int p, int y, String website) {
super(t, p, y, website);
setMonth(5);
setDate(27);
}
void setMonth(int month) { // 出版月を設定するメソッド
this.month = month;
}
void setDate(int date) { // 出版日を設定するメソッド
this.date = date;
}
String getPublicationDate() { // 出版年/出版月/出版日をまとめて出力するメソッド
return "出版年/出版月/出版日" + year/ + month/ + date;
}
}
エラー↓
% javac javaprog.java
javaprog.java:9: シンボルを解決できません。
シンボル: コンストラクタ OnlineBook (java.lang.String,int,java.lang.String)
場所 : OnlineBook の クラス
OnlineBook obook = new OnlineBook("The Java Virtual Machine Specification", 0, "http://java.sun.com/docs/books/vmspec/index.html");
^
javaprog.java:14: シンボルを解決できません。
シンボル: メソッド getPublicationDate ()
場所 : javaprog の クラス
System.out.println(getPublicationDate());
^
エラー 2 個
%
お礼
繋げかたが全くわからなかったので助かりました。回答ありがとうございました。