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

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

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

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

Q&A

解決済

2回答

3584閲覧

抽象メソッドの引数リストの使い方がわかりません。。。

Roel

総合スコア7

Java

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

0グッド

0クリップ

投稿2015/07/31 01:04

今下記のようなプログラムを大学の問題で以下のようなものがでたのですが、引数リストについてよくわからないので、どういう時に使い、どういう動きをするのか教えてくださいm(_ _)m

public abstract void attack(RPGCharacter c);
/RPGCharacterというクラスの中に上記文が書いてあります。/

太字のところがよくわかりません。
RPGCharacterのあとについているcはなんなのか教えて頂けると幸いです。

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

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

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

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

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

guest

回答2

0

ベストアンサー

メソッドの中で使う識別子です.
attackメソッドを起動する際にRPGCharacterを渡す必要がありますが,
その渡したRPGCharacterインスタンスにアクセスするために,メソッドの中でcという名前を使いますよ,という宣言になります.
ご提示の例は抽象メソッドなので引数のcは使われていませんが,
RPGCharacterが「ダメージを受ける」メソッドgetDamageを持つとして,
何らかのクラスで次のように実装されたとします.

java

1public void attack(RPGCharacter c){ 2 c.getDamage(10); 3}

これで,attackメソッド起動時に渡したRPGCharacterに「10ダメージ与える」という操作が記述できることになります.

投稿2015/07/31 01:19

swordone

総合スコア20649

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

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

Roel

2015/07/31 01:24

ありがとうございました! 自分の行っている大学の教授より簡潔でわかりやすくて助かりました!
swordone

2015/07/31 01:42

注意しなければならないのは,この抽象メソッドをオーバーライドする際に,「識別子まで一致している必要はない」ということです. 今説明のために記述した上記のコードで,識別子を抽象メソッドと同じcとしましたが, 別にこれはaでもopでも,識別子のルールに従っていればなんでも構わないのです. なのでこの抽象メソッドで使われているcには大して意味はありません(メソッドの文法上置いているに過ぎない). ただ,それではこの抽象メソッドの利用者がどういう意図の引数なのかがわかりにくくなるので,「その引数がどういった意図の引数なのか」を表す言葉になるように識別子を設定している場合が多いです.
guest

0

java

1int i = 0;

これのiはint型の変数ですよね。

これと同じで、cはRPGCharacter型の変数です。

メソッドattackは(攻撃対象でしょうか?)RPGCharacter型の変数を一つとりますという宣言に
なります。abstract 指定がありますので、メソッドの詳細はサブクラスを見てくださいという指定
もしています。

投稿2015/07/31 01:16

iwamoto_takaaki

総合スコア2883

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問