public class Point {
// フィールド
private double x;
private double y;
// コンストラクタ
public Point(double x, double y) {
this.x = x;
this.y = y;
}
// x座標ã®å–å¾—
public double getX() {
return x;
}
// x座標ã®è¨å®š
public void setX(double x) {
this.x = x;
}
// y座標ã®å–å¾—
public double getY() {
return y;
}
// y座標ã®è¨å®š
public void setY(double y) {
this.y = y;
}
}
ã“ã®ä¾‹ã§ã¯ã€Point クラス㌠x 座標㨠y åº§æ¨™ã‚’ä¿æŒã—ã€ãれらをå–得・è¨å®šã™ã‚‹ãŸã‚ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’æä¾›ã—ã¦ã„ã¾ã™ã€‚main メソッド内ã§ã¯ã€æ–°ã—ã„ Point オブジェクトを作æˆã—ã€åº§æ¨™ã‚’表示ã—ã¦ã„ã¾ã™ã€‚ã“れを基ã«ã€ä»–ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚„æ©Ÿèƒ½ã‚’è¿½åŠ ã—ã¦ã¿ã¦ãã ã•ã„。
クラスã®ä½œæˆ
ã“ã®ã€Œ2D座標を表ã™Pointクラスã€ã®ä¾‹ã‚’通ã—ã¦ã€ã‚¯ãƒ©ã‚¹ã®åŸºæœ¬çš„ãªä½œæˆæ‰‹é †ã‚„è¦ç´ ã«ã¤ã„ã¦è§£èª¬ã—ã¾ã™ã€‚
1. フィールドã®å®šç¾©:
private double x;
private double y;
Pointクラス内ã§xã¨yã¨ã„ã†äºŒã¤ã®ãƒ—ライベートãªãƒ•ィールドを定義ã—ã¾ã—ãŸã€‚ã“れらã®ãƒ•ィールドã¯doubleåž‹ã§ã€ã‚¯ãƒ©ã‚¹å†…ã‹ã‚‰ã®ã¿ã‚¢ã‚¯ã‚»ã‚¹å¯èƒ½ã§ã™ã€‚データã®ã‚«ãƒ—セル化ãŒè¡Œã‚れã¦ã„ã¾ã™ã€‚
2. コンストラクタã®ä½œæˆ:
public Point(double x, double y) {
this.x = x;
this.y = y;
}
Pointクラスã«ã¯ã€å¼•æ•°ã‚’å—ã‘å–りãれをxã¨yフィールドã«è¨å®šã™ã‚‹ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ãŒã‚りã¾ã™ã€‚ã“ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã¯ã€ã‚ªãƒ–ジェクトãŒç”Ÿæˆã•れるã¨ãã«å‘¼ã³å‡ºã•れã€åˆæœŸã®åº§æ¨™ã‚’è¨å®šã—ã¾ã™ã€‚
3. メソッドã®ä½œæˆ:
public double getX() {
return x;
}
public void setX(double x) {
this.x = x;
}
public double getY() {
return y;
}
public void setY(double y) {
this.y = y;
}
getX()ãŠã‚ˆã³getY()メソッドã¯ã€ãれãžã‚Œx座標ã¨y座標をå–å¾—ã—ã¾ã™ã€‚setX(double x)ãŠã‚ˆã³setY(double y)メソッドã¯ã€æ–°ã—ã„座標をè¨å®šã—ã¾ã™ã€‚ã“れらã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯voidã‚’è¿”ã™ãŸã‚ã€å€¤ã‚’è¿”ã•ãšã«åº§æ¨™ã‚’æ›´æ–°ã—ã¾ã™ã€‚
ã“ã®ä¾‹ã‚’通ã—ã¦ã€ã‚¯ãƒ©ã‚¹ã®æ§‹æˆè¦ç´ (フィールドã€ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã€ãƒ¡ã‚½ãƒƒãƒ‰ï¼‰ãŒã©ã®ã‚ˆã†ã«æ©Ÿèƒ½ã™ã‚‹ã‹ã‚’ç†è§£ã§ãã‚‹ã§ã—ょã†ã€‚実際ã«ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã—ã¦ã€è‡ªåˆ†ã®æ‰‹ã§å‹•ã‹ã—ã¦ã¿ã‚‹ã“ã¨ãŒé‡è¦ã§ã™ã€‚
getterã¨setter
「getterã€ã¨ã€Œsetterã€ã¯ã€ã‚ªãƒ–ジェクト指å‘プãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ï¼ˆOOP)ã«ãŠã„ã¦ã€ã‚¯ãƒ©ã‚¹ã®ãƒ•ィールド(データメンãƒï¼‰ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ãŸã‚ã®ãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“れらã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€ãƒ‡ãƒ¼ã‚¿ã®ã‚«ãƒ—セル化(Encapsulation)ã®ä¸€ç’°ã¨ã—ã¦ã€ç›´æŽ¥çš„ãªãƒ•ィールドã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’制é™ã—ã€ã‚¯ãƒ©ã‚¹ã®å†…部ã§ãƒ‡ãƒ¼ã‚¿ã‚’安全ã«å–å¾—ãŠã‚ˆã³å¤‰æ›´ã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã•れã¾ã™ã€‚
Getter(ゲッター)
「getterã€ã¯ã€ã‚¯ãƒ©ã‚¹ã®ãƒ•ィールドã®å€¤ã‚’å–å¾—ã™ã‚‹ãŸã‚ã®ãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚通常ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãƒ¡ã‚½ãƒƒãƒ‰å㌠get ã§å§‹ã¾ã‚Šã€ãã®å¾Œã«å–å¾—ã—ãŸã„フィールドåãŒç¶šãã¾ã™ã€‚
public class Example {
private int number;
// Getterメソッド
public int getNumber() {
return number;
}
}
ã“ã®ä¾‹ã§ã¯ã€getNumber() メソッド㌠number フィールドã®å€¤ã‚’è¿”ã—ã¾ã™ã€‚外部ã®ã‚¯ãƒ©ã‚¹ã‹ã‚‰ã¯ã€getNumber() メソッドを通ã˜ã¦ number ã®å€¤ã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã™ã€‚
Setter(セッター)
「setterã€ã¯ã€ã‚¯ãƒ©ã‚¹ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã«æ–°ã—ã„値をè¨å®šã™ã‚‹ãŸã‚ã®ãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚通常ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãƒ¡ã‚½ãƒƒãƒ‰å㌠set ã§å§‹ã¾ã‚Šã€ãã®å¾Œã«è¨å®šã—ãŸã„フィールドåãŒç¶šãã¾ã™ã€‚
public class Example {
private int number;
// Setterメソッド
public void setNumber(int newNumber) {
this.number = newNumber;
}
}
ã“ã®ä¾‹ã§ã¯ã€setNumber(int newNumber) メソッド㌠number ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã«æ–°ã—ã„値をè¨å®šã—ã¾ã™ã€‚外部ã®ã‚¯ãƒ©ã‚¹ã‹ã‚‰ã¯ã€setNumber() メソッドを通ã˜ã¦ number ã®å€¤ã‚’変更ã§ãã¾ã™ã€‚
Getterã¨Setterã®åˆ©ç‚¹:
- データã®éš 蔽ã¨ã‚«ãƒ—セル化: フィールドãŒãƒ—ライベートã§ã‚ã‚‹ãŸã‚ã€å¤–部ã®ã‚¯ãƒ©ã‚¹ã¯ç›´æŽ¥ã‚¢ã‚¯ã‚»ã‚¹ã§ããšã€ã‚¯ãƒ©ã‚¹å†…ã§ãƒ‡ãƒ¼ã‚¿ã‚’éš è”½ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
- ãƒ‡ãƒ¼ã‚¿ã®æ¤œè¨¼ã¨åˆ¶å¾¡: Setterを使用ã—ã¦æ–°ã—ã„値をè¨å®šã™ã‚‹éš›ã«ã€å€¤ã®æ¤œè¨¼ã‚„ç‰¹å®šã®æ¡ä»¶ã‚’é©ç”¨ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€ä¸æ£ãªå€¤ã®è¨å®šã‚’防ãã“ã¨ãŒã§ãã¾ã™ã€‚
- 柔軟性ã¨ä¿å®ˆæ€§ã®å‘上: 内部ã®å®Ÿè£…ãŒå¤‰æ›´ã•れãŸã¨ã—ã¦ã‚‚ã€å¤–部ã®ã‚¯ãƒ©ã‚¹ã¯åŒã˜ãƒ¡ã‚½ãƒƒãƒ‰ã‚’使用ã—ç¶šã‘ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€å¤‰æ›´ãŒç™ºç”Ÿã—ã¦ã‚‚ä»–ã®ã‚³ãƒ¼ãƒ‰ã¸ã®å½±éŸ¿ãŒæœ€å°é™ã«æŠ‘ãˆã‚‰ã‚Œã¾ã™ã€‚
- コードã®å¯èªæ€§å‘上: メソッドåãŒç›´æ„Ÿçš„ã§ã€æ„å‘³ãŒæ˜Žç¢ºã«ãªã‚Šã¾ã™ã€‚コードãŒèªã¿ã‚„ã™ããªã‚Šã€ä»–ã®é–‹ç™ºè€…ãŒç†è§£ã—ã‚„ã™ããªã‚Šã¾ã™ã€‚
ã“れらã®åˆ©ç‚¹ã«ã‚ˆã‚Šã€getterã¨setterã¯åŠ¹æžœçš„ãªã‚ªãƒ–ジェクト指å‘プãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã®å®Ÿè·µã¨ã—ã¦åºƒã使用ã•れã¦ã„ã¾ã™ã€‚
「007 クラスã€å•題集リスト
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™


コメント