Created
October 11, 2011 11:45
-
-
Save risou/1277887 to your computer and use it in GitHub Desktop.
カプセル化例
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class TwoDimensionsPoint { | |
private double x; | |
private double y; | |
public void setX(double x) { | |
this.x = x; | |
} | |
public double getX() { | |
return this.x; | |
} | |
public void setY(double y) { | |
this.y = y; | |
} | |
public double getY() { | |
return this.y; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class TwoDimensionsPoint { | |
public double x; | |
public double y; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
たとえば二次元空間上のある座標の位置を保持するクラスがあったとして、 | |
座標情報を直交座標系で保有しているとする。この場合、フィールドはXとYになる。 | |
ある事情で座標情報を極座標系(θとr)に変えることになった。 | |
このときカプセル化されていない(nonencapsuled.java)だと、 | |
XとYにアクセス(代入or参照)してる全ての箇所に変更が入ることになる。 | |
カプセル化されている(encapsuled.java)と、 | |
内部のデータがrとθに変わっても、setX(),getX(),setY(),getY()の中で | |
極座標⇔直交座標の変換ロジックを入れれば、 | |
このクラスの外に一切修正が必要ない。 | |
これが「データの形式を簡単に変更できる」ということです。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment