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

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

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

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

Q&A

解決済

6回答

347閲覧

javaの呼び出しメソッドについて

n_h_92

総合スコア7

Java

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

0グッド

0クリップ

投稿2018/06/22 04:18

javaの呼び出しメソッドについて

戻り値があるメソッドを呼び出す際、呼び出し元では戻り値の型に合わせて変数を用意しなくても良いのですか?

例えば、int型の変数を返すメソッド"test"を呼び出す際、呼び出し元では

int aaa = test()

とせずに

test()

としても問題ないのでしょうか?

もし問題ない場合、メソッド"test"によって返された戻り値は呼び出し元ではどのように解決されるのでしょうか?

初歩的な質問になり、恐縮ですが、ご教授いただけると幸いです。

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

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

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

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

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

guest

回答6

0

ベストアンサー

testメソッドを実行したいけど、別に実行結果はいらないというのであれば
test()で実行して全く問題ありません。
この場合、実行結果は何にも解決されません。消えてなくなるだけです。

呼び出し元で実行結果が必要なのであれば、int aaa = test()のようにして
変数に格納して結果を見ればいいです。

戻り値を返すメソッドを呼ぶのに、結果を変数で受けないというのに
違和感を感じてらっしゃるのだと思いますが(違ってたらすみません)、
これは別に特殊なことでもめずらしいことでもありません。

例えば、java.util.List#addや、java.uti.Map#putなども実行結果を返しますが、
結果が不要な場合は、気にせず呼びます。
結果は消えてなくなるだけです。不要なので問題ありません。

Java

1List<String> list = new ArrayList<>(); 2list.add("a"); 3list.add("b"); 4 5Map<String, String> map = new HashMap<>(); 6map.put("id", "001"); 7map.put("name", "foo");

投稿2018/06/22 07:10

root_jp

総合スコア4666

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

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

0

int aaa = test()
とせずに
test()
としても問題ないのでしょうか?

結論から先に書くと問題ありません。
メソッドの実行結果を受け取ることは、必須ではありません。

もし問題ない場合、メソッド"test"によって返された戻り値は呼び出し元ではどのように解決されるのでしょうか?

どのように解決されるのか? の解決という部分が理解出来なかったのですが、上記の記載通り、戻り値を変数などに格納することは必須ではありません。
もちろん、変数などに格納しなければその値を使うことは出来ません。

なんとなくですが、質問されている本質が私には見えていないので、質問の回答しか出来ておりませんがこれで解決出来れば幸いです。

投稿2018/06/22 04:28

YasuhiroMiyake

総合スコア1336

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

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

n_h_92

2018/06/22 06:55

解決されるというよりどのように扱われるかという言い方のほうが適切ですね。 maisumakun様のおっしゃる通り、ただ捨てられるという認識で問題ないですかね?
YasuhiroMiyake

2018/06/25 00:32

はい、捨てられるという表現でも特に差し支えないと思います。 今回の例以外で、メモリリークなどの話が今後出てくると少し話が変わってくるかもしれませんが、それはまだ先の話なので。
guest

0

test()としても問題ないのでしょうか?

はい、問題ありません。

返された戻り値は呼び出し元ではどのように解決されるのでしょうか?

ただ捨てられるので、呼び出し元では取得できません

投稿2018/06/22 04:25

maisumakun

総合スコア145183

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

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

0

メソッドについて、より深く理解することができました。
皆様、ありがとうございました。

投稿2018/06/27 03:04

n_h_92

総合スコア7

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

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

0

戻り値を変数に代入する必要はありません。代入しなければメモリ上に保持されず、そのまま次の処理に進むだけです。

メソッドは関数とも呼ばれます。これは数学の関数に倣ったものです。が、数学のものと違って、サブルーチンとしての意味もあります。サブルーチンとしてのみ使用するならば戻り値は不要です。

文法上、「値;」とか「式;」という形ならば文として成立します。ですので極論「1;」とか「1 + 2;」といった文も間違いではありません。(コンパイラが無駄を検知して警告することは考えられます。)ですので、処理の過程で利用されない値があっても問題はありません。

ちなみに、C/C++などではメモリ管理がプログラマ負担であるので、確保したアドレスを解放せずに管理外となって資源を圧迫していくということがよくあります。

投稿2018/06/23 16:22

HogeAnimalLover

総合スコア4830

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

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

0

少し質問内容から逸れているかもしれませんが
私が回答してもらった質問に、似た様なものがあったので参考までにどうぞ
Java 戻り値の取り扱いについて

投稿2018/06/22 10:59

michael-ilcsy

総合スコア180

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問