アフィリエイト広告を利用しています


スキル無しのシステムインストラクターから、システムエンジニアへの転身日記。
◇◆◇ 2013年取得資格
LPICレベル1
LPICレベル2
LPICレベル3 Core
LPICレベル3 Speciality 302
LPICレベル3 Speciality 303
LPICレベル3 Speciality 304

Cisco CCENT
Cisco CCNA

Java SE 7 Silver
Java SE 7 GOLD

OSS-DB Silver

◇◆◇ 2014年取得資格
HTML5 Professional レベル1

広告

posted by fanblog

JavaEEの前に復習をしてみる その9 メソッドを分けてみる。

JavaEEの前に復習をしてみる その6で、Shadeがスイッチ文で行動を分岐しました。
それを一つのメソッドの中に処理を全部書くと、とても見づらいですし、
1つの処理を直すために、全部の処理を書き直す。なんてことになります。
なので、まず、メソッドを分けることについて考えます。

今までだと、1つのクラスの中に、1つのメソッドでしたが、
1つのクラスに4つのメソッドを入れてみます。

mainメソッドと、attackメソッドと、defenceメソッドと、recoveryメソッドです。

package test;

public class Renshu3{
String job = "勇者" ;
static String name = "Shade" ;
static int hitpoint = 10;
static int maxHitpoint = 20;
int at = 5;
static int df = 5;

public static void main (String [] args){
System. out .println( "1.攻撃 / 2.防御 /3.回復" );
int select = new java.util.Scanner(System. in ).nextInt();
switch (select){
case 1:attack( "ゴブリン" );
break ;
case 2:defence();
break ;
case 3:recovery();
default :System.out .println ("なにもしなかった。" );
}
}

public static void attack(String enemyName){
System. out .println(enemyName+ "に攻撃!" );
}

public static void defence(){
System. out .println( name +"は身を守っている。" );
df = df * 2;
}

public static void recovery(){
System. out .println( name +"は、けがの治療に専念した。" );
hitpoint = maxHitpoint ;
}


}



その6ではケースごとに、コンソールへ結果を出力していましたが。
ケースごとに、メソッドを呼び出すことによって、そのメソッドの内部のコードを処理させています。
それぞれ役割が別れているため、コードも見やすいですし、対象メソッドの中身だけ修正すれば、
mainメソッドの中身は変える必要がないのです。

また、
case 1:attack( "ゴブリン" );
メソッドを実行させる際に、値を持たせることができます。

public static void attack(String enemyName){
System. out .println(enemyName+ "に攻撃!" );

メソッド側で、その値を受け取って処理を継続させることもできます。

結果は、下記のように。

1.攻撃 / 2.防御 /3.回復
1
ゴブリンに攻撃!


ここまでの知識で、ある程度のプログラムは組めるような気がしてきますが、
このプログラムはJavaらしさ0です。上司にこのプログラムを見せて、プラグラミングやらせてください!
とか言ったら、お前はインフラにずっといるがよい。フハハハハ!!という魔王並みの発言をされますね。(※ そんな上司はいません)
正直、オブジェクト指向は、あまり得意ではありません。復習と同時に得意にならねばならないな・・・。

トラックバック

この記事へのトラックバックURL
※ブログオーナーが承認したトラックバックのみ表示されます。
https://fanblogs.jp/tb/2006070

コメント

お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのコメント

はびさん、こんばんはー。
一個前の記事、名無しでコメントしてしまいました・・・。
名無しOKになっている・・・。

メソッドは極力分けませんとね、何がなんだかわからなくなりますからね、
確かにネーミングは、センスが問われますよね。
英語ができる人とできない人でも差が出てきます。
google翻訳先生大活躍です。たまに、おかしなのでてきますがw

継承・・・この辺、一番苦手です。がっつり、おさらいしないといけませんな。
shade|2014年01月25日(Sat) 15:57
Shade さん

こんばんはっ Habitat ですっ

おっ すこし、オブジェクト指向っぽくなってきました。。

メソッドで細分化して助かるのはその、苗床wwのクラスで、
他のクラスと同じ名前が遠慮なく使えるところですね
そのおかげで、例に出てるようにシンプルでわかりやすい名前が振れるし。。
(結構PG組んでて困るのが、関数のネーミングだったりする)

継承使わない方針で行くんだったら、上位メソッドはごそっとコピー効くしねww
Habitat|2014年01月19日(Sun) 22:33
   
×

この広告は30日以上新しい記事の更新がないブログに表示されております。