Java éçºè ã®ããŒãããã
ç§ã®å人ã¯ããªãéçºè ã¯ãã€ããããªã«å¹žããªã®ãäžæè°ã«æã£ãŠããŸããã圌女ãå°ãåºããçãã¯ã·ã³ãã«ãã€é©ãã¹ããã®ã§ããã圌ãã¯å¥œããªããšãããŠå€§éã皌ãã§ããã®ã§ãã ãœãããŠã§ã¢éçºè ã®äžçãžããããããœãããŠã§ã¢éçºè ã®çµŠæ
éçºè ã®çµŠæã«ã€ããŠã話ããããšæããŸãã絊äžãã©ããªã£ãŠããã®ããã©ãã«åãã«è¡ãã¹ãããã©ãã«è¡ã£ãŠã¯ãããªãã®ããéçºè ã§ã¯ãªããèªåã§è¬ã解ãããšãããšãããªãç©è°ãéžãããŒã¿ãåŸããããããããŸãããéèŠãªç¹ã¯ãéçºè ã®çµŠäžã«åœ±é¿ãäžããäž»ãªèŠçŽ ã¯è³æ Œã§ã¯ãªããå€åå°ã§ãããšããããšã§ããè³æ Œã¬ãã«ãåãã§ããã°ãè¯ãè·å Žãšæªãè·å Žã®å·®ã 2 åãã 10 åã«ãªãå ŽåããããŸã (!) è³æ Œã¯äžå®ã®ç¬éããšã«å€ãããŸããã1 ãæ㧠2 åã®è³æ ŒãååŸãã2 åã®å ±é ¬ãåãåãããšã¯ã§ããŸããããããã1ãæã§è·å Žãå€ããŠ2åã®çµŠæãåŸãããšãã§ããŸãã2 ãæã®éã«ç§ã®çµŠæ㯠3 åã«ãªããŸãã (!) â å¿ããããªãçµéšã§ããããã§ã¯ãã©ã®å Žæãæé©ãã調ã¹ãŠã¿ãŸãããã- äŒæ¥ã®äž»ãªäºæ¥ããœãããŠã§ã¢éçºã§ãããã©ãã
- äŒæ¥ãã°ããŒãã«åžå ŽãšããŒã«ã«åžå Žã®ã©ã¡ããå¿åããŠããã
- æ¬ç€Ÿã¯ã©ãã«ãããŸãã: å é²åœãŸãã¯çºå±éäžåœ
å ·äœçãªæ°å
絊äžã¯äžçã®å°åã«ãã£ãŠç°ãªãããã5 幎ã®çµéšãæã€äžçŽ Java éçºè ã®çµŠäžãåºçºç¹ãšããŠãããããæ倧 5 幎ããšåŒã¶ããšãææ¡ããŸãã以äžã®ãã¹ãŠã®æ°å€ã¯ããã®éé¡ã®ããŒã»ã³ããŒãžãšããŠè¡šç€ºãããŸãã以äžã«ãäžçã®ããŸããŸãªéœåžã«ãããã5 幎éã®æé«ã絊äžã®äŸãããã€ã瀺ããŸãã 以äžã«ã5 幎ã®çµéšãæ〠Java ã·ãã¢éçºè ããå€åããäŒç€Ÿã«å¿ããŠããã皌ããã瀺ããŸãã çŸåšã®ç¶æ³ã§æã å¥åŠãªç¹ã¯äœã§ãã? ãã¹ãŠã®ããã°ã©ããŒã®åæ°ã¯ã1 ã¬ãã«ããã³ 2 ã¬ãã«ã®äŒæ¥ã§åããŠããŸãã ç¥ãããã®ã§ãããäœãåé¡ã§ãã? 3 ã¬ãã«ããã³ 4 ã¬ãã«ã®äŒæ¥ã«ã¯äœçŸãã®æ±äººãååšããŸãããããã®äŒæ¥ã¯ãããé«ã絊äžãšãéåžžã¯ããè¯ãåŽåæ¡ä»¶ãæäŸããããšã«ç©æ¥µçã§ããç§ã¯ Java ãžã¥ãã¢ã 2 人ç¥ã£ãŠããŸããã1 人ã¯ã5 幎éã®æé«ã絊äžã®çŽ 3% (ã¬ãã« 1 äŒæ¥) ã§ä»äºã«å°±ãããã 1 人ã¯ã5 幎éæé«ã絊äžã® 30% (ã¬ãã« 4) ã§ä»äºã«å°±ããŸãããã§ã¯ããªãæžå°ããã®ã§ããããïŒ ããã°ã©ããŒã«å¯ŸããéèŠã¯ãªãã¡ãŒãäžåã£ãŠããŸãã絊æãå®ããšããã§ã¯åããªãã§ãã ããã çµè« 1: Java éçºè ã®å¹³åçµŠäž (çµéšãåãã) ã¯ãã5 幎éã®æé«ã絊äžã® 40% ïœ 50% ã§ãã çµè« 2:ã¬ãã« 1 ããã³ã¬ãã« 2 ã®äŒæ¥ã§åããŠããããã¬ãã« 3 ããã³ã¬ãã« 4 ã®äŒæ¥ã§åããŠããå Žåã5 幎éã®å¹³å絊äžã¯ã5 幎éã®æé«ã絊äžã®çŽ 90% ïœ 110% ã«ãªããŸããæããªããšãããªããã°éæã§ããããš
ä»ããããã°ã©ãã³ã°ã®ç¬åŠã«åãçµã¿å§ãããšã絊äžã¯æ¬¡ã®ããã«ãªããŸãããã©ã³
0ïœ3ã¶æïŒåŠçïŒ
ããªãã¯ããã°ã©ãã³ã°ã«ã€ããŠã»ãšãã©ç¥èããããŸãããããªããåŠæ ¡ã倧åŠã§åºç€ã¬ãã«ã®å匷ãããããšããããããããŸããã ããªããããªããã°ãªããªãã®ã¯ãããã°ã©ãã³ã°ã®æ¹æ³ãåŠã³ãJava ãåŠã¶ããšã§ãã ããªãã®ç®æšã¯ãã¬ãã« 3 以äžã®äŒæ¥ã§ Java ãžã¥ãã¢éçºè ãšããŠå°±è·ããããšã§ãããã©ã³ã®æåã® 3 ãæéã¯äœãåŸãããŸãããããã°ã©ãã³ã°æ¹æ³ãåŠç¿ããŠããã ãã ããã§ããããããå§ããã®ã¯æ©ããã°æ©ãã»ã©è¯ãã§ããæè¯ã®ææã¯ä»ã§ããå°æ¥ã家æãããŠå€é¡ã®ããŒã³ãæ±ããŠããå Žåãè³æ ŒãåååŸããã®ã¯ããã«é£ãããªãã§ããããééããæ£ãããã«ã¯ãå°ãªããšã1幎éã®éåžžã®ç掻ã«å¿ èŠãªãéã確ä¿ããŠãããªããã°ãªããŸãããæããªééããããªãã§ãã ããã3 ïœ 15 ãæ (Java ãžã¥ãã¢éçºè )
ããªãã¯ãã§ã«ãœãããŠã§ã¢éçºè ãšããŠåããŠããããã®çµéšã¯æ¥ã æé·ããŠããŸãããªã©ãã¯ã¹ããªãã§ãã ããããªãŒã«ã§äŒãåã«ããã¹ãããšããããããããŸãã ããªããããªããã°ãªããªãããšã¯ãäžééçºè ãšããŠå¿ èŠãšãªããã¯ãããžãŒãå匷ããããšã§ããããã¯äœïŒäžçã¯åžžã«å€åããŠããŸããã¢ããã€ã¹ãããããè©°ã蟌ã¿ãŸããããããã°äººçã¯ãã¹ãŠå€ãããŸãããŠã§ãäžã§ããã€ãã®æ±äººãèŠã€ããŠãå¿åããå¿ èŠããããã®ã確èªããŠãã ãããBruce Eckel èãThinking in Javaããå¿ ãèªãã§ãã ããã Java ãžã¥ãã¢éçºè ãšããŠåãå§ãã 1 幎ç®ã®ç®æšã¯ãJava ããã«éçºè ã®ã¬ãã«ã«å°éããããšã§ãããããç°¡åã ãšã¯èª°ãèšããŸããããç®æšå¿åã®äººã§ããã°ããã¯å¯èœã§ãã絊æã¯ã5幎éã®äžéãã®40ïŒ ïŒãµã³ãã©ã³ã·ã¹ã³ãšãã³ãã³ã¯5äžãã«ããã³ã¬ããŒã«ã¯6åãã«ïŒãŸã§ç¬æã«å¢é¡ãããŸãã2 幎å¶ããã°ã©ãã³ã° (Java ããã«éçºè ãã¬ãã« 1)
æšå¹Žã¯è¯ãä»äºãããŠãä»ã§ã¯ Java äžééçºè ã«ãªããŸãããäžçŽ Java éçºè ã®çµŠäžã® 50% ã皌ãã§ããªãè£çŠãªç掻ãéãããšãã§ããŸããããªãã¯è·å Žã§ããã€ãã®éèŠãªã¿ã¹ã¯ãäžããããŠãããçµéšã¯å€§å¹ ã«å¢å ããŸãã2 ïœ 3 幎㧠Java äžçŽéçºè ã®ã¬ãã«ã«å°éããŸããæ¥ãå¿ èŠã¯ãªãããããã«ããã絊äžãå€§å¹ ã«äžããããšã¯ãããŸããã ããªããããå¿ èŠãããã®ã¯ã McConnell's Code Complete ãèªãã§ãã¶ã€ã³ ãã¿ãŒã³ãåŠã¶ããšã§ããã³ãŒãã®å質ãšããŒã ã®ã¹ãã«ãå®ç§ã«ããŸããã³ã³ãã¥ãŒã¿ãŒããã°ã©ãã³ã°ã«é¢ããæ¬ãæ¯æ1åèªããšããã«ãŒã«ãäœããŸããããããããã°ã4 幎åŸã«ã¯ä»ã®æ¬ããã 50 åè³¢ããªã£ãŠããã§ããããå 延ã°ãã«ããªãã§ãã ããããã以äžèªç±ãªæéã¯åŸãããŸãããããã«ããããã家æãã§ãããã家æãããå Žåã¯ããã«å€§ãããªãã§ãããã ããªãã®ç®æšäžçŽ Java éçºè ãšããŠå°éãšãããã¯ãããžãŒãããã€ãéžæããããšã§ããããããã¹ãŠãåŠã¶ããšã¯ã§ããŸããããããŠã1 ã€ã®å°éåéã®ç¬¬äžäººè ã«ãªãã®ã¯åžžã«è¯ã決æã§ãã3 次å ã®ããã°ã©ãã³ã° (Java ããã«éçºè ãã¬ãã« 2)
ããªãã¯çŸåšãçµéšè±å¯ãªäžééçºè ã§ãããäžçŽéçºè ã«ãªãããšãèããŠããŸããããã¯å¿«é©ã§ãããšåæã«åèªã§ããããŸãã絊äžãã5 幎éã®æé«é¡ãã® 60% (ãã³ã¬ããŒã«ã§ 10,000 ãã«ãããšã㧠25,000 ãã«ããã«ãªã³ã§ 40,000 ãã«ããã¥ãŒãšãŒã¯ã§ 80,000 ãã«) ãè¶ ããŠããŸãããã®ç¬éãããããªãã®ãããªå°é家ã®éèŠã«å¿ããŠããªãã¡ãŒãäžãããŸãããã€ã§ãæ°æ¥ä»¥å ã«ä»äºãèŠã€ããããšãã§ããåå ¥ãä»ããäžããããšã¯ã»ãšãã©ãããŸããããã¡ãããæããªããšãããªããã°ã®è©±ã ãã ããªããããªããã°ãªããªãããšã¯ãèªåãéžãã ãã¯ãããžãŒãåŠã³ç¶ããŠãã ãããããè¯ãåããŸããããéçšäž»ã®ããã§ã¯ãªããããªãèªèº«ã®ããã§ããææãªãã¯ãããžãŒ (ãã®èšäºãæžããŠããæç¹ã§ã¯ BigData ãªã©) ã«é¢ãããããžã§ã¯ããžã®åå ãç³è«ããŠãã ããããããã«ããããªãã£ã¹ã§ 1 æ¥ 8 æéãéããããšã«ãªãã®ã§ãããããã®ããã«ããå°ããéã皌ãã§ã¿ãŠã¯ãããã§ããããããããŠãããã«éèŠãªã®ã¯ãå°æ¥å¿ èŠã«ãªãæã貎éãªçµéšã§ãã ããªãã®ç®æšã¯æ°ããä»äºãèŠã€ããããšã§ããè¯ãããŒã ã¯å¿ ãèŠã€ãããŸããæ°ãããããžã§ã¯ãããã¯ãããžãŒã«çŽé¢ããããšã«ãªããŸããæ€ åã«æ ¹ä»ãå¿ èŠã¯ãããŸããããŸã 第 3 ã¬ãã«ã®äŒæ¥ã§åããŠããå Žåã¯ã第 4 ã¬ãã«ã®äŒæ¥ãžã®å°±è·ãæ€èšããŠãã ãããããã°ã©ãã³ã° 5 å¹Žç® (Java äžçŽéçºè ãã¬ãã« 1)
ããã§ããªãã¯äžçŽéçºè ã«ãªããŸããããããããããããªãã¯ããã«å€ããªããšæããŠããã®ãããããŸãããããã§ããããã§ãšãããããŸããããªããä»ãã®å°äœã«ãµãããããã©ããã¯åé¡ã§ã¯ãªããå°æ¥ãã®å°äœã«ãµãããã人ã«ãªãããšããã¹ãŠéèŠã§ããè¯ãä»äºã«å°±ããå¿ èŠãªã¬ãã«ãŸã§æé·ããåŸã¯ãã®éã®æ¹ãè¯ããšããããšã«åæããŠããã ãããšæããŸããæã«1åæ¬ãèªããšããç§ã®ã¢ããã€ã¹ãå¿ããŠããªãã§ããããïŒä»ã§ã¯ã©ããªåŠçãããªãã®ç¥èãšã¹ãã«ã矚ãã§ããããããå ·äœçã«èšããšã圌ã¯åœŒãã®ããã«ç¥ã£ãŠããã§ããããèããŠã¿ãŠãã ãããããªãã¯ã5 幎éã®æé«ã絊äžã® 90% è¿ããšãããããªãã®åå ¥ãåŸãŠããŸããããªãã¯ãããããŸã è¥ãã§ããããäžçã¯ããªãã®è¶³å ã«ãããŸãã ããªããããªããã°ãªããªãããšã¯ãéžæãããã¯ãããžãŒãåè©äŸ¡ããŸãããããããå°éåéãå€æŽããå¿ èŠããããŸããäžçã¯å€åãããã¯ãããžãŒãå€åããããªãã¯éå» 2 幎éã§ããªãã®ç¥èãç²åŸããŸãããããªããä»éžæããããšã¯ãããªãã«ãšã£ãŠä»åŸæ°å¹Žéã®èŠåºãã«ãªãã§ãããããæ°ã«å ¥ãã®ãã¯ãããžãŒãéžæããæãæ¥ãŸããã ããªãã®ç®æšã¯ãæé·ã®æ¹åæ§ãéžæããããšã§ãããããã¯æ°å€ãããã誰ããã¹ãŠã«ååãä»ããããšã¯ã§ããŸããããä»ããéžæããå¿ èŠããããŸããä»æ¥å°ããªå€åãèµ·ããã°ãå°æ¥çã«ã¯å€§ããªå€åãåŸãããã§ããããããã°ã©ãã³ã° 6 å¹Žç® (Java äžçŽéçºè ãã¬ãã« 2)
ããªãã¯èªåã®å°æ¥ã決ãã倢ã®å®çŸã«åããŠåãçµãã§ããŸããåé²ããããšããé¡æãšãšãã«æ£ããéžæãããæ¹åæ§ - ãããŠçµæã¯é·ãã¯ç¶ããªãã§ããããããã§ãšãã倢ãããªãã人ããŸãäžäººå¢ããããšãå¬ããæããŸããäžã€ã®æ·±é ãªçå®ãããã人ã ã¯ã1 幎ã§éæã§ããããšãé倧è©äŸ¡ãã5 幎ã§éæã§ããããšãéå°è©äŸ¡ããããšããããããŸãã5幎åãæ¯ãè¿ã£ãŠã¿ãŠãã ãããããã¯ããã§ãã ããªããããªããã°ãªããªãã®ã¯ãè³¢æã§ãªã決æãé¿ããæ æ°ã«ãªããªãããšã§ãã ããªãã®ç®æšã¯ãæ¹åãéžæããŠåé²ããããšã§ãããããšãããã§çµãããšæããŸãããïŒåæ¥ãæãåºããŠãã ãããããã¯çµããã§ã¯ãªããåãªãå§ãŸãã§ããããªãã®å°æ¥ã®å°éåé
æè¡ã¹ãã·ã£ãªã¹ã (äžäœãã©ã³ã)ã管çè (äžäœãã©ã³ã)ããŸãã¯éçšãããå°é/ç¬ç«ã³ã³ãµã«ã¿ã³ã (äžäœãã©ã³ã) ãšããŠæé·ããããšãã§ããŸããããã¯ãã¹ãŠããªãã®å¥œã¿æ¬¡ç¬¬ã§ããJavaéçºè ã®ãã£ãªã¢
éçºè ã®ãã£ãªã¢ã¯ä»ã®ãã£ãªã¢ãšã¯ç°ãªããŸããè¯ããéã皌ãããã«ãããŒãžã£ãŒã«ãªãå¿ èŠã¯ãããŸãããã·ãã¢éçºè ã®æ¹ããããŒãžã£ãŒã§ããäžåžãããåå ¥ãé«ãããšã¯ãããããŸããçµéšãç©ãã°ç©ãã»ã©ãäžåžãšã®ä»äºé¢ä¿ã¯ãäžåžãšéšäžããããã¹ã¿ãŒãšãããŒãžã£ãŒããžãšå€åããŠãããŸããåµæ¥200幎ã®éçºè
äœãããããã°ã©ãã³ã°ã奜ããªããã·ãã¢éçºè ã次ã«æè¡ãªãŒãéçºè ããããŠã¢ãŒããã¯ãã«ãªãã®ãããªãã®æ¹æ³ã§ããããããã°ã50 幎以äžéçºè ãšããŠåãããšãã§ããŸããã»ãšãã©ã®å Žåãã·ãã¢éçºè ãããã¯ãªãŒãéçºè ã®çµŠäžã¯ãããŒãžã£ãŒã®çµŠäžãäžåããŸããããã§ããéã®äŸ¡å€ãæã«å ¥ããŸãããããããžã£ãŒãããªãã¯ä»ã®äººãã¡ãšã¯éã£ãŠå¹žéã§ã
ããªãã¯æµã®ã»ããžè¡ã£ãŠããŸããŸãããåè«ã ãåªããçµç¹ã¹ãã«ãçºèŠããå Žåã¯ãããŒã ãªãŒããŒã次ã«ãããžã§ã¯ã ãããŒãžã£ãŒã«ãªããŸããããã¯ããªãã«éšéé·ã«ãªã£ãŠèªåã®ããžãã¹ãéããã£ã³ã¹ãäžããŸãããããããªããæãããšã§ãããïŒå®¶ã¯å¿ã®ãããšããã§ã
ãã§ã«å®¶æãæã£ãŠããå Žåã¯ããããããçµæžåã®é«ãåœã§çŽ æµã§éããªç掻ãéããããšèããŠããã§ãããããããããã«ãããç±³åœãã¹ã€ã¹ãããã«ã¯ãªãŒã¹ãã©ãªã¢ãžã®ç§»äœãæ€èšããŠãããããããŸãããããªãã«ã¯åªããã¹ãã«ããããéèŠã®ããè·æ¥ããããŸããç¿æŽãããå§ããå¿ èŠã¯ãããŸãããããªã㯠Java äžçŽéçºè ãšããŠã¹ã¿ãŒãããŸãããããããããªã皌ãã§ããã®ã§ã¯ãªãã§ãããããæªããªãã§ãããïŒãããªãèŠãŠãæ»ãªãªãã§ãã ããã
ããªãã«ã¯ãŸã 家æãããŸããããæ è¡ã倧奜ãã§ããoDesk ããã¹ãŠã§ãã顧客ãèŠã€ããŠã1 æéããã 20 ïœ 50 ãã«ã®æéã«åæããã©ããããããæã£ãŠåºãããŸããããããªãã®çµŠæã¯äžçäžã®ã©ãã«ã§ãäœãã®ã«ååã§ããä»ãã倢ã®å®çŸãå§ããŠã¿ãŸãããïŒããã°ã©ã ããããªããç§ã¯å¥³ã®åã§ãã
ããªãã女ã®åã®å Žåãç£äŒãåãå¿ èŠããããããããŸãããæ§å·®å¥çãªãžã§ãŒã¯ã®ããã«èãããŸãããå®éãã®éãã§ããããã§ããããã«ã¯å€ãã®åžžèãå«ãŸããŠããŸãããããããç£äŒãååŸãããšãïŒç€ŸäŒçä¿è·ãå å®ããŠããåœã§ã¯ïŒå€é¡ã®ç£äŒæåœãåãåãããšãã§ããã§ãããã絊æããŒãã®äŒç€Ÿãããã°ãé«é¡ãªçµŠæãæãäŒç€ŸããããŸããç§ã®åŠçã®äžäººã¯ãç£äŒãåã£ãŠå¹Žåã®3åã®1ãåãåããŸããããããŠãã㯠2009 幎æ¥ãéçšåæžã®æäžã«èµ·ãããŸããããã㊠1 幎ååŸã«ã¯ãå°ãªããšãäžééçºè ã«ãªã£ãŠæ»ã£ãŠãããããããŸãããã¬ãã«6
1 ãšãªãŒããªããžã§ã¯ãã®å¯èŠæ§ããã«
- ãããã¢ããŒãŽ! - ããã«ã¡ã¯ããšãªãŒïŒä»æ¥ã¯äœãé¢çœãããšãæããŠãããŸãããïŒ- ä»æ¥ã¯ãªããžã§ã¯ãã®å¯¿åœ ã«ã€ããŠã話ããŸãããªããžã§ã¯ããäœæãããåŸãå°ãªããšã 1 ã€ã®å€æ°ã«ãã®ã¢ãã¬ã¹ãæ ŒçŽããã (å°ãªããšã 1 ã€ã®ãªããžã§ã¯ãåç §ãååšãã) ãŸã§ããªããžã§ã¯ãã¯ååš (åç¶) ããŸããåç §ããªããªã£ãå Žåããªããžã§ã¯ãã¯æ¶æ» ããŸããäŸ: - ãªããžã§ã¯ã«cat Tommy»ã¯ãäœæãããç¬éãã 1 è¡ã®ã¿ã«ååšããŸãã次ã®è¡ã§ã¯ããã®åç §ãæ ŒçŽããå€æ°ã®ã¿ã null ã«èšå®ãããJava ä»®æ³ãã·ã³ã¯ãªããžã§ã¯ããç Žæ£ããŸãã - äœæåŸã®ãªããžã§ã¯ã«cat Sammy»ã¯å€æ°cat1ã«æ ŒçŽãããŸãããšããããcat1 ã¯ãªããžã§ã¯ããžã®åç §ãä¿åããŸãã次ã«ããã®åç §ã®äžã®æ°è¡ãå€æ° cat2 ã«ã³ããŒãããŸãããã®åŸãå¥ã®ãªããžã§ã¯ããžã®åç §ã cat1 ã«ä¿åããã«cat Sammy» ãžã®åç §ã¯ cat2 ã«ã®ã¿æ®ããŸããæåŸã«ãã¡ãœãã main ã®æåŸã®è¡ã§ããªããžã§ã¯ããžã®æåŸã®åç §ã null ã«èšå®ãããŸãã - ãªããžã§ã¯ã«cat Maisy»ã¯ãäœæãããç¬éããäžè¡ã®ã¿ã«ååšããŸãã次ã®è¡ã§ã¯ãå€æ° cat2 ã«å¥ã®å€ãå²ãåœãŠããã«cat Maisy» ãžã®åç §ã倱ãããŸãããªããžã§ã¯ãã¯å°éäžèœã«ãªããã¬ããŒãž (æ»ãã ) ãšèŠãªãããŸãã - ãªããžã§ã¯ã«cat Ginger»ã¯ãäœæãããç¬éããã¡ãœãããçµäºãããŸã§ååšããŸããå®è¡æã«ã¡ãœãããçµäºãããšãå€æ° cat1 ãç Žæ£ããããã®åŸãªããžã§ã¯ã «cat Ginger» ãç Žæ£ãããŸãã - ããã¯æããã ã - ãã ããäœããã®ã¡ãœããã§ãªããžã§ã¯ã Cat ãäœæãããã®åç §ãã¯ã©ã¹å€æ°ã«ä¿åããå Žåãå¥ã®æ¢åã®ãªããžã§ã¯ãããã®åç §ãããéããCat ã¯ååšââããŸãã- éåžžããªããžã§ã¯ãã¯ããã«ã¯ç Žå£ãããŸãããJava ä»®æ³ãã·ã³ã¯ãæªäœ¿çšã®ãªããžã§ã¯ããåé€ããããã«ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ãã¢ã¯ãã£ãã«ããããšããããŸããããã«ã€ããŠã¯åŸã»ã©ã話ããŸãã- äžéšã®å€æ°ã«ãªããžã§ã¯ãåç §ã®ä¿åãåæ¢ããããå Žåã¯ããã®å€æ°ã«nullå€ãŸãã¯å¥ã®ãªããžã§ã¯ããžã®åç §ãå²ãåœãŠãããšãã§ããŸãã2 ææãã¬ããŒãžã³ã¬ã¯ã·ã§ã³
- ãããã¢ããŒãŽ! Java ã®ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ã«é¢ãã圹ç«ã€ãªã³ã¯ã¯æ¬¡ã®ãšããã§ããããã¯ç¢ºãã«ç§ã®åªããè¬çŸ©ã§ã¯ãããŸããããããã§ååã§ã: Java ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ã®åºç€3 ãšãªãŒã決ããŠ
- ãŸããã£ããïŒããã§ãã¡ãœããFinalize()ã«ã€ããŠç°¡åã«èª¬æããŸãããã®ã¡ãœããã¯ããªããžã§ã¯ããç Žæ£ãããåã«ããªããžã§ã¯ãäžã® Java ä»®æ³ãã·ã³ã«ãã£ãŠåŒã³åºãããŸããå®éããã®ã¡ãœããã¯ã³ã³ã¹ãã©ã¯ã¿ãŒã®éã§ãããã®ã¡ãœããã§ã¯ããªããžã§ã¯ãã«ãã£ãŠäœ¿çšãããŠãããªãœãŒã¹ã解æŸã§ããŸãã- ã¯ã©ã¹ Object ã«ã¯ãã®ã¡ãœãããããããããã¹ãŠã®ã¯ã©ã¹ã«ãã®ã¡ãœããããããŸã ( Java ã®ãã¹ãŠã®ã¯ã©ã¹ã¯ã¯ã©ã¹ Object ããç¶æ¿ãããŠãããšã¿ãªããããã®ã¡ãœããã®ã³ããŒãå«ãŸããŸã)ãã¯ã©ã¹ã« Finalize() ã¡ãœãããèšè¿°ãããšããã®ã¯ã©ã¹ã®ãªããžã§ã¯ããç Žæ£ãããåã«ãã®ã¡ãœãããåŒã³åºãããŸããäŸ: - ããããŸããã - ããããäžã€ã ãäºããããŸããJava ä»®æ³ãã·ã³ã¯ããã®ã¡ãœãããåŒã³åºããã©ãããèªåã§æ±ºå®ããŸããã»ãšãã©ã®å Žåãã¡ãœããå ã§äœæããããã®çµäºåŸã«ã¬ããŒãžãšããŠå®£èšããããªããžã§ã¯ãã¯ãfinalize() ã¡ãœãããåŒã³åºãããšãªãããã ã¡ã«ç Žæ£ãããŸãããã®ã¡ãœããã¯ãå€éš (JVM ã®å€) ãªãœãŒã¹å²ãåœãŠãå¶åŸ¡ãããã 1 ã€ã®æ段ã§ãããªããžã§ã¯ããç Žæ£ããå Žåã¯ã䜿çšãããŠããå€éšãªãœãŒã¹ããã¹ãŠè§£æŸããä¿åãããŠããåç §ããªã»ããããããšããå§ãããŸãããã®æ¹æ³ã®å©ç¹ãšãã®äœæ¥ã®è©³çŽ°ã10ãŸãã¯20ã®ã¬ãã«ã§èª¬æããŸãããã®éã次㮠2 ã€ã®ããšãç¥ã£ãŠããå¿ èŠããããŸãããã®ãããªã¡ãœãããååšããããšããã㊠(é©ãã¹ãããšã«! ) åžžã«åŒã³åºããããšã¯éããªãããšã§ãã4 Ellyããªããžã§ã¯ãã®åç¶æé
- ãªããžã§ã¯ãã®æå¹æéã«ã€ããŠãèå³æ·±ãããšãããã€ãã話ãããããšæããŸããJava ã§ã¯ããªããžã§ã¯ãã誀ã£ãŠå€±ãããšã¯éåžžã«å°é£ã§ãããªããžã§ã¯ãåç §ãããå Žåãããã¯ãã®ãªããžã§ã¯ãã確å®ã«çããŠããããšãæå³ããŸãã - ãªããžã§ã¯ãåç §ã®å éšã«ã¯ãã¡ã¢ãªå ã®ãã®ãªããžã§ã¯ãã®çªå·ãã€ãŸãã¢ãã¬ã¹ãæ ŒçŽãããŸãããã®æ°å€ãå€æŽããããå¢ããããæžããããããããšã¯ã§ããŸãããã¡ã¢ãªå ã«ã¢ãã¬ã¹ãããã ãã§ã¯åç §ãäœæã§ããŸãããæ°ãããªããžã§ã¯ããäœæãããã®åç §ãå€æ°ã«å²ãåœãŠãããšã®ã¿ãå¯èœã§ãããããæ°ããåç §ãååŸããå¯äžã®æ¹æ³ã§ãã - ããããã€ãŸãããã¹ãŠã®ãªããžã§ã¯ãåç §ã null (æ¶å») ã«èšå®ãããšããªããžã§ã¯ãåç §ãååŸããŠã¢ã¯ã»ã¹ã§ããªããªããŸãã - ã¯ãããããå€ãã®å Žåããã®éãåœãŠã¯ãŸããŸããæªäœ¿çšã®ã©ã€ã ãªããžã§ã¯ããå€ãããã®ã§ããã»ãšãã©ã®ããã°ã©ã ã¯ãå®è¡æã«æ°åã®ãªããžã§ã¯ããäœæããããããç°ãªããªã¹ãã«ä¿åããŸããããããã®ãªã¹ããã¯ãªãŒã³ã¢ããããããšã¯ãããŸããã -ã»ãšãã©ã®å Žåãããã°ã©ãã¯äžèŠãªãªããžã§ã¯ãã«ãåé€æžã¿ããšããã©ãã«ãä»ããã ãã§ãã圌ãããªã¹ãããåé€ãããããšã誰ãæ°ã«ããŸãããéåžžã«å€§ã㪠Java ããã°ã©ã ã¯è¥å€§åããåŸåããããã¡ã¢ãªå ã«æ®ãããæªäœ¿çšã®ãªããžã§ã¯ãããŸããŸãå¢ããŠããŸãã- ããã§å šéšã§ããä»åŸã¯ãæªäœ¿çšã®ç©åãšãã®é©åãªåŠåã«åžžã«æ³šæãæãããã«ããŠãããŸãã -ÐKãããããšããåç §ã«é¢ããããã€ãã®ããšã解決ããŸããã5 Diegoããªããžã§ã¯ãåç¶æéã¿ã¹ã¯
- ãããã¢ããŒãŽ! 以äžã«ããã€ãã®ã¿ã¹ã¯ã瀺ããŸããã¿ã¹ã¯ | |
---|---|
1 | 1. Catã¯ã©ã¹ã®finalize()ã¡ãœãã Catã¯ã©ã¹ã«ã¡ãœãã protected void Finalize() throws Throwable |
3 | 2. Cat ã¯ã©ã¹ãš Dog ã¯ã©ã¹ãããã³åã¯ã©ã¹ã® Finalize() ã¡ãœãã Cat ã¯ã©ã¹ãš Dog ã¯ã©ã¹ã®ããããã«ããªããžã§ã¯ããç Žæ£ããããšããã¡ãã»ãŒãžãç»é¢ã«è¡šç€ºããFinalize()ã¡ãœãããèšè¿°ããŸãã |
3 | 3. Cat ã¯ã©ã¹ã® 50,000 åã®ãªããžã§ã¯ããš Dog ã¯ã©ã¹ã® 50,000 åã®ãªããžã§ã¯ã Cat ã¯ã©ã¹ã® 50,000 åã®ãªããžã§ã¯ããš Dog ã¯ã©ã¹ã® 50,000 åã®ãªããžã§ã¯ããã«ãŒãå ã«äœæããŸãã(Java ä»®æ³ãã·ã³ã¯æªäœ¿çšã®ãªããžã§ã¯ããç Žæ£ãããããã¡ãœããFinalize() ãå°ãªããšã 1 ååŒã³åºãããŸã)ã |
4 | 4. Cat ã«ãŠã³ã¿ Cat ã¯ã©ã¹ã®ã³ã³ã¹ãã©ã¯ã¿ [public Cat()] ã§ãcat ã«ãŠã³ã¿ (åã¯ã©ã¹ã®éçå€æ° catCount) ã 1 å¢ãããŸããfinalize()ã¡ãœããã§1 æžãããŸãã |
6 Ellyãéçã¯ã©ã¹ãšã¡ãœãã
- ããã«æ°ããèå³æ·±ããããã¯ããããŸããéçå€æ°ãšéçã¡ãœããã«ã€ããŠèª¬æããããšæããŸãã - ãããéçå€æ°ã«ã€ããŠã¯ãã§ã«èããŸãããéçã¡ãœããã«ã€ããŠãåæ§ã ãšæããŸãããããããã£ãšè©³çŽ°ãç¥ãããã§ãã -ã¯ã©ã¹ã§å€æ°ã宣èšãããšãã¯ããããã®å€æ°ãåäžã®å ±æã€ã³ã¹ã¿ã³ã¹ã§äœæããããã©ããããŸãã¯ãªããžã§ã¯ãããšã«å€æ°ã®ã³ããŒãäœæããå¿ èŠããããã©ãããæå®ããŸããããã©ã«ãã§ã¯ããã®ã¯ã©ã¹ã®ãªããžã§ã¯ãããšã«ã¯ã©ã¹å€æ°ã®æ°ããã³ããŒãäœæãããŸããããã¯æ¬¡ã®ããã«ãªããŸãã - å€æ°cat1.nameãšcat2.nameã¯åãã¯ã©ã¹ Cat ã§å®£èšãããŠããŸãããç°ãªããªããžã§ã¯ãã«ãã€ã³ããããŠãããããç°ãªãå€ãæ ŒçŽãããŸãã - ããã¯æããã ã - éçå€æ°ã¯åäžã®ã€ã³ã¹ã¿ã³ã¹ã«ååšããŸããã¯ã©ã¹åã䜿çšããŠã¢ã¯ã»ã¹ããå¿ èŠããããŸãã - ãããæ確ã§ãã - ã¯ã©ã¹ã¡ãœããã 2 ã€ã®ã«ããŽãªã«åé¡ãããŸããéåžžã®ã¡ãœããã¯ãªããžã§ã¯ãã«å¯ŸããŠåŒã³åºããããã®ãªããžã§ã¯ãã®ããŒã¿ã«ã¢ã¯ã»ã¹ããŸãã éçã¡ãœããã«ã¯ãªããžã§ã¯ãåç §ããªãããããã®ãããªã¢ã¯ã»ã¹æš©ã¯ãããŸãããéçã¡ãœããã¯ããã®ã¯ã©ã¹ã®éçå€æ°ãŸãã¯ä»ã®éçã¡ãœããã«ã¢ã¯ã»ã¹ã§ããŸãã - éçã¡ãœããã¯ééçã¡ãœãããŸãã¯ééçå€æ°ã«ã¢ã¯ã»ã¹ã§ããŸããã - ãªããããªã®ãïŒ - ãã¹ãŠã®éåžžã®ã¯ã©ã¹å€æ°ã¯ãªããžã§ã¯ãå ã«é 眮ãããŸããã©ã®ã¡ãœãããããã®ãªããžã§ã¯ããžã®åç §ãããå Žåã«ã®ã¿ããã®ãããªå€æ°ã«ã¢ã¯ã»ã¹ã§ããŸãããã®ãããªåç §ã¯éçã¡ãœããã«ã¯æž¡ãããŸããã ââéåžžã®æ¹æ³ã§ã¯ã©ãã§ããããïŒ -éåžžã®ã¡ãœããã«ã¯ããã®ã¡ãœãããåŒã³åºããããªããžã§ã¯ããžã®é ãåç §ãæž¡ãããŸãããã®åç §ãæ ŒçŽããå€æ°ã¯thisãšåŒã°ããŸãããããã£ãŠãã¡ãœããã¯åžžã«ç¬èªã®ãªããžã§ã¯ãã®ããŒã¿ãååŸããããåããªããžã§ã¯ãã®å¥ã®ééçã¡ãœãããåŒã³åºãããããããšãã§ããŸãã- null ããªããžã§ã¯ãåç §ã§ã¯ãªãéçã¡ãœããã«æž¡ãããŸãããããã£ãŠãéçã¡ãœããã¯ééçå€æ°ãã¡ãœããã«ã¢ã¯ã»ã¹ã§ããŸããããã€ã³ããããŠãããªããžã§ã¯ããžã®åç §ããªãã ãã§ãã - ãããã - ããããéåžžã®ééçã¡ãœããã®åäœæ¹æ³ã§ãã - ãããŠãéçã¡ãœããã®åäœ æ¹æ³ã§ãã - å€æ°ãŸãã¯ã¡ãœããã¯ãããŒã¯ãŒã static ã§å®£èšãããŠããå Žåãéçã§ãã - ãããŠããã®ãããªæ¹æ³ãéåžžã«éå®ãããŠããå Žåããã®æ¹æ³ã«ã¯äœã®å©ç¹ãããã®ã§ãããã? - ãã®ã¢ãããŒãã«ã¯å©ç¹ããããŸãã- ãŸããéçã¡ãœãããå€æ°ã«ã¢ã¯ã»ã¹ããããã«ãªããžã§ã¯ãåç §ãæž¡ãå¿ èŠã¯ãããŸããã- 第äºã«ãå€æ°ãå¯äžã®ãã®ã§ããããšãå¿ èŠãªå ŽåããããŸããããšãã°ãå€æ° System.out (System ã¯ã©ã¹ã®éçå€æ°) ã®ããã«ã- ãã㊠3 çªç®ã«ããªããžã§ã¯ããäœæããåã«ã¡ãœãããåŒã³åºãå¿ èŠãããå ŽåããããŸãã -ã©ããªæ©äŒã«ïŒ- main ã¡ãœããã static ãšå®£èšãããŠããã®ã¯ãªãã ãšæããŸãã? ã¯ã©ã¹ãã¡ã¢ãªã«ããŒããããçŽåŸããªããžã§ã¯ããäœæã§ããåã« åŒã³åºãã«ã¯ã7 Rishaãéçã¯ã©ã¹ãšã¡ãœãã
-éçã¡ãœããã«å ããŠãéçã¯ã©ã¹ããããŸãããã®ã±ãŒã¹ã«ã€ããŠã¯åŸã§æ€èšããŸãããããã§ã¯ãã®äŸã瀺ããŸãã - ã¯ã©ã¹ Cat ã®ãªããžã§ã¯ãã¯å¿ èŠãªã ãäœæã§ããŸããåäžã®ã€ã³ã¹ã¿ã³ã¹ã«ååšããéçå€æ°ãšã¯ç°ãªããŸãã- ã¯ã©ã¹å®£èšåã®ä¿®é£Ÿåstaticã®äž»ãªç®çã¯ãã¯ã©ã¹Catãšã¯ã©ã¹StaticClassExampleã®éã®é¢ä¿ãç¶æããããšã§ããäžè¬ã«ãã¯ã©ã¹ Cat ã¯StaticClassExample ãªããžã§ã¯ãã«ãã€ã³ããããŠããã (é衚瀺ã®åç §ãæãã) ãéåžžã® (éçã§ã¯ãªã) StaticClassExample å€æ°ã«ã¢ã¯ã»ã¹ã§ããŸããã - ä»ã®ã¯ã©ã¹ã®äžã«ã¯ã©ã¹ãäœæã§ãããšããããšã§ãã? - ã¯ããJava ã¯ãããå¯èœã«ããŸããããŠãããŸãèããªãã§ãã ãããåŸã»ã©ããã®ä»ã®ããšã«ã€ããŠèª¬æããŸããããããã°ããã¹ãŠãå°ãç°¡åã«ãªãã§ãããã - ããã ãšããã8 Diegoãéçã¡ãœããã«é¢ããã¿ã¹ã¯
- ãããã¢ããŒãŽ! 以äžã«ãéçã¡ãœããã«é¢ããèå³æ·±ãã¿ã¹ã¯ãããã€ã瀺ããŸããã¿ã¹ã¯ | |
1 | 1. Catã¯ã©ã¹ãšéçå€æ°catCountã¯ã©ã¹Catã« éçå€æ°int catCountãèšè¿°ããŸããã³ã³ã¹ãã©ã¯ã¿ãŒ [ public Cat() ] ãäœæããŸãããã®ã³ã³ã¹ãã©ã¯ã¿ãŒã§ã¯ãæå®ãããå€æ°ã 1 ãã€å¢ããå¿ èŠããããŸãã |
2 | 2. éçã¡ãœãã: int getCatCount() ããã³ setCatCount(int) ã¯ã©ã¹ Cat ã« 2 ã€ã®éçã¡ãœãããè¿œå ããŸã: int getCatCount( ) ããã³setCatCount(int)ããããã䜿çšããŠãç«ã®æ° (å€æ° catCount) ãååŸ/å€æŽã§ããŸãã |
3 | 3. ã¯ã©ã¹ Util éçã¡ãœããdouble getDistance(x1, y1, x2, y2)ãå®è£ ããŸããç¹éã®è·é¢ãèšç®ããå¿ èŠããããŸããdouble Math.sqrt(double a)ã¡ãœããã䜿çšããŠãæž¡ããããã©ã¡ãŒã¿ãŒã®å¹³æ¹æ ¹ãèšç®ããŸãã |
4 | 4. ConsoleReader ã¯ã©ã¹ ConsoleReader ã¯ã©ã¹ãäœæããŸããããã«ã¯ 4 ã€ã®éçã¡ãœããããããŸãã -ããŒããŒãããæååãèªã¿åãString readString() -ããŒããŒãããæ°å€ãèªã¿åãint readInt() -ããŒããŒãããå°æ°ãèªã¿åãdouble readDouble() - void readLn () Enter ããŒãæŒãã®ãåŸ ã¡ãŸã [readString() ã䜿çš] |
5 | 5. StringHelper ã¯ã©ã¹ StringHelper ãäœæããŸãããã®ã¯ã©ã¹ã«ã¯ 2 ã€ã®éçã¡ãœããããããŸãã - String multiply(String s, int count) ã¯ãæåå s ã®ç¹°ãè¿ãåæ°ãè¿ããŸãã - String multiply(String s) ã¯ã 5 åç¹°ãè¿ãããæåå s ãè¿ãå¿ èŠããããŸãã äŸïŒ ã¢ããŒãŽ â ã¢ããŒãŽã¢ããŒãŽã¢ããŒãŽã¢ããŒãŽã¢ããŒãŽ |
9 ææããªããžã§ã¯ãã®éçã¹ã³ãŒããšã©ã€ãã¿ã€ã
- ãŸããŸãç§ã§ããæ®å¿µãªãããä»æ¥ã¯ãªã³ã¯ãæäŸã§ããŸããããã®çŽ æŽãããè¬çŸ©ã¯ã©ããã«æ¶ããŠããŸããŸããç³ãèš³ãããŸããããä»æ¥ã¯ãèªèº«ã§ãããªããã°ãªããŸãããã§ãããšãªãŒãšãªãŒã·ã£ã«ãã£ãšè³ãåŸããã»ãããããã圌ãã¯ãã€ã§ãããªãã«äœããæããŠããããããããã§ãããããè©ŠããŠã¿ãŠãã ãã:ãªããžã§ã¯ãã®ã©ã€ããµã€ã¯ã«7æ10æ¥
- ãããã¢ããŒãŽ! ä»æ¥ã¯çŽ æŽãããä»äºãããŸãããã ããããããã以äžã¯ãããããªãã®ã§ããããã座ã£ãŠãã ãããã·ã§ãŒãå§ãŸããŸãã11 ãã£ããã³ãªã¹
- ããã«ã¡ã¯ãå µå£«ããïŒ - ãã¯ããããããŸãïŒ - çŽ æŽããããã¥ãŒã¹ããããŸããã¹ãã«ã匷åããããã®ç°¡åãªãã§ãã¯ã次ã«ç€ºããŸããæ¯æ¥ããã°ãããã«ã¹ãã«ãåäžããŸããã¿ã¹ã¯ã¯ãIntellij IDEA ã§å®è¡ããããã«ç¹å¥ã«èšèšãããŠããŸããIntellij Idea ã§å®è¡ããè¿œå ã¿ã¹ã¯ | |
---|---|
1 | Cat ã¯ã©ã¹ãšéçå€æ° catCountã¯ã©ã¹ Cat ã« éçå€æ°public int catCountãèšè¿°ããŸããã³ã³ã¹ãã©ã¯ã¿ãŒ [public Cat()] ãäœæããŸããç« (æ°ãããªããžã§ã¯ã Cat) ãäœæãããã³ã«ãéçå€æ°catCountã 1 ãã€å¢å ãããŸãã10 åã®ãªããžã§ã¯ã Cat ãäœæããå€æ°catCountã®å€ã衚瀺ããŸãã |
2 | 2. åããªãç«
å€æ° ãäœæããã«ã¯ã次ã®ã³ãŒãè¡ã䜿çšããŸããpublic static ArrayList<Cat> cat = new ArrayList<Cat>(); |
3 | 3. 1 ã€ã®éç修食åã移åãã ã³ãŒããã³ã³ãã€ã«ãããããã«ã1 ã€ã®éç修食åã移åããŸãã |
4 | 4. éçããŒã¯ãŒãã®æå°æ° ã³ãŒããã³ã³ãã€ã«ããŠããã°ã©ã ãæ£åžžã«å®äºããã«ã¯ã æå°æ°ã®éçããŒã¯ãŒããè¿œå ããŸãã |
5 | 5. æ°ããã¢ã€ãã¢ã¯ãããŸãã? èããŸããã...
|
6 | 6. KissMyShinyMetalAss KissMyShinyMetalAss ãšããååã®ã¯ã©ã¹ãäœæããŸãããã®ã¯ã©ã¹ã®ãªããžã§ã¯ããäœæããç»é¢ã«è¡šç€ºããŸãã |
7 | 7. 3 ã€ã®éçå€æ°å 3 ã€ã®ãããªãã¯éçå€æ°ãæžã蟌ã¿ãŸã: String Solution.nameãString Cat.nameãString Dog.name |
GO TO FULL VERSION