18
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【ポケモン×Java】知識編 メソッド#1 引数と戻り値ってなに?基本の4パターンを完全整理!

Posted at

◆ はじめに

▷「こうげき!」ってどうやって実現してるの?

Javaで「ポケモンが攻撃する」動きを作るとき、 ただ「でんこうせっか!」と
表示するだけじゃなくて、「誰に?」「どの技で?」「どれくらいのダメージ?」
といった情報が必要だよね。

そのときに活躍するのが 引数戻り値 なの!


◆ メソッドの基本形

戻り値の型 メソッド名(引数) {
    // 処理
    return 戻したい値;
}

例:

int getHp() {
    return hp;
}
  • int … 返り値の型
  • getHp … メソッド名
  • () … 引数 (なし)
  • return hp; … 戻り値

◆ 引数と戻り値ってなに?

用語 意味 書き方 たとえると?
引数 メソッドに渡す
「材料」
メソッド名の後ろの
(  )内に記載
「ゼニガメを攻撃して!」の
“ゼニガメ”部分
戻り値 メソッドから返す
「結果」
メソッド名の前に
戻り値の型を記載
戻す場合はreturnを記載
「ダメージは20だったよ!」

◆ パターンは、こう分けられる

ポイントは2つ:

  • 呼び出すときに「材料が必要か?」
  • 結果を「返してほしいか?」

◆ 4つのパターンのサンプル

◯パターン1:引数なし/戻り値なし

void cry() {
    System.out.println("ピカチュウ「ピッカー!」");
}
  • 情報もらわない。(引数:なし)
  • 結果も返さない(戻り値の型:void

◯パターン2:引数あり/戻り値なし

void attack(String enemyName) {
    System.out.println(name + "は " + enemyName + " に でんこうせっか!");
}
  • 情報をもらって、処理する(引数:String
  • でも結果は必要ない(戻り値の型:void

◯パターン3:引数なし/戻り値あり

int getHp() {
    return hp;
}
  • 情報を依頼しない(引数:なし)
  • 自分の情報だけ返してくれる(戻り値の型:int

◯パターン4:引数あり/戻り値あり

int calculateDamage(String moveType, int basePower) {
    if (moveType.equals("でんき") && opponentType.equals("みず")) {
        return basePower * 2;
    }
    return basePower;
}
  • 材料を使って計算(引数:Stringint
  • 計算結果を返す(戻り値の型:int

◆ なぜ分けるの?

使い分けるのには、必ず目的がある!!

  • 情報を使わないのに引数があるとごちゃごちゃ
  • 結果を使わないのに戻り値があると無駄

「何のためのメソッドか」を考えながら作ると、 自然とパターンを選べるよ!


あとがき

ここまで読んでくれて、本当にありがとうございました。

「プログラミングって難しい…」って思ってた人も、
「ちょっと楽しいかも…!」って思ってもらえたらうれしいな。

次の投稿も、よろしくおねがいします。

💬 コメント・フィードバック歓迎!

「この章わかりやすかった!」
「これ表現まちがってない?」
「次は○○をやってほしい!」などなど、
お気軽にコメントで教えてくださいね!


18
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?