æœè±¡ã¯ã©ã¹ãšæœè±¡ã€ã³ã¿ãŒãã§ã€ã¹ã¯ããã¹ãŠã®ãªããžã§ã¯ãæåããã°ã©ãã³ã°èšèªã§éåžžã«äººæ°ããããŸãããããŠãã»ãšãã©ãã¹ãŠã® Java ã€ã³ã¿ãã¥ãŒã§ããã®ãããã¯ã«é¢ããå°ãªããšã 1 ã€ã®è³ªåã«ééããŸããã€ã³ã¿ãŒãã§ã€ã¹ã¯ãœãããŠã§ã¢èšèšè
ã®éã§äººæ°ãããããé »ç¹ã«èšåãããŸãããæœè±¡ã¯ã©ã¹ã«é¢ãã質åãæã
åºãŠããŸããåŸè
ã¯ãããšãã° Java éçºçµéšã 2 幎以å
ã®ãžã¥ãã¢éçºè
ã®ããžã·ã§ã³ãžã®å¿åè
ã«ããèãããã®ã«å¯Ÿããã€ã³ã¿ãŒãã§ãŒã¹ã«é¢ãã質åã¯ãçµéšããã§ã« 4 幎ãè¶
ããŠãã人ã®é¢æ¥ã§æãããèãããŸãããããã¯éåžžãDecorator ãã¿ãŒã³ã Factory ãã¿ãŒã³ãªã©ã® Java ãã¶ã€ã³ ãã¿ãŒã³ã«é¢ããä»ã®è³ªåãšäœµããŠå°ããããŸãã
ãã®èšäºã§ã¯ãJava ã®ããŸããŸãªã¬ãã«ã®é¢æ¥ã§å°ãããããæœè±¡ã¯ã©ã¹ãšã€ã³ã¿ãŒãã§ã€ã¹ã«é¢ããäžè¬çãªè³ªåãåãäžããŸãããããã®ã»ãšãã©ã¯ãåå¿è
ã® Java ããã°ã©ããŒã«ãšã£ãŠãé£ãããããŸããããããã¯ã»ãšãã©ãçŽç²ãªç¥èã«é¢ãã質åã§ããã
Java ã®æœè±¡ã¯ã©ã¹ãšã€ã³ã¿ãŒãã§ã€ã¹ã®éãããã€ã³ã¿ãŒãã§ã€ã¹ã§ã¯ãªãæœè±¡ã¯ã©ã¹ããã€éžæããããªã©ãäžéšã®è³ªåã¯éåžžã«é£ããå ŽåããããŸãããã®ãããã¯ã«é¢ãã 12 ã®èå³æ·±ã質åãæäŸããŸãã
ã€ã³ã¿ãã¥ãŒã§è³ªåãããããšãããããŸãã¯æœè±¡ã¯ã©ã¹ãšã€ã³ã¿ãŒãã§ã€ã¹ã«é¢ãã䟡å€ã®ãã質åãããªããã°ãªããªãã£ãããããããã®ãªã¹ãã«èŒã£ãŠããªãå Žåã¯ãã³ã¡ã³ãã§å
±æããŠãã ããã |
1. Java ã§ã¯æœè±¡ã¯ã©ã¹ã«ã³ã³ã¹ãã©ã¯ã¿ãŒãå«ããããšã¯ã§ããŸãã?
ã¯ããJava ã®æœè±¡ã¯ã©ã¹ã§ã¯ãã³ã³ã¹ãã©ã¯ã¿ãŒã宣èšããã³å®çŸ©ã§ããŸããæœè±¡ã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãäœæããããšã¯äžå¯èœã§ããããããã®ãããªã³ã³ã¹ãã©ã¯ã¿ãŒã¯ãã³ã³ã¹ãã©ã¯ã¿ãŒã®ãã§ãŒã³ã圢æããå Žåãã€ãŸãç¹å®ã®å®è£
ã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãäœæããå Žåã«ã®ã¿åŒã³åºãããšãã§ããŸãããããããã®åŸé¢æ¥å®ããæœè±¡ã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãäœæã§ããªãå Žåãã³ã³ã¹ãã©ã¯ã¿ãŒã«ã¯äœã®æå³ãããã®ã§ãããã?ããšè³ªåãããšæ³åããŠãã ãããéèŠãªã®ã¯ãæœè±¡ã¯ã©ã¹ã§å®£èšãããããŸããŸãªå®è£
ã§äœ¿çšãããå
±éå€æ°ã®åæå€ãèšå®ããããã«åŒãç¶ã䜿çšã§ãããšããããšã§ããã³ã³ã¹ãã©ã¯ã¿ãŒã宣èšããªãå Žåã§ããã³ã³ãã€ã©ãŒã¯ããã©ã«ãã®åŒæ°ãªãã®ã³ã³ã¹ãã©ã¯ã¿ãŒãæœè±¡ã¯ã©ã¹ã«è¿œå ããŸããããããªããšãã³ã³ã¹ãã©ã¯ã¿ãŒã®æåã®ã¹ããŒãã¡ã³ãã
super()
Java ã®ããã©ã«ãã®ã¹ãŒããŒã¯ã©ã¹ ã³ã³ã¹ãã©ã¯ã¿ãŒãžã®æé»çãªåŒã³åºãã«ãªãããããµãã¯ã©ã¹ã¯ã³ã³ãã€ã«ãããŸããã
2. Java ã®æœè±¡ã¯ã©ã¹ã¯ã€ã³ã¿ãŒãã§ã€ã¹ãå®è£
ã§ããŸãã? ãã¹ãŠã®ã¡ãœãããå®è£
ããå¿
èŠãããã®ã§ãããã?
ã¯ããæœè±¡ã¯ã©ã¹ã¯ ã䜿çšããŠã€ã³ã¿ãŒãã§ã€ã¹ãå®è£
ã§ããŸã
implements
ããããã¯æœè±¡çãªããããã¹ãŠã®ã¡ãœãããå®è£
ããå¿
èŠã¯ãããŸãããåã宣èšããããã®æœè±¡åºæ¬ã¯ã©ã¹ãšã€ã³ã¿ãŒãã§ã€ã¹ãçšæããããšããå§ãããŸããäŸãšããŠã¯ãã€ã³ã¿ãŒãã§ã€ã¹
java.util.List
ãšå¯Ÿå¿ããæœè±¡ã¯ã©ã¹ããããŸã
java.util.AbstractList
ã
AbstractList
ãã¹ãŠã®å
±éã¡ãœãããå®è£
ãããããç¹å®ã®å®è£
( ã
LinkedList
ãªã©
ArrayList
) ã¯ãã€ã³ã¿ãŒãã§ã€ã¹ãçŽæ¥å®è£
ããå Žåã®ããã«ããã¹ãŠã®ã¡ãœãããå®è£
ããå¿
èŠã¯ãããŸãã
List
ããã®ãœãªã¥ãŒã·ã§ã³ã¯ãã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããŠåã宣èšããå©ç¹ãšããã¹ãŠã®å
±éåäœã 1 ãæã§å®è£
ããæœè±¡ã¯ã©ã¹ã®æè»æ§ãçµã¿åããããã®ã§ãããžã§ã·ã¥ã¢ã»ãããã¯ã®èæž
ãJava. ãEffective Programmingãã«ã¯ãJava ã§ã®ã€ã³ã¿ãŒãã§ã€ã¹ãšæœè±¡ã¯ã©ã¹ã®äœ¿çšã«é¢ããåªããç« ããããããæ·±ãç解ããã«ã¯ããã®ç« ãå匷ããã®ãçã«ããªã£ãŠããŸãã
3. æœè±¡ã¯ã©ã¹ã¯finalã«ã§ããŸãã?
ããã圌ã«ã¯ç¡çã ããã®ããŒã¯ãŒãã¯ã
final
ã¯ã©ã¹ãéå±€ã®æäžäœã«ãããåå«ãæã€ããšãã§ããªãããšãæå³ããŸãããããŠãç¶æ¿è
ã®ãªãæœè±¡ã¯ã©ã¹ã¯ãã€ã³ã¹ã¿ã³ã¹ãäœæããããšãäžå¯èœã§ãããããç空äžã®çç¶ã®éŠ¬ãšåãã§ã
abstract class
ããããã£ãŠãã¯ã©ã¹ã ãš
abstract
ã®äž¡æ¹ã§ããå Žå
final
ããã®ã¯ã©ã¹ã«ã¯åå«ããªããã€ã³ã¹ã¿ã³ã¹åã§ããŸããã
abstract
ã¯ã©ã¹ãš ãäœæãããšãJava ã³ã³ãã€ã©ã¯ãšã©ãŒãã¹ããŒããŸã
final
ã
4. Java ã®æœè±¡ã¯ã©ã¹ã¯éçã¡ãœãããæã€ããšãã§ããŸãã?
ã¯ããæœè±¡ã¯ã©ã¹ã¯éçã¡ãœããã宣èšããã³å®çŸ©ã§ããŸããJava ã§éçã¡ãœãããäœæããäžè¬ååã«åŸãå¿
èŠãããã®ã¯ãJava ã§éçã¡ãœããããªãŒããŒã©ã€ãããããšãã§ããªããããéçã¡ãœããã¯ãªããžã§ã¯ãæåèšèšã§ã¯æãŸãããªãããã§ããæœè±¡ã¯ã©ã¹ã«éçã¡ãœããã䜿çšãããããšã¯éåžžã«ãŸãã§ãããæ£åœãªçç±ãããå Žåã¯ãéçã¡ãœããã®äœ¿çšã劚ãããã®ã¯ãããŸããã
5. æœè±¡ã¯ã©ã¹ãã€ã³ã¹ã¿ã³ã¹åããããšã¯å¯èœã§ãã?
ããããããã¯ã§ããŸãããæœè±¡ã¯ã©ã¹ã®æ¬è³ªã¯ããããå®å
šã§ã¯ãªããšããããšã§ããããã®åå«ã¯ã©ã¹ã§å®æããå¿
èŠããããŸããã€ãŸãããã®ã¯ã©ã¹ã¯äœ¿çšããæºåãã§ããŠããŸãããããšãã°ãäžéšã®ã¡ãœãããå®è£
ãããŠããªãå ŽåããããŸããã¯ã©ã¹ã¯äœ¿çšããæºåãã§ããŠããªãããããã®ãªããžã§ã¯ããäœæã§ããŸããããã ããæœè±¡ã¯ã©ã¹ã®ç¶æ¿è
ã®ã€ã³ã¹ã¿ã³ã¹ãäœæããããšã¯ã§ããŸããããã°ã©ã ãæœè±¡ã¯ã©ã¹ãã€ã³ã¹ã¿ã³ã¹åããããšãããšãJava ã³ã³ãã€ã©ã¯ãšã©ãŒãã¹ããŒããŸãã
6. æœè±¡ã¯ã©ã¹ã«ã¯æœè±¡ã¡ãœãããå¿
èŠã§ãã?
ããããæœè±¡ã¯ã©ã¹ã«ã¯æœè±¡ã¡ãœãããå«ããããšã¯ã§ããŸããã
abstract
Java ã§ã¯ã宣èšã«ããŒã¯ãŒãã䜿çšããã ãã§ã¯ã©ã¹ãæœè±¡åã§ããŸããã³ã³ãã€ã©ã¯ããã®ã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ã®äœæãèš±å¯ããªããªã©ãæ§é äžã®å¶éã匷å¶ããŸãããšããã§ãæœè±¡ã¯ã©ã¹ãŸãã¯æœè±¡ã€ã³ã¿ãŒãã§ã€ã¹ã«æœè±¡ã¡ãœãããååšãã¹ããã©ããã«ã€ããŠã¯è°è«ã®äœå°ããããŸããããã°ã©ããæœè±¡ã¯ã©ã¹ãèŠããšãã«æåã«èããã®ã¯æœè±¡ã¯ã©ã¹ã§ãããããæœè±¡ã¯ã©ã¹ã«ã¯æœè±¡ã¡ãœãããå¿
èŠã§ãããšç§ã«ã¯æãããŸããããã¯ãé©ããæå°éã«æãããšããååã«ããé©åããŸãã
7. Java ã®æœè±¡ã¯ã©ã¹ãšã€ã³ã¿ãŒãã§ã€ã¹ã®éãã¯äœã§ãã?
ããã¯æãéèŠã§ãããæãå€å
žç㪠Java é¢æ¥ã®è³ªåã® 1 ã€ã§ããããããã¬ãã«ã® Java é¢æ¥ã§ãã®è³ªåãäœåºŠèŠããæ°ãåããŸããããã®è³ªåãèå³æ·±ãã®ã¯ãç¹ã«ç³è«è
ãäŸãæ瀺ããæ©äŒãããããšã§ããæœè±¡åãã«ãã»ã«åãããªã¢ãŒãã£ãºã ãç¶æ¿ãªã©ããªããžã§ã¯ãæåããã°ã©ãã³ã°ã®åºæ¬ã«é¢ãã質åã«çããã®ã¯ç°¡åã§ããããã®ãããªåŸ®åŠãªãã¥ã¢ã³ã¹ã«ãªããšãæ±è·è
ã¯æ··ä¹±ããæåã«æãã€ããããšãèšã£ãŠããŸãããšããããããŸãã
ãã®è³ªåã«å¯Ÿããçãã¯å¥ã®èšäºã«å€ããŸã (ç¹ã« Java 8 ã§ã®å€æŽåŸ) ããç°¡åã«èšããšæ¬¡ã®ããã«ãªããŸãã
- ã€ã³ã¿ãŒãã§ã€ã¹ã¯ãªããžã§ã¯ãã®åäœ (ã¡ãœãã) ã®ã¿ãèšè¿°ããŸãããç¶æ
(ãã£ãŒã«ã) ãæã¡ãŸãã ( ãé€ã
public static final
)ãäžæ¹ãæœè±¡ã¯ã©ã¹ã¯ç¶æ
(ãã£ãŒã«ã) ãæã€ããšãã§ããŸãã
- æœè±¡ã¯ã©ã¹ãç¶æ¿ïŒæ¡åŒµïŒããã€ã³ã¿ãŒãã§ãŒã¹ãå®è£
ïŒå®è£
ïŒããŸããç¶æ¿ã§ããã¯ã©ã¹ã¯ 1 ã€ã ãã§ãããã€ã³ã¿ãŒãã§ã€ã¹ã¯å¿
èŠãªã ãå®è£
ã§ããŸããã€ã³ã¿ãŒãã§ã€ã¹ã¯ãå¥ã®ã€ã³ã¿ãŒãã§ã€ã¹ãæ¡åŒµïŒæ¡åŒµïŒã§ããŸãã
- æœè±¡ã¯ã©ã¹ã¯ããis-aãé¢ä¿ãããå Žåã«äœ¿çšãããŸããã€ãŸãããµãã¯ã©ã¹ãåºæ¬æœè±¡ã¯ã©ã¹ãæ¡åŒµããçžäºã«ãŸã£ããé¢é£ããŠããªãç°ãªãã¯ã©ã¹ã«ãã£ãŠã€ã³ã¿ãŒãã§ã€ã¹ãå®è£
ã§ããŸãã
8. ã€ã³ã¿ãŒãã§ã€ã¹ãããæœè±¡ã¯ã©ã¹ãåªå
ãããããã®éãéžæãããããã®ã¯ã©ã®ãããªå Žåã§ãã?
ããã¯ãæœè±¡ã¯ã©ã¹ãšã€ã³ã¿ãŒãã§ã€ã¹ã«é¢ãã以åã®è³ªåã®ç¶ãã§ããæ§æäžã®éããäœã§ããããç¥ã£ãŠããã°ã決å®ãäžãéã®æ±ºå®èŠå ãšãªãããããã®è³ªåã«çããããšã§åé¡ãçããããšã¯ãããŸãããå
¬éãããã€ã³ã¿ãŒãã§ã€ã¹ã«æ°ããã¡ãœãããè¿œå ããããšã¯ã»ãšãã©äžå¯èœã§ããããããããªãéçºãå¿
èŠã«ãªãå¯èœæ§ãããå Žåã«ã¯ãæœè±¡ã¯ã©ã¹ã䜿çšããããšããå§ãããŸããJava ã§ã®æœè±¡ã¯ã©ã¹ã®éçºã¯ãã€ã³ã¿ãŒãã§ã€ã¹ã®éçºãããç°¡åã§ããåæ§ã«ãã€ã³ã¿ãŒãã§ã€ã¹ã«ã¡ãœãããå€ãããŠããããããã¹ãŠå®è£
ããã®ãæ¬åœã«é¢åãªå Žåã¯ãããã©ã«ãã®å®è£
çšã«æœè±¡ã¯ã©ã¹ãäœæããããšããå§ãããŸãããã®ãã¿ãŒã³ã¯ Java ã³ã¬ã¯ã·ã§ã³ ããã±ãŒãžã§ãèžè¥²ãããŠãããæœè±¡ã¯ã©ã¹ã¯
AbstractList
ã®ããã©ã«ãå®è£
ãæäŸããŸã
List
ã
次ã®å Žåã¯æœè±¡ã¯ã©ã¹ã䜿çšããŸãã
- å¯æ¥ã«é¢é£ããè€æ°ã®ã¯ã©ã¹éã§ã³ãŒããå
±æããããšèããŠããŸãã
- æœè±¡ã¯ã©ã¹ãæ¡åŒµããã¯ã©ã¹ã«ã¯ãå€ãã®å
±éã®ã¡ãœããããã£ãŒã«ããããããšããŸãã¯
public
(ããšãã°ãprotected
ãprivate
) 以å€ã®ã¢ã¯ã»ã¹ä¿®é£Ÿåãå¿
èŠã§ããããšãæåŸ
ãããŸãã
- ééçãŸãã¯
Ме-final
ãã£ãŒã«ãã宣èšããããšèããŠããŸããããã«ãããã¡ãœãããå±ãããªããžã§ã¯ãã«ã¢ã¯ã»ã¹ããŠãã®ç¶æ
ãå€æŽã§ããã¡ãœãããå®çŸ©ã§ããŸãã
次ã®å Žåã«ã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããŸãã
- ç¡é¢ä¿ãªã¯ã©ã¹ãã€ã³ã¿ãŒãã§ã€ã¹ãå®è£
ããããšãæåŸ
ãããŸããããšãã°ãã€ã³ã¿ãŒãã§ã€ã¹
Comparable
ãšã€ã³ã¿ãŒãã§ã€ã¹Cloneable
ã¯ãå€ãã®ç¡é¢ä¿ãªã¯ã©ã¹ã«ãã£ãŠå®è£
ãããŸãã
- ç¹å®ã®ããŒã¿åã®åäœãå®çŸ©ããããšèããŠããŸãããããã誰ãå®è£
ãããã¯æ°ã«ããŸããã
- è€æ°ã®åã®ç¶æ¿ã䜿çšãããã
9. Java ã®æœè±¡ã¡ãœãããšã¯äœã§ãã?
æœè±¡ã¡ãœããã¯æ¬äœã®ãªãã¡ãœããã§ããã¡ãœãããå®çŸ©ããã«ã
abstract
ã¡ãœãã宣èšå
ã®ããŒã¯ãŒãã䜿çšããŠå®£èšããã ãã§ããJava èšèªã®ã€ã³ã¿ãŒãã§ãŒã¹å
ã§å®£èšããããã¹ãŠã®ã¡ãœããã¯ãããã©ã«ãã§ã¯æœè±¡ã§ããJava ã®æœè±¡ã¡ãœããã®äŸã次ã«ç€ºããŸãã
public void abstract printVersion();
ãã®ã¡ãœãããå®è£
ããã«ã¯ãæœè±¡ã¯ã©ã¹ãæ¡åŒµãããã®ã¡ãœããããªãŒããŒã©ã€ãããå¿
èŠããããŸãã
10. Java ã®æœè±¡ã¯ã©ã¹ã«ã¡ãœãããå«ããããšã¯ã§ããŸããmain
?
ã¯ããJava ã®æœè±¡ã¯ã©ã¹ã«ã¯ã¡ãœãããå«ããããšãã§ããŸã
main
ãããã¯åãªãå¥ã®éçã¡ãœããã§ããããã§ããæœè±¡ã¯ã©ã¹ã¯ã
main
ã€ã³ã¹ã¿ã³ã¹åããªãéããã¡ãœããã䜿çšããŠå®è¡ã§ããŸããç§ãèšãããã£ãã®ã¯ããã ãã§ãããŸããæœè±¡ã¯ã©ã¹ãšã€ã³ã¿ãŒãã§ã€ã¹ã¯ããªããžã§ã¯ãæåã®åæããã³èšèšããã»ã¹ã«ãããéèŠãªèšèšäžã®æ±ºå®äºé
ã§ãããæè»ãªã·ã¹ãã ãäœæãããå Žåã¯ãåœç¶ãªããååãªæ³šæãæã£ãŠäœ¿çšããå¿
èŠãããããšãèŠããŠãããŠãã ããã
GO TO FULL VERSION