ここから本文です

javaのメソッド あるコードの一部なのですが class Hero implements Cloneable {...

kin********さん

2019/4/1716:46:39

javaのメソッド
あるコードの一部なのですが
class Hero implements Cloneable {
String name; // 名前

int hp; // HP
Sword sword; // 装備している武器

public Hero clone() {
Hero result = new Hero(name);
result.name = this.name;
result.hp = this.hp;
result.sword = this.sword;
return result;
}

public Hero(String name) {
this.name = name;
}

public Sword getSword() {
return sword;
}

public void setSword(Sword sword) {
this.sword = sword;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

}
これとはべつにSwordクラスもあるのですが今回質問したいのは
public Sword getSword() {
return sword;
}
の部分でこのメソッドの部分だけなぜSword というクラス名がついてるのでしょうか

閲覧数:
31
回答数:
2
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

さん

2019/4/1717:08:28

戻り値になるものは何もintやStringだけはありません。
SwordやHeroなどのインスタンスも戻せます。

試しにHeroクラスに次のメソッドを用意してみてください。
public Hero getInstance(){
return this;
}

で外部から呼び出します。
Hero man = new Hero();
man.name = "佐藤";

Hero anotherMan = man.getInstance();
System.out.println(anotherMan.name);
これで佐藤が表示されます。

getInstanceの戻り値がHeroだから下記のような呼び出し方ができます。
「Hero anotherMan = man.getInstance();」

  • 質問者

    kin********さん

    2019/4/1717:47:00

    型がHeroだとなにかメリットがあるのでしょうか?また本題からそれてしまうのですがreturn this の操作がなにを行なっているか教えてください

  • その他の返信(2件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

ベストアンサー以外の回答

1〜1件/1件中

key********さん

2019/4/1716:53:14

public String getName() {
return name;
}

に String が付いているのと同じです。

こちらが不思議じゃないなら、Swordも不思議ではないはず。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる