質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

インターフェース

インターフェイスという用語はハードウェア・ソフトウェアの両方に使うことができます。 一般的に、インターフェイスは内部処理の詳細を見せないように設定されます。オブジェクト指向プログラミングにおいて、インターフェイスはabstractクラスとして定義されます。

オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

1038閲覧

配列にオブジェクトを代入したい

miroku

総合スコア14

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

インターフェース

インターフェイスという用語はハードウェア・ソフトウェアの両方に使うことができます。 一般的に、インターフェイスは内部処理の詳細を見せないように設定されます。オブジェクト指向プログラミングにおいて、インターフェイスはabstractクラスとして定義されます。

オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2021/06/08 10:43

編集2021/06/08 11:24

配列にオブジェクトを代入したいのですが、シンボルが見つからないと表示されてしまいます。
そもそも配列に代入するコードが間違っているのか、他の要因があるのかが分かりません。よろしくお願いします。

java

1public class Test{ 2 public static void main(String[] args){ 3 Shipping[] tmp = new Shipping[3]; 4 5 tmp[0]=new Fruit(10,"りんご",1); 6 tmp[1]=new Fruit(20,"りんご",2); 7 tmp[2]=new Vegetable(30,"トマト"); 8 9 } 10} 11

java

1public interface Shipping{ 2String info(); 3int shipping(); 4int handling(); 5}

java

1public class Fruit extends Content implements Shipping{ 2private int size; 3public Fruit(int code, String name, int size){ 4 super(code,name); 5 this.size=size; 6} 7 8 9 10 11public int price(){ 12 int tmp,tmp2,tmpcode,kai; 13 tmpcode=code 14 tmp=tmpcode%10; 15 tmpcode=tmpcode/10; 16 tmp2=tmpcode%10*10; 17 kai=tmp+tmp2; 18 if(kai==11){ 19 return 10000; 20 }else if(kai==22){ 21 return 12000; 22 }else{ 23 return 15000; 24 } 25} 26 27public int shipping(){ 28 if(size==1){ 29 return 500; 30 }else if(size==2){ 31 return 700; 32 }else{ 33 return 100; 34 } 35} 36 37public int handling(){ 38 if(size>=2){ 39 return 200; 40 }else{ 41 return 0; 42 } 43} 44 45@Override 46public String info(){ 47return name+”\t”+code+”\t”+price(); 48} 49}

java

1public class Vegetable extends Content implements Shipping{ 2 3public Vegetable(int code, String name, int size){ 4 super(code,name,size); 5} 6 7private int tmp; 8tmp=tmpcode%10; 9 10public int price(){ 11 if(tmp==1){ 12 return 12000; 13 }else if(tmp==9){ 14 return 9000; 15 }else{ 16 return 6000; 17 } 18} 19 20public int shipping(){ 21 if(tmp==1){ 22 return 1200; 23 }else if(size==9){ 24 return 900; 25 }else{ 26 return 600; 27 } 28} 29 30public int handling(){ 31 return 200; 32} 33 34@Override 35public String info(){ 36return name+”\t”+code+”\t”+price(); 37} 38} 39 40

java

1public abstract class Content extends Product{ 2 3public AbsProduct(int code, String name){ 4 super(code,name); 5} 6 7public abstract int price(); 8} 9 10

java

1public class Product{ 2protected int code; 3protected String name; 4public Product(int code, String name){ 5 this.code=code; 6 this.name=name; 7} 8public int getCode(){ 9return code; 10} 11public String getName(){ 12return name; 13} 14}

errorcode

1Test.java:7: エラー: シンボルを見つけられません 2 tmp[0]=Fruit(20011,"リュック",1); 3 ^ 4 シンボル: メソッド Fruit(int,String,int) 5 場所: クラス Test 6Test.java:8: エラー: シンボルを見つけられません 7 tmp[1]=new Fruit(30022,"リュック",9); 8 ^ 9 シンボル: クラス Fruit 10 場所: クラス Test 11Test.java:9: エラー: シンボルを見つけられません 12 tmp[2]=new Vegetable(50001,"スツール"); 13 ^ 14 シンボル: クラス Vegetable 15 場所: クラス Test 16エラー3個

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BeatStar

2021/06/08 10:56

多分、違うソースコード。 たとえば上書き保存していないとか、保存が反映されていないか、 別のファイルをコンパイルしているとか。
dodox86

2021/06/08 12:32

セミコロン;が抜けていたり、文字列を全角の”でくくっていたりでコンパイルが通らないソースファイルがいくつかあります。コンパイルが通らないので*.classファイルが作成されず、そのため「シンボルが見つからない」エラーになっているのだと考えられます。 *.javaファイルをひとつひとつコンパイルして正しく修正したあと、質問内容を再度見直してください。
guest

回答1

0

ベストアンサー

Content.java
1)
Fruit.javaで呼んでいる super(code,name); が未定義

追加

Java

1 public Content(int code, String name){ 2 super(code,name); 3 }

Vegetable.java クラスのコンストラクタで呼んでいる super(code,name,size); が未定義
新たに定義するか
Vegetable.java で super(code,name,size); -> super(code,name); に変更

  1. 3行目

コンストラクタの記述ミスなら削除/修正
AbsProductというメソッドになっており そのなかでスーパークラスのコンストラクタを呼ぼうとしていてエラーになるので最低限super(code,name);をコメントアウト

Java

1 public AbsProduct(int code, String name){ 2 //super(code,name); 3 }

Vegetable.java
1)
Testクラスで new Vegetable(30,"トマト"); しているが 2つの引数のコンストラクタが定義されていない

Java

1 public Vegetable(int code, String name, int size){ 2 super(code,name,size); 3 }

はContentクラスで定義されていないコンストラクタを実行しようとするので、以下のように修正

Java

1 public Vegetable(int code, String name){ 2 super(code,name); 3 }

若しくは
Testクラスで new Vegetable(30,"トマト",5);のように3つめの引数を追加し
Fruit.javaと同様のコンストラクタに修正

Java

1 private int size; 2 public Vegetable(int code, String name, int size){ 3 super(code,name); 4 this.size=size; 5 }

2)8行目
tmp=tmpcode%10; //変数tmpcode未定義

3)36行目
\t を囲む"が”になっている "に修正

Fruit.java

  1. 13行目 末尾 ; 記入漏れ

Java

1 tmpcode=code //

2)47行目
\t を囲む"が ”になっている "に修正

投稿2021/06/08 12:50

Crimson_Tide

総合スコア509

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

miroku

2021/06/08 15:36

ご回答ありがとうございます! めちゃくちゃでした…
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問