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

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

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

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

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

Q&A

解決済

1回答

1803閲覧

複数クラスのコンパイルを実行したい(JDK11 MacOS)

harry_ilbon

総合スコア5

Java

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

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

0グッド

0クリップ

投稿2020/12/05 09:42

「JavaCalc」というフォルダにて「Calc.java」「CalcLogic.java」の2つのファイルを作成しました。それぞれのコードは下記の通りです。

・Calc.java

<コード>

public class Calc {
public static void main(String[] args){
int a = 10;
int b = 2;
int total = tasu(a, b);
int delta = hiku(a,b);
System.out.println("足すと" + total + "、引くと" + delta);

}
}

・CalcLogic.java
<コード>
public class CalcLogic {
public static int tasu(int a, int b){
return(a + b);
}
public static int hiku(int a, int b){
return (a - b);
}
}

<狙い>
別のクラスからメソッドを呼び出す。

<質問>
本の内容に従ってコマンドプロンプトにて「javac Calc.java CalcLogic.java」と打つと、エラーが出てしまいコンパイルを実行できませんでした。

<コマンドプロンプト>
Last login: Sat Dec 5 18:22:04 on ttys001
user@usermac ~ % cd Desktop
user@usermac Desktop % ls
JavaCalc JavaTest
user@usermac Desktop % cd JavaCalc
user@usermac JavaCalc % ls
Calc.java CalcLogic.java
user@usermac JavaCalc % javac Calc.java CalcLogic.java
Calc.java:5: エラー: シンボルを見つけられません
int total = tasu(a, b);
^
シンボル: メソッド tasu(int,int)
場所: クラス Calc
Calc.java:6: エラー: シンボルを見つけられません
int delta = hiku(a,b);
^
シンボル: メソッド hiku(int,int)
場所: クラス Calc
エラー2個
user@usermac JavaCalc %

Calc.javaにはtasu(),hiku()が存在しないのでエラーの内容は理解できるのですが、本旨の狙い通り
別のクラスからメソッドを呼び出すにはどのようにすればよろしいでしょうか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

別のクラスからメソッドを呼び出すにはどのようにすればよろしいでしょうか?

今回のケースで言えば、tasu()hiku()も、
CalcLogicクラスの、public、かつstaticなメソッドなので、
以下のように呼び出すことができます。

java

1int total = CalcLogic.tasu(a, b); 2int delta = CalcLogic.hiku(a,b);

実行すると、↓こうなりました。

足すと12、引くと8

[追記]
ちなみに、もし呼び出したいメソッドがstaticじゃない場合は、
呼び出す前に、インスタンスを生成する必要があります。

java

1public class CalcLogic { 2 ... 3 public int kakeru(int a, int b){ 4 return a * b; 5 } 6} 7 8public class Calc { 9 public static void main(String[] args){ 10 ... 11 12 CalcLogic logic = new CalcLogic(); 13 int prod = logic.kakeru(a, b); 14 System.out.println("かけると" + prod); 15 } 16}

投稿2020/12/05 11:21

編集2020/12/05 11:30
gpsoft

総合スコア1323

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

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

harry_ilbon

2020/12/05 12:09

上手くコンパイルと実行ができました! メソッドが関係していたんですね…。 その辺の知識がまだ浅いので突き詰めていきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問