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

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

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

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

Q&A

解決済

2回答

2327閲覧

クラス分けをする書き換えができない

sky.user.

総合スコア15

Java

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

0グッド

0クリップ

投稿2018/05/16 01:18

編集2018/05/16 01:22

お世話になっております。
教科書にあったプログラム(クラス1つ)を、それぞれクラスを2つ、3つに増やして
表示する練習をしています。(クラス2つはできました。)
やろうとはしたのですが、3つ以上のクラスの分け方をしたことがなく、3つにするやり方がDisplayクラスとReidai3クラス間の変数resultの渡し方が分からず、できません。
このような複数のクラス(3つ以上)の場合、どのようにすれば良いのでしょうか?
お力をお貸しくださると幸いです。
よろしくお願いします。

//編成:クラス1つ(大元) class Reidai1 { public static void main(String args[]) { int num1 = 100; int num2 = 200; int result = 0; result = num1 + num2 System.out.println("計算結果は" + result); } }コード
//編成:クラス2つ(できたもの) class Calculate { public int keisan(int num1, int num2){ int result = num1 + num2; return result; } } class Reidai2 { public static void main(String args[]) { int num1 = 100; int num2 = 200; int result = 0; Calculate cal = new Calculate(); result = cal.keisan(num1,num2); System.out.println("計算結果は" + result); } }
//編成:クラス3つ(質問箇所) class Calculate{ public int keisan(int num1,int num2){ int result = num1 + num2; return result; } } class Display{ public void hyouji(int result){ System.out.println("計算結果は" + result); } } public class Reidai3{ public static void main(String args[]) { int input1 = 100; int input2 = 200; int result = 0; Calculate cal = new Calculate(); result = cal.keisan(num1,num2); Display dis = new Display(); dis.hyouji(); } }

##発生している問題・エラーメッセージ
Reidai3.java:21: シンボルを見つけられません。
シンボル: 変数 num1
場所 : Reidai3 の クラス
result = cal.keisan(num1,num2);
^
Reidai3.java:21: シンボルを見つけられません。
シンボル: 変数 num2
場所 : Reidai3 の クラス
result = cal.keisan(num1,num2);
^
Reidai3.java:23: hyouji(int) (Display 内) を () に適用できません
dis.hyouji();
^
エラー 3 個
##補足情報(言語/FW/ツール等のバージョンなど)
Java
コマンドプロンプト、テキストエディタ(Windows)

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

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

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

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

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

guest

回答2

0

Reidai3.java:21: シンボルを見つけられません。

シンボル: 変数 num1
場所 : Reidai3 の クラス
result = cal.keisan(num1,num2);
^
Reidai3.java:21: シンボルを見つけられません。
シンボル: 変数 num2
場所 : Reidai3 の クラス
result = cal.keisan(num1,num2);
^

「シンボルを見つけられません」というのは、「変数を使っているけど、コンパイラからその変数が見えない」という事です。

変数のスコープ(有効範囲)について、詳細はこちら。

public static void main(String args[]) { int input1 = 100; int input2 = 200; int result = 0; Calculate cal = new Calculate(); result = cal.keisan(num1,num2);

↑ここでは、num1、num2を宣言していないのに使おうとしているため「変数が見えない」と判定されたのです。

Reidai3.java:23: hyouji(int) (Display 内) を () に適用できません

dis.hyouji();
^

同様に、メソッドについてもjavaでは「宣言したもの」しか認識できません。

class Display{ public void hyouji(int result){

宣言しているのは引数にintをとるhyoujiメソッドなので、

Display dis = new Display(); dis.hyouji();

↑引数無しでhyoujiメソッドを呼び出そうとするとコンパイルエラーになるのです。

投稿2018/05/16 02:03

tkturbo

総合スコア5572

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

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

sky.user.

2018/05/16 02:11

ご回答ありがとうございます。 変数の扱い方にまだ慣れていないようです。。。 もう一度見直します!ありがとうございました。
guest

0

ベストアンサー

やり方を理解されていないというより単なる書き間違いのように見えます

Java

1class Calculate{ 2 public int keisan(int num1,int num2){ 3 int result = num1 + num2; 4 return result; 5 } 6} 7 8class Display{ 9 public void hyouji(int result){ 10 System.out.println("計算結果は" + result); 11 } 12} 13 14public class Reidai3{ 15 public static void main(String args[]) { 16 int input1 = 100; 17 int input2 = 200; 18 int result = 0; 19 20 Calculate cal = new Calculate(); 21 22 // result = cal.keisan(num1,num2); ← 例題3ではnum1,2ではなくinput1,2 23 result = cal.keisan(input1,input2); 24 25 Display dis = new Display(); 26 27 // dis.hyouji(); ← 引数が必要 28 dis.hyouji(result); 29 } 30}

投稿2018/05/16 01:37

de9

総合スコア312

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

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

sky.user.

2018/05/16 01:43

大変失礼いたしました...!書き換え時に書き間違えたようです。。。 引数をそこで渡すのですね!迅速にご回答いただき、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問