
3åéããã°ã©ãã³ã°è¬åº§ 第4å: ã¯ã©ã¹ã®ãç§å¯ããšãçªå£ãïœã«ãã»ã«åïœ
ç»å Žäººç©ïŒ
ãã£ããå çïŒéç§°:å çïŒïŒ ãªããžã§ã¯ãæåãã¹ã¿ãŒãæ®æ®µã¯åªãããããŸã«ãŠãŒã¢ã¢ã亀ããªãã解説ã
ããã婿ïŒéç§°:ãããåïŒïŒ ããã°ã©ãã³ã°ãå§ããã°ããã®è¥æãçŽ æŽãªçåãæããããã®ãåŸæã
ãããåïŒ å çã仿¥ã¯ãã«ãã»ã«åãã«ã€ããŠæããŠããããã§ãããïŒãå éšã®ç§å¯ã¯é ããŠãå¿ èŠãªéšåã ããå€ã«èŠãããã£ãŠããªãã ãã¹ãã€æ ç»ã¿ããã§ã¯ã¯ã¯ã¯ããŸãïŒ
å çïŒ ãããããããåããã衚çŸã ãïŒãŸãã«ãã®ãé ãããšããèãæ¹ãã仿¥ã®ããŒããã«ãã»ã«åãã®æ žå¿ã ãããªããžã§ã¯ãæåã®äžå€§èŠçŽ ïŒã«ãã»ã«åãç¶æ¿ãããªã¢ãŒãã£ãºã ïŒã®äžã€ã§ããšãŠã倧åãªæŠå¿µãªãã ã
ãããåïŒ äžå€§èŠçŽ ïŒãããªã«éèŠãªãã§ããïŒ
å çïŒ ããã ããååã¯ãåäžè²¬ä»»ã®ååãã§ãã¯ã©ã¹ã®åœ¹å²ãæç¢ºã«åããããšã®éèŠæ§ãåŠãã ããã«ãã»ã«åã¯ããããã£ãŠåããã¯ã©ã¹ãããäºãã«å®å šã«ããããŠå¹ççã«ããåãããããã®ä»çµã¿ãªãã ã
ã«ãã»ã«åãšã¯ïŒïœãé èœããšãå ¬éãïœ
å çïŒ ãŸããã«ãã»ã«åãçè§£ããããã«ã身è¿ãªäŸãèããŠã¿ããããããåããã¬ãã®ãªã¢ã³ã³ãæ³åããŠã¿ãŠã
ãããåïŒ ã¯ãããããŸãïŒãã£ã³ãã«å€ããããé³éå€ãããã§ããŸãããã
å çïŒ ãã®éãããªã¢ã³ã³ã®ãã¿ã³ãæŒããšããã¬ããã¡ãããšåããããã§ãããªã¢ã³ã³ã®ãäžèº«ããã©ããªã£ãŠããããç¥ã£ãŠããããïŒäžã«ã©ããªåè·¯ããã£ãŠãã©ããªé»æ°ä¿¡å·ãéãããŠãããã
ãããåïŒ ããŒããå šç¶ç¥ããªãã§ãããã¿ã³ãæŒãã°åããããå¥ã«ç¥ããªããŠãå°ããªãã§ãïŒ
å çïŒ ãŸãã«ãããã«ãã»ã«åã®èãæ¹ãªãã ïŒ
å çïŒ ãªã¢ã³ã³ã¯ã
è€éãªå éšã®ä»çµã¿ïŒåè·¯ã黿°ä¿¡å·ïŒããé ããŠãããã
å¿ èŠãªæäœã ããããã¿ã³ããšãã圢ã§å€ã«ãå ¬éãããŠããã
ãããåïŒ ããïŒã ããã誰ã§ãç°¡åã«ãã¬ããæäœã§ãããã§ããïŒäžèº«ãç¥ããªããŠã䜿ããïŒ
å çïŒ ãã®éãïŒããã°ã©ãã³ã°ã®ã¯ã©ã¹ãåãã§ã
**ãªããžã§ã¯ãã®æã€ããŒã¿ïŒå±æ§ïŒãããã®ããŒã¿ãæäœãã现ããæé ïŒã¡ãœããã®å éšå®è£ ïŒ**ãšãã£ããç§å¯ãããå€éšããçŽæ¥è§Šããªãããã«ãé èœïŒé ãïŒãããã
ãããŠãå€éšã«å ¬éããŠãå®å šã§ãå¿ èŠã ãšå€æãããæäœã ãããçªå£ïŒã¡ãœããïŒããšããŠæäŸããã
ããããã«ãã»ã«åããšåŒã¶ãã ã
ãªããé èœãããã®ãïŒïœåæã«è§Šããããå°ãïŒïœ
å çïŒ ãªãããããé ãå¿ èŠããããšæãïŒèª°ã§ãèªç±ã«è§Šããæ¹ãã䟿å©ãããªãããªïŒ
ãããåïŒ ããŒãâŠâŠã§ãããªã¢ã³ã³ã®äžèº«ãåæã«ããã£ãããå£ãã¡ããããã§ãããã¬ããå€ãªåãããããâŠâŠã
å çïŒ ãã®éãïŒããã°ã©ã ã§ãåãããšãèµ·ãããã ãäŸãã°ãååã®Carã¯ã©ã¹ã§èããŠã¿ããã
Java
public class Car {
String color; // è²
int speed; // é床
// ... ä»ã®å±æ§ãšã¡ãœãã ...
}
å çïŒ ããspeedãšãã屿§ã誰ã§ãçŽæ¥å€æŽã§ããããã«ããŠããããã©ããªããšæãïŒ
Java
Car myCar = new Car("èµ€", "ããšã¿");
myCar.speed = 1000; // çªç¶ããšãã§ããªãé床ã«ïŒ
ãããåïŒ ãããïŒãããªãæé1000kmã«ïŒïŒããã ãšãaccelerate()ã¡ãœããã§ã¡ãããšæ®µéçã«å éããæå³ããªããªã£ã¡ãããŸããïŒå±ãªãïŒ
å çïŒ ãã®éããåæã«ããŒã¿ãæžãæããããããæ³å®å€ã®æäœãããããšãããã°ã©ã ã®æŽåæ§ãå£ããŠããŸãããŸãã§ããã¬ãã®ãªã¢ã³ã³ã®é»æ± ãå ¥ãæ¿ããã€ããããäžã®åºç€ããã¡ããã¡ãã«ããŠããŸããããªãã®ã ãã
å çïŒ ã ãããã¯ã©ã¹ã®å éšã«ããããŒã¿ããå€éšã«èŠããã¹ãã§ã¯ãªã现ããåŠçã¯ããprivateïŒãã©ã€ããŒãïŒããšããã¢ã¯ã»ã¹ä¿®é£Ÿåã䜿ã£ãŠãç§å¯ãã«ãããã ãããã§ãåãã¯ã©ã¹å ããããã¢ã¯ã»ã¹ã§ããªãããã«ãªãã
ãçªå£ããšããŠã®ã¡ãœããïœgetterãšsetterïœ
å çïŒ ããããé ããããŒã¿ã«ã¢ã¯ã»ã¹ããããæäœããããããå Žåã¯ã©ãããã°ãããšæãïŒ
ãããåïŒ ãªã¢ã³ã³ã®ãã¿ã³ã¿ããã«ããçªå£ããäœããã§ãããïŒ
å çïŒ ããïŒãã®ãçªå£ããšãªãã®ããå€éšã«å ¬éããã¡ãœãããªãã ãç¹ã«ãããŒã¿ãååŸããããã®ã¡ãœããããgetterïŒã²ãã¿ãŒïŒããããŒã¿ãèšå®ããããã®ã¡ãœããããsetterïŒã»ãã¿ãŒïŒããšåŒã¶ããšãå€ããã
Java
public class Car {
private String color; // privateã«ããŠé ã
private String maker; // privateã«ããŠé ã
private int speed; // privateã«ããŠé ã
// ã³ã³ã¹ãã©ã¯ã¿ïŒãªããžã§ã¯ããäœãæã«å¿
ãå®è¡ãããç¹å¥ãªã¡ãœãã
public Car(String color, String maker) {
this.color = color;
this.maker = maker;
this.speed = 0; // åæé床ã¯0
System.out.println(this.maker + "補ã®" + this.color + "ã®è»ãäœãããŸããïŒ");
}
// color屿§ã®getterïŒè²ãååŸããçªå£ïŒ
public String getColor() {
return this.color;
}
// maker屿§ã®getterïŒã¡ãŒã«ãŒãååŸããçªå£ïŒ
public String getMaker() {
return this.maker;
}
// speed屿§ã®getterïŒé床ãååŸããçªå£ïŒ
public int getSpeed() {
return this.speed;
}
// speed屿§ã®setterïŒé床ãèšå®ããçªå£ïŒ
// é床ã¯äžæ£ãªå€ã«ãªããªããããããã§ãã§ãã¯ã§ããïŒ
public void setSpeed(int speed) {
if (speed < 0) {
System.out.println("ãšã©ãŒ: é床ã¯0æªæºã«ã§ããŸããã");
return; // äžæ£ãªå€ã®å Žåã¯èšå®ããªã
}
if (speed > 300) { // äŸïŒæå€§é床ã300km/hã«å¶é
System.out.println("èŠå: é床ãå¶éãè¶
ããŠããŸãã300km/hã«å¶éããŸãã");
this.speed = 300;
return;
}
this.speed = speed;
System.out.println("é床ã" + speed + "km/hã«èšå®ããŸããã");
}
// accelerateã¡ãœããïŒå éããçªå£ïŒ
public void accelerate(int accelerationSpeed) {
// setSpeedã¡ãœããã䜿ã£ãŠãå®å
šã«é床ãèšå®ã§ãã
setSpeed(this.speed + accelerationSpeed);
// setSpeedå
ã§åºåããŠããã®ã§ãããã§ã¯è¿œå ã®åºåã¯äžèŠ
}
public void brake() {
setSpeed(0); // setSpeedã¡ãœããã䜿ã£ãŠãå®å
šã«åæ¢ç¶æ
ã«ãã
System.out.println(this.maker + "ã®è»ã忢ããŸããã");
}
}
ãããåïŒ ããïŒprivateã£ãŠæžããšå€ããçŽæ¥è§Šããªãããã«ãªããã§ããïŒã§ãgetColor()ãšãsetSpeed()ã䜿ãã°ãå®å šã«ããŒã¿ãèŠããå€ãããã§ãããã ïŒsetSpeed()ã§å€ãªå€ãå ¥ããªãããã«ãã§ãã¯ã§ããã®ããããïŒ
å çïŒ ãã®éãïŒãããã«ãã»ã«åã®å€§ããªã¡ãªããã®äžã€ã ãå éšã®ããŒã¿ãžã®äžæ£ãªã¢ã¯ã»ã¹ãé²ããããŒã¿ã®æŽåæ§ãä¿ã€ããšãã§ãããã ã
å çïŒ ã¡ãªã¿ã«ãcolorã®setterã¯äœããªãã£ãããšã«æ°ã¥ããïŒ
ãããåïŒ ããæ¬åœã§ããïŒãªãã§ããïŒ
å çïŒ è»ã®è²ã¯éåžžã補é åŸã«å€æŽããããšã¯ãªããããããã®ããã«ãå¿ èŠãªçªå£ã ããæäŸãããã®ããã«ãã»ã«åã®éèŠãªèãæ¹ãªãã ãäœã§ãããã§ãgetterãšsetterãäœãå¿ èŠã¯ãªããã ãã
å çïŒ ã§ã¯ãå®éã«ã«ãã»ã«åãããCarã¯ã©ã¹ã®äœ¿ãæ¹ãèŠãŠã¿ããã
Java
public class CarTest {
public static void main(String[] args) {
Car myCar = new Car("èµ€", "ããšã¿"); // ã³ã³ã¹ãã©ã¯ã¿ãåŒã°ãã
// ããã¯æ£ããäœ¿ãæ¹ïŒå
¬éãããã¡ãœããã䜿çšïŒ
System.out.println("è»ã®è²: " + myCar.getColor());
System.out.println("è»ã®ã¡ãŒã«ãŒ: " + myCar.getMaker());
System.out.println("çŸåšã®é床: " + myCar.getSpeed() + "km/h");
myCar.accelerate(50); // å®å
šã«å é (setSpeedå
éšã§åºå)
myCar.setSpeed(30); // å®å
šã«é床ãèšå®ïŒãã§ãã¯ãåãïŒ(setSpeedå
éšã§åºå)
System.out.println("æ°ããé床: " + myCar.getSpeed() + "km/h");
myCar.brake(); // å®å
šã«åæ¢ (setSpeedå
éšã§åºå)
// ããã¯ã³ã³ãã€ã«ãšã©ãŒã«ãªãïŒprivateãªã®ã§å€éšããçŽæ¥ã¢ã¯ã»ã¹äžå¯ïŒ
// myCar.speed = 1000; // ã³ã³ãã€ã«ãšã©ãŒïŒ
// System.out.println(myCar.color); // ã³ã³ãã€ã«ãšã©ãŒïŒ
}
}
å çïŒ ãã®ã³ãŒããå®è¡ãããšã次ã®ãããªçµæã«ãªãã¯ãã ãã
/* å®è¡çµæäŸ:
ããšã¿è£œã®èµ€ã®è»ãäœãããŸããïŒ
è»ã®è²: èµ€
è»ã®ã¡ãŒã«ãŒ: ããšã¿
çŸåšã®é床: 0km/h
é床ã50km/hã«èšå®ããŸãããçŸåšã®é床ã¯50km/hã§ãã
é床ã30km/hã«èšå®ããŸãããçŸåšã®é床ã¯30km/hã§ãã
æ°ããé床: 30km/h
ããšã¿ã®è»ã忢ããŸããã
*/
ãããåïŒ ããïŒprivateã«ãããã®ã¯ãçŽæ¥è§Šãããšãããšãšã©ãŒã«ãªããã§ããïŒ
å çïŒ ãã®éãïŒããã«ãããã³ã³ãã€ã«æç¹ã§äžæ£ãªã¢ã¯ã»ã¹ãé²ãããã ã
ã«ãã»ã«åã®ã¡ãªãããšãã¢ã¯ã»ã¹ä¿®é£Ÿåã
å çïŒ ãã®ã«ãã»ã«åã«ãã£ãŠãã©ããªã¡ãªãããçãŸãããšæãïŒ
ãããåïŒ ããŒãšãåæã«ãããããŠå£ããå¿é ããªããªãïŒããšãäžèº«ãã©ããªã£ãŠãããç¥ããªããŠã䜿ããããã䟿å©ïŒ
å çïŒ çŽ æŽãããïŒãŸãã«ãã®éãã ã
ããŒã¿ã®ä¿è·ãšæŽåæ§ã®ç¶æ: å€éšããã®äžæ£ãªã¢ã¯ã»ã¹ãé²ããããŒã¿ãæå³ããªã圢ã§å€æŽãããã®ãé²ããããã«ãããåžžã«æ£ããç¶æ ãä¿ãŠãã
倿Žãžã®åŒ·ã: å éšã®å®è£ ïŒäŸãã°ãé床ã®èšç®æ¹æ³ïŒã倿ŽããŠããå ¬éããŠããçªå£ïŒã¡ãœããã®ã€ã³ã¿ãŒãã§ãŒã¹ïŒãå€ãããªããã°ããã®ã¯ã©ã¹ã䜿ãåŽã®ã³ãŒãïŒå€éšã®ã³ãŒãïŒãä¿®æ£ããå¿ èŠããªãã
䜿ããããã®åäž: å éšã®è€éããé èœããããšã§ããŠãŒã¶ãŒïŒãã®ã¯ã©ã¹ã䜿ãä»ã®ããã°ã©ããŒïŒã¯ãå ¬éãããã·ã³ãã«ãªçªå£ã ãã䜿ãã°ãããç°¡åã«å©çšã§ããã
ä¿å®æ§ã®åäž: ã¯ã©ã¹ã®å éšãšå€éšã®å¢çãæç¢ºã«ãªãããããã°ä¿®æ£ãæ©èœè¿œå ã®éã«åœ±é¿ç¯å²ãéå®ããããã
ãããåïŒ ãªãã»ã©ïŒã«ãã»ã«åã£ãŠãã¯ã©ã¹ãããã©ãã¯ããã¯ã¹ãã«ããŠãå€ããå®å šã«äœ¿ããããã«ããä»çµã¿ãªãã§ããïŒãåäžè²¬ä»»ãã§ã¯ã©ã¹ã®åœ¹å²ãæç¢ºã«ããŠããã«ãã»ã«åãã§ãã®ã¯ã©ã¹ã®å®å šæ§ãé«ãããã ãã ãã€ãªãã£ãŠããæ°ãããŸãïŒ
å çïŒ ãã®èª¿åã ããããåïŒãªããžã§ã¯ãæåã®æŠå¿µããäžã€äžã€çµã¿åããã£ãŠãããå ç¢ã§ç®¡çããããããã°ã©ã ãäœãããã®ãèšèšææ³ãã«ãªã£ãŠããã®ãèŠããŠããããªïŒ
å çïŒ ã¡ãªã¿ã«ãã«ãã»ã«åã«ã¯ãã©ããŸã§é ãããã®ã¬ãã«ããããã ããã®privateãpublicãšãã£ãããŒã¯ãŒãããã¢ã¯ã»ã¹ä¿®é£ŸåããšåŒã¶ãã
ãããåïŒ ã¬ãã«ã§ããïŒ
å çïŒ ãããäŸãã°ïŒ
private: åãã¯ã©ã¹å ããã®ã¿ã¢ã¯ã»ã¹å¯èœïŒæã峿 ŒïŒ
public: ã©ãããã§ãã¢ã¯ã»ã¹å¯èœïŒæãéæŸçïŒ
ä»ã«ãprotectedãªã©ããããã©ãããã¯ãŸãä»åºŠèª¬æãããã
åºæ¬çã«ã¯ãå¿ èŠæå°éã ããå ¬éããããšããèãæ¹ã倧åãªãã ã
仿¥ã®ãŸãšãïŒ
ã«ãã»ã«åïŒ
ãªããžã§ã¯ãã®å éšããŒã¿ïŒå±æ§ïŒã詳现ãªå®è£ ãå€éšãããé èœïŒãã©ã€ããŒãã«ããïŒãããããšã
å€éšã«å¿ èŠãªæäœã ãããçªå£ïŒå ¬éã¡ãœãããç¹ã«getter/setterïŒããšããŠæäŸããããšã
ç®çïŒããŒã¿ã®ä¿è·ãšæŽåæ§ã®ç¶æãå€éšããã®äžæ£ãªã¢ã¯ã»ã¹é²æ¢ã
ã¡ãªããïŒ
ããŒã¿ã®ä¿è·ãšæŽåæ§ã®ç¶æïŒæå³ããªã倿ŽããããŒã¿ãå®ãã
倿Žãžã®åŒ·ãïŒå éšå®è£ ãå€ãã£ãŠãå€éšã³ãŒãã«åœ±é¿ãäžãã«ããã
䜿ããããã®åäžïŒãŠãŒã¶ãŒã¯è€éãªå éšãç¥ããªããŠããã·ã³ãã«ãªçªå£ã§å©çšã§ããã
ä¿å®æ§ã®åäžïŒä¿®æ£ã远å ã®åœ±é¿ç¯å²ãéå®ããããã
ã¢ã¯ã»ã¹ä¿®é£ŸåïŒprivateïŒåãã¯ã©ã¹å ããã®ã¿ã¢ã¯ã»ã¹å¯èœïŒãpublicïŒã©ãããã§ãã¢ã¯ã»ã¹å¯èœïŒãªã©ã䜿ã£ãŠãå ¬éã¬ãã«ãå¶åŸ¡ããã
ãããåïŒ å çã仿¥ã¯ãã«ãã»ã«åãã«ã€ããŠããšãŠãããåãããŸããïŒã¯ã©ã¹ã®ãç§å¯ããšãçªå£ãã®é¢ä¿ãããã§ããããªã§ãïŒããã§å€ãªé床ã«è»ããªã£ããããªããªããŸããïŒ
å çïŒ ãã®éãã ããããåïŒããã§åã®ããã°ã©ã ã¯ãããå®å šã§ãä»ã®äººã«ã䜿ãããããã®ã«ãªãã ãããæ¬¡åã¯ããªããžã§ã¯ãæåã®äžå€§èŠçŽ ã®æåŸããç¶æ¿ãã«ã€ããŠåŠãã§ããããå ±éã®èšèšå³ãå ã«ãæ°ããèšèšå³ãäœãæ¹æ³ã ãã
ãããåïŒ ç¶æ¿ïŒãªãã芪åé¢ä¿ã¿ããã§é¢çœããã§ãïŒæ¥œãã¿ã§ãïŒããããšãããããŸããïŒ