Javaã«ãŠã„ã¦ãƒ¡ãƒ³ãƒã¸ã®ã‚¢ã‚¯ã‚»ã‚¹åˆ¶å¾¡ã¯ã€ãƒ—ãƒã‚°ãƒ©ãƒ ã®ã‚»ã‚ュリティã€ãƒ‡ãƒ¼ã‚¿ã®éš 蔽ã€ã‚³ãƒ¼ãƒ‰ã®ä¿å®ˆæ€§ãªã©ã‚’å‘上ã•ã›ã‚‹ãŸã‚ã«éžå¸¸ã«é‡è¦ã§ã™ã€‚以下ã«ã€ãƒ¡ãƒ³ãƒã¸ã®ã‚¢ã‚¯ã‚»ã‚¹åˆ¶å¾¡ã®é‡è¦æ€§ã‚’説明ã—ã¾ã™ã€‚
- ã‚»ã‚ュリティã®å‘上: プãƒã‚°ãƒ©ãƒ ãŒã‚»ã‚ュリティ上ã®è„†å¼±æ€§ã‚’æŒã¤ã¨ã€ä¸æ£ãªã‚¢ã‚¯ã‚»ã‚¹ã‚„悪æ„ã‚る変更ãŒç™ºç”Ÿã™ã‚‹å¯èƒ½æ€§ãŒé«˜ã¾ã‚Šã¾ã™ã€‚メンãƒã¸ã®ç›´æŽ¥ã‚¢ã‚¯ã‚»ã‚¹ã‚’制御ã™ã‚‹ã“ã¨ã§ã€ãƒ—ãƒã‚°ãƒ©ãƒ 内ã§ã®ãƒ‡ãƒ¼ã‚¿ã‚„メソッドã®åˆ©ç”¨ã‚’厳密ã«ç®¡ç†ã—ã€ä¸æ£ãªã‚¢ã‚¯ã‚»ã‚¹ã‹ã‚‰ä¿è·ã§ãã¾ã™ã€‚
- データã®éš 蔽: メンãƒã¸ã®ã‚¢ã‚¯ã‚»ã‚¹åˆ¶å¾¡ã«ã‚ˆã‚Šã€ãƒ—ãƒã‚°ãƒ©ãƒ ã®ä¸€éƒ¨ã‚’外部ã‹ã‚‰éš ã™ã“ã¨ãŒã§ãã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€ä»–ã®ã‚¯ãƒ©ã‚¹ã‚„モジュールã¯ã‚ªãƒ–ジェクトã®å†…部実装ã®è©³ç´°ã‚’知らãªãã¦ã‚‚ã€å…¬é–‹ã•れãŸãƒ¡ã‚½ãƒƒãƒ‰ã‚„インターフェースを通ã˜ã¦å¿…è¦ãªæ©Ÿèƒ½ã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã™ã€‚ã“ã®æ¦‚å¿µã¯æƒ…å ±éš è”½ã¨ã‚‚呼ã°ã‚Œã¾ã™ã€‚
- コードã®ä¿å®ˆæ€§å‘上: メンãƒã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’é©åˆ‡ã«åˆ¶å¾¡ã™ã‚‹ã“ã¨ã§ã€ã‚¯ãƒ©ã‚¹ã®å®Ÿè£…ã®å¤‰æ›´ãŒä»–ã®éƒ¨åˆ†ã«å½±éŸ¿ã‚’与ãˆã«ãããªã‚Šã¾ã™ã€‚公開ã•れãŸã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェースãŒå¤‰æ›´ã•れãªã„é™ã‚Šã€ä»–ã®ã‚¯ãƒ©ã‚¹ã¯å†…部ã®å¤‰æ›´ã«æ°—ã¥ã‹ãšã«åˆ©ç”¨ã§ãã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€ã‚³ãƒ¼ãƒ‰ã®å¤‰æ›´ã‚„æ›´æ–°ãŒå®¹æ˜“ã«ãªã‚Šã€ä¿å®ˆæ€§ãŒå‘上ã—ã¾ã™ã€‚
- カプセル化ã®ä¿ƒé€²: アクセス制御ã¯ã€ã‚ªãƒ–ジェクト指å‘プãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã®åŽŸå‰‡ã§ã‚るカプセル化を実ç¾ã™ã‚‹ãŸã‚ã®æ‰‹æ®µã§ã™ã€‚カプセル化ã¯ã€é–¢é€£ã™ã‚‹ãƒ‡ãƒ¼ã‚¿ã¨ãƒ¡ã‚½ãƒƒãƒ‰ã‚’1ã¤ã®å˜ä½ã«ã¾ã¨ã‚ã€å¤–部ã‹ã‚‰ã®ç›´æŽ¥ã‚¢ã‚¯ã‚»ã‚¹ã‚’制é™ã™ã‚‹ã“ã¨ã§ã€ãƒ—ãƒã‚°ãƒ©ãƒ ã®æ§‹é€ ã‚’æ•´ç†ã—ã€ç†è§£ã—ã‚„ã™ãã—ã¾ã™ã€‚
- オブジェクトã®ç‹¬ç«‹æ€§: メンãƒã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’制御ã™ã‚‹ã“ã¨ã§ã€ã‚ªãƒ–ジェクトã¯ä»–ã®ã‚ªãƒ–ジェクトã‹ã‚‰ç‹¬ç«‹ã—ã¦æ©Ÿèƒ½ã—ã‚„ã™ããªã‚Šã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€å„オブジェクトãŒè‡ªå·±ç®¡ç†ã•れã€ä»–ã®ã‚ªãƒ–ジェクトã«ä¾å˜ã—ãªã„よã†ãªè¨è¨ˆãŒå¯èƒ½ã«ãªã‚Šã¾ã™ã€‚
ç·ã˜ã¦ã€ãƒ¡ãƒ³ãƒã¸ã®ã‚¢ã‚¯ã‚»ã‚¹åˆ¶å¾¡ã¯ãƒ—ãƒã‚°ãƒ©ãƒ ã®å®‰å…¨æ€§ã€æŸ”軟性ã€ä¿å®ˆæ€§ã‚’å‘上ã•ã›ã‚‹ãŸã‚ã«ä¸å¯æ¬ ã§ã™ã€‚Javaã§ã¯privateã€protectedã€publicãªã©ã®ã‚¢ã‚¯ã‚»ã‚¹ä¿®é£¾åを使用ã—ã¦ã€ã“れらã®ã‚¢ã‚¯ã‚»ã‚¹åˆ¶å¾¡ã‚’行ã„ã¾ã™ã€‚
ç·´ç¿’å•題
Javaã«ãŠã„ã¦ã€ã‚¯ãƒ©ã‚¹ã®ãƒ¡ãƒ³ãƒã¸ã®ã‚¢ã‚¯ã‚»ã‚¹åˆ¶å¾¡ã¯ãƒ—ãƒã‚°ãƒ©ãƒ ã®å“質ã¨å®‰å…¨æ€§ã‚’確ä¿ã™ã‚‹ä¸Šã§é‡è¦ã§ã™ã€‚ã“ã®æ¦‚念ã¯ã€ã‚ªãƒ–ジェクト指å‘プãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã«ãŠã„ã¦ã€ãƒ‡ãƒ¼ã‚¿ã®éš 蔽やカプセル化を実ç¾ã™ã‚‹ãŸã‚ã®åŸºæœ¬çš„ãªè¦ç´ ã®ä¸€ã¤ã§ã™ã€‚æ£ã—ãアクセスを管ç†ã™ã‚‹ã“ã¨ã§ã€ãƒ—ãƒã‚°ãƒ©ãƒ ã®ç†è§£ã‚„ä¿å®ˆãŒå®¹æ˜“ã«ãªã‚Šã€ä¸æ£ãªã‚¢ã‚¯ã‚»ã‚¹ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’守るã“ã¨ãŒã§ãã¾ã™ã€‚
ã“ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã§ã¯ã€ãƒ¡ãƒ³ãƒã¸ã®ã‚¢ã‚¯ã‚»ã‚¹åˆ¶å¾¡ã«é–¢ã™ã‚‹ç†è§£ã‚’æ·±ã‚ã‚‹ãŸã‚ã®ç·´ç¿’å•題をæä¾›ã—ã¾ã™ã€‚å„å•題ã«å–り組むã“ã¨ã§ã€ã‚¢ã‚¯ã‚»ã‚¹ä¿®é£¾åã‚„ã‚«ãƒ—ã‚»ãƒ«åŒ–ã®æ¦‚念を実践的ã«ç†è§£ã—ã€åŠ¹æžœçš„ã«åˆ©ç”¨ã™ã‚‹ã‚¹ã‚ルを身ã«ã¤ã‘ã‚‹ã“ã¨ãŒæœŸå¾…ã•れã¾ã™ã€‚
ãれã§ã¯ã€ä»¥ä¸‹ã®å•é¡Œã«æŒ‘戦ã—ã¦ã¿ã¦ãã ã•ã„。
private修飾å
009-001 å•題 解ç”例
009-002 å•題 解ç”例
009-003 å•題 解ç”例
public修飾å
009-004 å•題 解ç”例
009-005 å•題 解ç”例
009-006 å•題 解ç”例
009-007 å•題 解ç”例
009-008 å•題 解ç”例