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

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

ただいまの
回答率

90.61%

  • Java

    13530questions

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

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

解決済

回答 6

投稿

  • 評価
  • クリップ 0
  • VIEW 201

n_h_92

score 1

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

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

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

int aaa = test()

とせずに

test()

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

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

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 6

checkベストアンサー

+3

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

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

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

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

List<String> list = new ArrayList<>();
list.add("a");
list.add("b");

Map<String, String> map = new HashMap<>();
map.put("id", "001");
map.put("name", "foo");

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

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

はい、問題ありません。

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

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

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

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/22 15:55

    解決されるというよりどのように扱われるかという言い方のほうが適切ですね。

    maisumakun様のおっしゃる通り、ただ捨てられるという認識で問題ないですかね?

    キャンセル

  • 2018/06/25 09:32

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

    キャンセル

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

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

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 受付中

    計算機のプログラム

    初めて質問投稿します。質問に対して不足している情報などあるかもしれませんが、ご容赦ください。 Javaで簡単な計算機の仕組みを作ろうとしています。 しかし、いざコンパイルしようと

  • 受付中

    for文の判定タイミングとその評価値

    java初心者です。 ArrayListの要素だけfor文を回すプログラムを作成しています。 ArrayList<Integer> test = new ArrayList<I

  • 解決済

    java 画像の表示

    コード import java.applet.Applet; import java.awt.*; public class sample extends Applet{    

  • 解決済

    java 戻り値について

    public class test {     public static void main(String[] args){         int [] n = {1, 2, 

  • 解決済

    参照渡しと値渡しの違い、メソッド

    このメソッドではnextidに1を足していますが、javaの本を読んでいたらメソッドを使って値を変更する場合はそれは、その値がある場所を参照している場合のみであって、値そのものを指

  • 解決済

    暗証番号入力のプログラム

    初めてこのサイトを利用するのとjava初心者なので、もし至らない点があればご指摘ください。 暗証番号をキーボードから入力し、正しければ「暗証番号が確認できました」間違っていれば「

  • 解決済

    javaの再利用について

    javaの質問です。   mport java.io.BufferedReader; import java.io.IOException; import java.io

  • 解決済

    Java メソッドで出力がない時はvoid必須? 初心者

    Javaの基本構文をさらっただけの初心者です。 Javaで voidという概念について、返り値(出力)がないメソッドにつける、と習いました。 voidの使い方を正しく理

同じタグがついた質問を見る

  • Java

    13530questions

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