実現したいこと
引数なしコンストラクタ
タイトル、いちばんやさしい基本情報技術者
著者名、高橋京介
価格、1980円
引数なしコンストラクタ
タイトル、2024応用情報技術者午後問題の重点対策
著者名、小口達夫
価格、3740円
このように引数の有無それぞれのコンストラクタを用いて検索する結果を出力したいです。
発生している問題・分からないこと
引数なしコンストラクタ
いちばんやさしい基本情報技術者高橋京介1980
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
トークン "void" に構文エラーがあります。正しくは record です
変数 setTitle に void は無効な型です
トークン "{" に構文エラーがあります。このトークンの後には { を指定する必要があります
トークン "{" に構文エラーがあります。このトークンの後には { を指定する必要があります
構文エラーがあります。"}" を挿入して ClassBody を完了してください
構文エラーがあります。";" を挿入して RecordBodyDeclaration を完了してください
構文エラーがあります。"}" を挿入して RecordBody を完了してください
at study.Main.main(Main.java:25)
実行したところエラーとなりました。主に下記のプログラムについてエラーが出てしまいます。
25 public void setTitle(String title) {
26 this.TITLE_1 = title;
27 }
トークン "void" に構文エラーがあります。正しくは record です
変数 setTitle に void は無効な型です
トークン "{" に構文エラーがあります。このトークンの後には { を指定する必要があります
トークン "{" に構文エラーがあります。このトークンの後には { を指定する必要があります
こちらのエラーですがsetTitleがエラーでsetAuthor、setPricesが何故問題なく通るのか解決できずにおります。
括弧やセミコロンはctrl+fで検索しヒットしたため誤字ではないと思いますが、構文エラーの解決方法が分かりかねるため、併せてご回答、ご助力いただけますと幸いです。
該当のソースコード
Main.java
1public class Main { 2 3 //Bookデータ1 4 public static final String TITLE_1 = "いちばんやさしい基本情報技術者"; 5 public static final String AUTHOR_1 = "高橋京介"; 6 public static final int PRICE_1 = 1980; 7 8 //Bookデータ2 9 public static final String TITLE_2 = "2024応用情報技術者午後問題の重点対策"; 10 public static final String AUTHOR_2 = "小口達夫"; 11 public static final int PRICE_2 = 3740; 12 13 public static void main(String[] args) { 14 15 // 変数名をBook1でBookクラスをインスタンス化して引数なしのコンストラクタを呼びだす 16 Book Book1 = new Book(); 17 Book1.setTitle(TITLE_1); 18 Book1.setAuthor(AUTHOR_1); 19 Book1.setPrices(PRICES_1); 20 21 22 23 //セッターメソッドをそれぞれ呼び出しBookクラスにBookデータ1のデータを格納 24 25 public void setTitle(String title) { 26 this.TITLE_1 = title; 27 } 28 public void setAuthor(String author) { 29 this.AUTHOR_1 = author; 30 } 31 public void setPrices(int prices) { 32 this.PRICE_1 = prices; 33 } 34 35 36 // 本の紹介を出力 37 Book1 intoroduce(); 38 39 40 41 /* 変数名をBook2でBookクラスをインスタンス化し 42 引数ありのコンストラクタを呼び出しBookデータ2をBookクラスに格納 43 */ 44 Book Book2 = new Book(TITLE_2,AUTHOR_2,PAGES_2) { 45 this.TITLE_2 = TITLE_2; 46 this.AUTHOR_2 = AUTHOR_2; 47 this.PRICE_2 = PRICE_2; 48 } 49 50 51 52 // 本の紹介を出力 53 Book2 intoroduce(); 54 55 56 57 } 58 59 60
Book.java
1public class Book { 2 3 //フィールド変数 4 private String title; 5 6 private String author; 7 8 private int prices; 9 10 //「引数なしコンストラクタ」を出力 11 public Book() { 12 System.out.println("引数なしコンストラクタ"); 13 } 14 15 16 //「引数ありコンストラクタ」を出力 17 //タイトル、著者、ページ数のデータを受け取り、それぞれBookクラスのフィールド変数に格納 18 public Book(String title, String author, int prices) { 19 System.out.println("引数ありコンストラクタ"); 20 } 21 22 //getterメソッド、setterメソッド 23 public String getTitle() { 24 return title; 25 } 26 27 public void setTitle(String title) { 28 this.title = title; 29 } 30 31 public String getAuthor() { 32 return author; 33 } 34 35 public void setAuthor(String author) { 36 this.author = author; 37 } 38 39 public int getPrices() { 40 return prices; 41 } 42 43 public void setPrices(int prices) { 44 this.prices = prices; 45 } 46 47 //本の紹介をするメソッド 48 //アクセス修飾子:public 49 //返り値:なし 50 //メソッド名:intoroduce 51 //引数:なし 52 public void intoroduce() { 53 System.out.println("タイトル、" + title); 54 System.out.println("著者名、" + author); 55 System.out.println("価格、" + prices + "円"); 56 57 } 58 59 60 61} 62
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
様々な単語を検索し解決したいと思いましたが糸口を見つけられず手詰まりになり質問させていただきます。
ご助力いただけたらと思います、何卒宜しくお願い致します。
補足
特になし

回答2件
あなたの回答
tips
プレビュー