良いコ-ドへの道―普通のプログラマのためのステップアップガイド
第3回 スコープを意識したプログラミング―その3 インスタンスメソッドの可視性
2008年11月6日
初出:WEB+DB PRESS Vol.46(2008年8月23日発売)
インスタンスメソッドの可視性
インスタンスメソッドとはインスタンスに属するメソッドです。Javaでは,
メソッドの引数の情報量
スコープから少し話はずれますが,
例を見てみましょう。以下はどちらも社員情報を取得するメソッドですが,
public Employee getEmployee(Integer empId) {
return empDao.findById(empId);
}
public Employee getEmployee(Employee emp) {
return empDao.findById(emp.getId());
}
一般的に
メソッドを利用する側から見ると,
上記のような問題から,
ただし,
staticメソッド
staticメソッド
フィールド変数から見ると,
リスト6 インスタンスメソッドの場合
private int count;┓
...|
private String regexGroup(String regex) { |変数countのスコープ
// フィールドにアクセス可能|
return "(" + regex + ")";|
}|
...┛
リスト7 staticメソッドに変更した場合
private int count; ┓
... ┛変数countのスコープ
private static String regexGroup(String regex) {
// フィールドにアクセス不可
return "(" + regex + ")";
}
... ―変数countのスコープ
COLUMN Javaのアクセサメソッドが冗長である件について
JavaやObjective-C 1.
Java 7でプロパティがサポート予定
C#やECMAScript第4版
Javaの次期バージョンJava 7でも,
フレームワークにおけるpublicフィールドのサポート
Seasar2やS2JDBC,
リストc Java 7のプロパティ
public property int count1; // 読み書き可能プロパティ
public property int count2 get; // 読み込み可能プロパティ
public property int count3 set; // 書き込み可能プロパティ
// ①ユーザ定義プロパティ
private int count4_;
public property int count4
get {
return count4_;
}
set {
count4_ = count4;
};
バックナンバー
良いコ-ドへの道―普通のプログラマのためのステップアップガイド
- 最終回 配列/コレクションを利用した抽象化―その5 Step4:配列/コレクション化して抽象化する
- 最終回 配列/コレクションを利用した抽象化―その4 Step3:関連のあるデータをオブジェクトに
- 最終回 配列/コレクションを利用した抽象化―その3 Step2:可読性を高めるためのメソッドの抽出
- 最終回 配列/コレクションを利用した抽象化―その2 Step1:ベタなコードで書いてみる
- 最終回 配列/コレクションを利用した抽象化―その1 配列/コレクションって何?
- 第5回 メタプログラミング―Excelを使ったDSLを作ろう―その4 Step3:リフレクションAPIで変換ルールを動的に適用する
- 第5回 メタプログラミング―Excelを使ったDSLを作ろう―その3 Step2:メタ情報をExcelに移動する
- 第5回 メタプログラミング―Excelを使ったDSLを作ろう―その2 Step1:ベタなコードで書いてみる
- 第5回 メタプログラミング―Excelを使ったDSLを作ろう―その1 メタプログラミングとは?
- 第4回 コードの分割―その6 Step4:クラスに分割する