Java初心者です。
野菜の名前とその単価を一旦表示するというプログラムになっています。
ここでは、
- VegetableクラスとFruitクラスの各コンストラクタをMainクラスの外部で定義し、Mainクラス内でそのコンストラクタを呼び出す
ということがしたいのですが、
実際にコンパイルしてみると、Mainクラスのmainメソッド内のクラス名の部分でエラーが発生して「Vegetable(またはFruit) cannot be resolved to a type」と表示されます。
Webサイトで調べてみたところ、
・「new クラス名」のところでインスタンス化できていない(アブストラクト型またはインターフェース型で定義しているのが原因)
とありましたが、本プログラムではアブストラクト型でもなくインターフェース型でもないです。他に原因がないか調べてみましたが、初心者の自分には小難しくてなかなか理解できなかったので、直接質問させていただきました。
エラーの対処法を教えていただけると幸いです。
Java
1package food; 2import java.util.Scanner; 3 4class Main { 5 public static void main(String[] args) { 6 //エラー発生箇所 7 Vegetable vegetable1 = new Vegetable("にんじん", 30); 8 Fruit fruit1 = new Fruit("りんご", 100); 9 //ここまでエラー発生箇所 10 11 vegetable1.printData(); 12 fruit1.printData(); 13 } 14}
Java
1class Vegetable { 2 private String name; 3 private int price; 4 5 Vegetable(String name, int price) { 6 this.name = name; 7 this.price = price; 8 } 9 //ゲッター 10 public String getName() { 11 return this.name; 12 } 13 14 public int getPrice() { 15 return this.price; 16 } 17 // 18 //セッター 19 public void setName(String name) { 20 this.name = name; 21 } 22 23 public void setPrice(int price) { 24 this.price = price; 25 } 26 // 27 28 public void printData() { 29 System.out.println(this.name() + ":" + this.price()); 30 } 31}
※ソースコードはfoodフォルダの中に入れています。
※Fruitクラスの処理内容はVegetableクラスの処理内容と同じです。
※Javaのコンパイルに必要なライブラリはPC上に保存されています。
もし説明不足なところがあれば補うのでどうか宜しくお願いします。

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