2014年01月19日
JavaEEの前に復習をしてみる その11 クラスを分けてみる。
やっと、来ました。クラス分け。
今まで、単一のクラスで全部処理していましたが、
処理を分割したいと思います。
勇者を表すクラスと、アクションを担当するクラスを作ります。
まず、勇者のクラス
package test;
public class Yuusha {
public static void main (String [] args) {
String name = "勇者";
int attackPower = 5;
int damage = ActionLogic. attack(attackPower);
System. out .println("勇者は○○に" +damage +"のダメージを与えた" );
}
}
そして、アクションのクラス
package test;
public class ActionLogic {
public static int attack( int point){
return point*2;
}
}
結果は、
勇者はゴブリンに10のダメージを与えた。
処理の流れとしては、
攻撃力が5の勇者さん。敵にどれくらいのダメージを与えるか計算するクラスを
「ActionLogic」としました。そして、そのメソッドに「attack」を作って、
int damage = ActionLogic. attack(attackPower);
damageは、ActionLogicのattackというメソッドに、attackPowerの値を渡してね。
public static int attack( int point){
return point*2;
attackPowerの値を、pointという変数で受け取って、2倍した値を返します。
そして、返された値の 10 が damageに入ります。
そして、出力される結果は、「勇者はゴブリンに10のダメージを与えた。」となるわけです。
カプセル化とかが出てくると、こんなコードは書けない(セキュリティ上)のですが、
まずは、他のクラスを動かして値を取得できるといった動きの確認でした。
今まで、単一のクラスで全部処理していましたが、
処理を分割したいと思います。
勇者を表すクラスと、アクションを担当するクラスを作ります。
まず、勇者のクラス
package test;
public class Yuusha {
public static void main (String [] args) {
String name = "勇者";
int attackPower = 5;
int damage = ActionLogic. attack(attackPower);
System. out .println("勇者は○○に" +damage +"のダメージを与えた" );
}
}
そして、アクションのクラス
package test;
public class ActionLogic {
public static int attack( int point){
return point*2;
}
}
結果は、
勇者はゴブリンに10のダメージを与えた。
処理の流れとしては、
攻撃力が5の勇者さん。敵にどれくらいのダメージを与えるか計算するクラスを
「ActionLogic」としました。そして、そのメソッドに「attack」を作って、
int damage = ActionLogic. attack(attackPower);
damageは、ActionLogicのattackというメソッドに、attackPowerの値を渡してね。
public static int attack( int point){
return point*2;
attackPowerの値を、pointという変数で受け取って、2倍した値を返します。
そして、返された値の 10 が damageに入ります。
そして、出力される結果は、「勇者はゴブリンに10のダメージを与えた。」となるわけです。
カプセル化とかが出てくると、こんなコードは書けない(セキュリティ上)のですが、
まずは、他のクラスを動かして値を取得できるといった動きの確認でした。
【Javaの最新記事】
この記事へのコメント
こんばんはー。
スコープも、本当に苦手。やっぱり変なプログラミングが頭に染みついているせいで、オブジェクト指向のプログラミングに抵抗があるんですよね。
シェルスクリプトみたいに一個にわーーーっと書くようなのが染みついています。
(シェルスクリプトだって、対したの作れないくせに)
セキュリティプログラミングって、仕事でプログラミングをする以上は、皆さんが当たり前に行っていることで、それが実務経験のない自分には、なかなか定着しないんですよね。
じゃ、いつpublicなの?(今でしょ・・・ではない)getterとsetterが乱立しているけど、これでいいの?とか、細かい疑問がわく一方でござります。。。
あー、早く実務を・・・www
こんばんはっ Habitat です
クラス分けは、スコープを理解するうえでも実際にやってたほうが早く理解できそうですよねっ
Java はどうかわかりませんが、C#や、VB.NET ではファイルに分けて
同じ Using(package) で扱えばアクセス可能なはず・・
おっしゃるとおり、精度を上げていけばセキュリティの観念から Public は乱発できないんですが、
出来る出来ないを見極めるって意外と知らないまま進んじゃうことあるんで、すごく意味があると思います。。