Javaå ¥éã§ã¯ããã£ã¨ä»¥ä¸ã®ããã«æ¸ãããã³ã³ã¹ãã©ã¯ã¿ã§ã¤ã³ã¹ã¿ã³ã¹ã¡ã½ãããå®è¡ãããã¨ã«ã¤ãã¦æãä¸ãã¦ã¿ã¾ãã
ã³ã³ã¹ãã©ã¯ã¿ããã¤ã³ã¹ã¿ã³ã¹ã¡ã½ããã使ç¨ãããã¨ã¯å¯è½ã§ãããé¿ããã»ããç¡é£ã§ãã ã³ã³ã¹ãã©ã¯ã¿ã®å®è¡ä¸ã¯ã¤ã³ã¹ã¿ã³ã¹èªä½ãæ§ç¯ä¸ã®ãããåæåãå®äºãã¦ããªãç¶æ ã§ã¡ã½ãããå®è¡ããããã¨ã«ãªãã¾ãã
![Javaã¨ã³ã¸ãã¢é¤æèªæ¬ [ç¾å ´ã§å½¹ç«ã¤ææ°ç¥èãæºè¼!] (Software Design plus) Javaã¨ã³ã¸ãã¢é¤æèªæ¬ [ç¾å ´ã§å½¹ç«ã¤ææ°ç¥èãæºè¼!] (Software Design plus)](http://ecx.images-amazon.com/images/I/51xFRhSvA%2BL._SL160_.jpg)
Javaã¨ã³ã¸ãã¢é¤æèªæ¬ [ç¾å ´ã§å½¹ç«ã¤ææ°ç¥èãæºè¼!] (Software Design plus)
- ä½è : ããã ãªãã,ã®ããã²ããµã¿,åç°çä¹,èç°æ´ä¸,渡辺修å¸,ä¼è³æ樹
- åºç社/ã¡ã¼ã«ã¼: æè¡è©è«ç¤¾
- çºå£²æ¥: 2014/11/11
- ã¡ãã£ã¢: 大åæ¬
- ãã®ååãå«ãããã° (6件) ãè¦ã
æç« ã ãã§ä¼ããã®ã¯ãªããªãé£ãããã®ã ã¨ãæãã¾ããã æ¬ã«æ¸ããã®ã«å®éã«ãã®åé¡ãè¦ãæã«å³è§£æ±ºã§ããªãã¦æããã£ã ã®ã§ã çªã£è¾¼ãã§ãã£ããæ¸ããã¨ã«ãã¾ããããããããã
ç°¡åãªãµã³ãã«ã³ã¼ã
ã³ã³ã¹ãã©ã¯ã¿ã§ã®ã¤ã³ã¹ã¿ã³ã¹ã¡ã½ããå¼ã³åºããåé¡ãèµ·ããã³ã¼ãã¯ã以ä¸ã®ããã«ãªãã¾ãã
/* ãã®ã³ã¼ãã¯åä½ãã¾ãã */ class Hoge { final String str; Hoge () { invoke(); this.str = "HOGERA"; } void invoke() { System.out.println(str.length()); } }
new Hoge()
ã¨ãããã¨NullPointerException
ã§ãã
Exception in thread "main" java.lang.NullPointerException at blog.constructor.Hoge.invoke at blog.constructor.Hoge.<init>
ãã®ãããçãã³ã¼ããªããæµç³ã«ãããªãã§ããããã
ã³ã³ã¹ãã©ã¯ã¿ã¨invoke
ã¡ã½ããã®éã«æ°ç¾è¡ã®éãããããã°ã©ãã§ãããï¼
ãã£ã¼ã«ãã¯final
ã ãããã£ãã使ã£ã¦ãã¾ãããããã¾ããã
ä½ææã¯åé¡ããªãã£ãã¨ãã¦ããä¸å
·åæ¹ä¿®ãªã©ã§ãã®æã®åé¡ãèµ·ããã¦ãã¾ã£ãã¨ãã¦ãã
ãã®éçºè
ãä¸æ³¨æã ã¨è²¬ãç«ã¦ããã¨ã¯ãç§ã«ã¯åºæ¥ãããããã¾ãããï¼èªåããã£ã¡ããã ããããï¼
å°ãè¤éã«ãããµã³ãã«ã³ã¼ã
ããã«åé¡ãè¤éã«ããã¨ãåé ã®ããã«1ã¯ã©ã¹ã«å®çµãã¦ããå½¢ã§ã¯åé¡ãªãåä½ãã¦ããã«ããããããã ç¶æ¿ããã¨åé¡ãèµ·ãããã¿ã¼ã³ãèãããã¾ããæ¬ä¼¼çãªã³ã¼ãã¯æ¬¡ã®ãããªãã®ã«ãªãã¾ãã
/* ãã®ã³ã¼ãã¯åä½ãã¾ãã */ abstract class Parent { final String arg; Parent(String arg) { init(); this.arg = arg; } abstract void init(); } class Child extends Parent { Child(String arg) { super(arg); } @Override void init() { System.out.println(arg.toUpperCase(Locale.ROOT)); } }
new Child("xxx")
ã¨ãã§NullPointerException
ã«ãªãã¾ãã
Exception in thread "main" java.lang.NullPointerException at blog.constructor.Child.init at blog.constructor.Parent.<init> at blog.constructor.Child.<init>
å°ã説æè½ã¡çãã¦ã³ã¼ãã追ãã°ãã³ã³ã¹ãã©ã¯ã¿å¼æ°ããã£ã¼ã«ãã«æ ¼ç´ãããåã«ã
ãã®ãã£ã¼ã«ããåç
§ãã¦ããã®ã§ããã£ã¼ã«ãåã®ããã©ã«ãå¤ï¼åç
§åãªã®ã§null
ã«ãªãï¼ã¨ãªã£ã¦ããã ãã§ãã
ãããããã®NullPointerException
ã«ééããã¨ããããããfinal
ãã£ã¼ã«ããªã®ã«ãªãå¤ãå
¥ã£ã¦ããªããã ï¼ãã¨ãªãã¾ãã
ã³ã³ã¹ãã©ã¯ã¿ã®å¼æ°ãnull
ã«ãªã£ã¦ããªããããã©ããã§åã渡ãæãã¦ãªãããªã©ã確èªããããããã¾ããã
ãããã¬ã§init
ã¡ã½ããã«ãã¬ã¤ã¯ãã¤ã³ããç½®ãã¦ã¿ããããããããã¾ããããããè¦ã¦ããäºå®ã示ãããã«ãã£ã¼ã«ãã¯null
ã§ãã
ç¶æ¿é層ãæ·±ããªãã¨ãã¡ã½ããã®å¼ã³åºãã¿ã¤ãã³ã°ãããããªããªã£ã¦ããã¾ãã å ¨ã¦ã®ã³ã¼ãã®è©³ç´°ãææ¡ãããã¨ã¯å°é£ã§ãããå ¨ã¦ã®äººã«ãããæ±ããã¹ãã§ã¯ããã¾ããã ä¸è¨ã®ããã«initã¡ã½ãããæ¡å¼µãã¤ã³ãã®ããã«æ±ããã¦ããã¨ããã¬ã¼ã ã¯ã¼ã¯ãã³ã³ã¹ãã©ã¯ã¿ã®å¾ã«å¼ã³ã ãåæåå¦çã¨æ³åãã¦ããä¸æè°ã§ã¯ãªãã§ãããã
ããã«è¤éã«ããï¼ç¥
ãã£ã¨è¤éã«ããã£ã¨ãããã«ãããããã¨ã¯å¯è½ã§ãããã£ã¨ãã£ã¨ã ã§ããæ¸ãã¦ã楽ãããªãã®ã§ç®æ¡æ¸ãã§è¨±ãã¦ãã ããã
- ã³ã³ã¹ãã©ã¯ã¿ã§å¼ã°ããã¡ã½ããï¼ä¸è¨ã ã¨
init
ï¼ã§ä¾å¤ãçºçãããããããå¼ã³åºããã¡ã½ããã§çºçããã- ã¹ã¿ãã¯ãã¬ã¼ã¹ãæ·±ããªããã³ã³ã¹ãã©ã¯ã¿ã示ã
<init>
ãåºãªãã®ã§åé¡ã®æ¤åºãé ãã¾ãã
- ã¹ã¿ãã¯ãã¬ã¼ã¹ãæ·±ããªããã³ã³ã¹ãã©ã¯ã¿ã示ã
- ã³ã³ã¹ãã©ã¯ã¿ã§å¼ã°ããã¡ã½ããã§çæãããã¤ã³ã¹ã¿ã³ã¹ã«ãã£ã¼ã«ãã®ããã©ã«ãå¤ãè¨å®ãããã
null
ã§å³ä¾å¤ãçºçããã°ããã®ã§ãããçæãããã¤ã³ã¹ã¿ã³ã¹ã«æå³ãã¬å¤ãå ¥ã£ãã¾ã¾ãã°ããçµã¡ãå¥ã®ã¿ã¤ãã³ã°ã§ä¸æ£ãªç¶æ ã§å®è¡ããããã¨ã«ãªãã¾ãã- ãã®ãã¿ã¼ã³ã§ããã«åé¡ãèµ·ããã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹çæç®æãå¤ãã£ããããã¨ãåå ã®ç¹å®é£åº¦ã¯ããã«ä¸ããã¾ãã
- 対象ãããªããã£ãå
- åç
§åã§ããã°
NullPointerException
ãçºçãããã¨ã§å©ããã¾ãï¼ãããä¾å¤ãçºçããã°ã¾ã å©ããã®ã§ããå°ãªãã¨ãä¸æ£ãªæ´æ°ãè¡ã£ãããã¦ãã¼ã¿ãå£ãå¯è½æ§ã¯ä¸ããã¾ããã¬ãã½ã¯ããåã§ããï¼ããããªããã£ãåãªãããããããã©ã«ãå¤ã§ãã®ã¾ã¾ãããªãåãã¦ãã¾ãã¾ãã
- åç
§åã§ããã°
- ãã£ã¼ã«ãåç §ã§ã¯ãªãããã®ãã£ã¼ã«ãã使ç¨ããå¥ã®ã¡ã½ããã使ç¨ããã
- ãã£ã¼ã«ãã
final
ã§ãªããé »ç¹ã«æ¸ããããã
â¦â¦ãããªã®ãããã°ããããªãã§ãã
ã©ãããã°ï¼
Javaå ¥éã§ã¯ãããªæãã§æ¸ãã¾ããã
ããã¤ã³ã¹ã¿ã³ã¹ã¡ã½ãããå®è¡ããå¿ è¦ãããã®ãªãã°ãprivateã¡ã½ãããfinalã¡ã½ããã®ãã㪠æ¡å¼µãããªãã¡ã½ããã«ã§ããªãããæ¤è¨ãã対象ã®ã¡ã½ããå ã§ä»ã®ã¡ã½ãããå¼ã³åºããªãããã«æ°ãã¤ãã¾ãããã
æ¸ãããã¨ã¯æ¸ããã¾ã¾ãªã®ã§ãããã¾ã ä»ã«ãèãããã¾ãã
æä¾å´ã¨ãã¦ãã©ãããã°ããã
ããå®è£ ã¯ã©ã¹ã§æ¡å¼µãããã¨ãæ³å®ããã¤ã³ã¹ã¿ã³ã¹ã¡ã½ããããã³ã³ã¹ãã©ã¯ã¿ã§ã©ããã¦ãå®è¡ãããã®ãªãã°ãã©ãããã°è¯ãããèãã¦ã¿ã¾ãã ã¾ãããã®ã¡ã½ãããä½ãããããã®æ¡å¼µãã¤ã³ãã§ãããã©ãããã¿ã¤ãã³ã°ã§å®è¡ãããããªã© ããã¥ã¡ã³ãããã£ããæ¸ãã¦ãã ãã ã ããã¦ãä¸åã®ã¡ã³ãã使ç¨ç¦æ¢ã«ãã¾ããããã¯ä¸é層以ä¸ã®ç¶æ¿ãããå ´åãäºé層ç®ã®ã³ã³ã¹ãã©ã¯ã¿ã§åæåããããã£ã¼ã«ããããã使ç¨ããã¡ã½ãããæ£å¸¸ã«åä½ããªãã¿ã¤ãã³ã°ã§å¼ã°ãã¦ãã¾ãããã§ããããã®ãã¨ãå ·è±¡åãããã¨ãã¦ããã¯ã©ã¹ã§ã®æ¤ç¥ãå°é£ã ããã§ãã ãã®ä¸ã§ãã¡ã½ããã§ä½¿ç¨ããå¤ã¯ å ¨ã¦ ã¡ã½ããã®å¼æ°ã§æ¸¡ãã¾ãããã
ããã§ãããããæ°ãã¤ãã¦ä½¿ã£ã¦ããã°å¤§ä¸å¤«ãªå¯è½æ§ã®ããç©ä½ã«ãªãããããã¾ããã ããããééã£ã使ãæ¹ã®ã§ãããã®ã¯ãééã£ã使ãæ¹ãããããã®ã§ãã è¦ç´ããã¨ããããããªãã¨ãããã¨ã§ããèãç´ãã¾ããããçé¢ç®ã«ãçå£ã«ãæªããã¨è¨ããªãããã
å©ç¨å´ã¨ãã¦ãã©ãããã°ããã
ãã¦ãå©ç¨å´ã®è¦ç¹ã§ã©ãããã°ãããã«ã¯è§¦ãã¦ãã¾ããã§ããã
ãã㯠ãããå©ç¨è ãæ°ãã¤ãã¦ããå®å ¨ã«è¨è¨ã§ãã¦ããªããã®ããå®å ¨ã«ä½¿ç¨ãããã¨ã¯ã§ããªã ããã§ãã åç´ãªã±ã¼ã¹ã§ããã°ãã¹ãã³ã¼ããªã©ã§æ¯è¼ç容æã«æ¤åºã¯ã§ããã®ã§ããããããã«è¤éã«ããï¼ç¥ããããã§æ¸ãã¦ãããã®ã¯è¾ãã§ãã
ãã¬ã¼ã ã¯ã¼ã¯ãã©ã¤ãã©ãªã®ã³ã¼ããèªããã¨ã¯æ¨å¥¨ãããã®ã§ãããå¿ é ã§ã¯ããã¾ããã ç¹ã«ä»äºã§ã¯ã³ã¹ãã¯ç¢ºä¿ãããªãã§ãããããããããã¹ãã«ãæ±ããããªãã§ãããã ãªã®ã§ãä¸å ·åã«æ°ã¥ãããä¿®æ£ä¾é ¼ãããããè¿åããããããããå½ã¦ããããã§ãããããã
ãã¨ãã
Javaå ¥é 第2ç« ãã¯ã©ã¹ãç解ãããã®æå¾ã®æ¹ã«æ¸ãã ã³ã³ã¹ãã©ã¯ã¿ã§ã¯æ³¨æãã¦ã¡ã½ããã使ç¨ãã ãæãä¸ãã¦ã¿ã¾ããã ã³ã¼ãããæ¹ãããããããããªãã©ãã ãããã©ã£ã¡ã§ããããã«ããããã¨è¨ããããããããªããã¨ããè¨ãããããªãã ãããå ¨é¨ãã®ããªã§æ¸ããããã¼ã¸ããããã£ã¦ãâ¦â¦é£ããã
åºçããã¦ãã1å¹´çµã¡ã¾ãããå 容ã¯ã¾ã å¤ããªã£ã¦ã¾ããã ãã®ãªãã§ããããªæãã®å 容ãå ¥éã¨è¨ãå¼µã£ã¦ã¾ããå ¥éã ããããã