Declaration Access Can Be Weaker °Ë»ç´Â ±âÁ¸ °Íº¸´Ù ´õ ¾àÇÑ Á¢±Ù ±ÇÇѰú ÇÔ²² ¼±¾ðµÉ ¼ö Àִ Ŭ·¡½º ¸â¹ö¸¦ Ž»öÇϱâ À§ÇØ »ç¿ëµË´Ï´Ù.
ÀÌ °Ë»ç´Â ´ÙÀ½ ¿É¼ÇÀ» °¡Áý´Ï´Ù:
Ŭ·¡½º ¸â¹ö¿¡ ´ëÇÑ ÆÐŰÁö ·ÎÄà °¡½Ã¼º ·¹º§À» Á¦¾ÈÇϽʽÿÀ
|
¸¸ÀÏ ÀÌ Ã¼Å© ¹Ú½º°¡ ¼±ÅÃµÇ¸é °Ë»ç´Â °¡´ÉÇÑ °÷¿¡¼ Ŭ·¡½º ¸â¹ö¿¡ ´ëÇÑ ÆÐŰÁö ·ÎÄà °¡½Ã¼º ·¹º§À» Àû¿ëÇÒ ÀÛÁ¤ÀÏ °ÍÀÔ´Ï´Ù.

|
¸¸ÀÏ Å¬·¡½º ¶Ç´Â Ŭ·¡½º ¸â¹ö°¡ ÆÐŰÁö ·ÎÄà °¡½Ã¼º ·¹º§À» °¡Áú ¼ö ÀÖÁö¸¸ ´õ ¾ö¹ÐÇÏÁö ¾Ê°í(¿¹¸¦ µé¸é, ±×°ÍÀº º¸È£µÈ º¯°æÀÚ¸¦ °¡Áö¸¸
private ÀÌ µÉ ¼ö´Â ¾ø½À´Ï´Ù) ÀÌ Ã¼Å© ¹Ú½º°¡ ºÒ°¡´ÉÇÏ°Ô µÇ¸é, ±×·± Ŭ·¡½º ¶Ç´Â Ŭ·¡½º ¸â¹ö´Â Æ®¸® º¸±â¿¡ ³ªÅ¸³ªÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù.
|
|
ÆÐŰÁö ·ÎÄà °¡½Ã¼º ·¹º§À» Åé·¹º§ÀÇ Å¬·¡½º¿¡°Ô Á¦¾ÈÇϽʽÿÀ
|
¸¸ÀÏ ÀÌ Ã¼Å© ¹Ú½º°¡ ¼±ÅÃµÇ¸é °Ë»ç´Â Åé-·¹º§ÀÇ Å¬·¡½º¸¦ À§ÇØ ÆÐŰÁö ·ÎÄà °¡½Ã¼º ·¹º§À» °¡´ÉÇÑ °÷¿¡¼ Àû¿ëÇÒ ÀÛÁ¤ÀÏ °ÍÀÔ´Ï´Ù.

|
¸¸ÀÏ Å¬·¡½º ¶Ç´Â Ŭ·¡½º ¸â¹ö°¡ ÆÐŰÁö ·ÎÄà °¡½Ã¼º ·¹º§À» °¡Áú ¼ö ÀÖÁö¸¸ ´õ ¾ö¹ÐÇÏÁö ¾Ê°í(¿¹¸¦ µé¸é, ±×°ÍÀº º¸È£µÈ º¯°æÀÚ¸¦ °¡Áö¸¸
private ÀÌ µÉ ¼ö´Â ¾ø½À´Ï´Ù) ÀÌ Ã¼Å© ¹Ú½º°¡ ºÒ°¡´ÉÇÏ°Ô µÇ¸é, ±×·± Ŭ·¡½º ¶Ç´Â Ŭ·¡½º ¸â¹ö´Â Æ®¸® º¸±â¿¡ ³ªÅ¸³ªÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù.
|
|
¿ÀÁ÷ ¿ÜºÎ Ŭ·¡½º·ÎºÎÅÍ ÂüÁ¶µÉ ¶§ ³»ºÎ Ŭ·¡½º ¸â¹ö¿¡ ´ëÇÑ private À» Á¦¾ÈÇϽʽÿÀ
|
¸¸ÀÏ ÀÌ Ã¼Å© ¹Ú½º°¡ ¼±ÅÃµÇ¸é °Ë»ç´Â ´Ù¸¥ Ŭ·¡½º°¡ ¾Æ´Ñ ¿ÜºÎ Ŭ·¡½º·ÎºÎÅÍ ¿À·ÎÁö ÂüÁ¶µÇ´Â ±× ³»ºÎ Ŭ·¡½º ¸â¹ö¸¦ °¡´ÉÇÏ´Ù¸é privateÀ¸·Î ¸¸µé °ÍÀ» Á¦¾È ÇÒ °ÍÀÔ´Ï´Ù.
|
|
¸¸ÀÏ Declaration
Access Can Be Weaker üũ ¹Ú½º°¡ ¼±Åõǰí Inspection ÀÌ
¾î¶² ¹®Á¦¸¦ ã´Â´Ù¸é, Inspection Åø À©µµ¿ì´Â ´õ ¾àÇÑ Á¢±Ù º¯°æÀÚ(¿¹¸¦ µé¸é, ´Ù¸¥ Ŭ·¡½º µîÀ¸·ÎºÎÅÍ ÂüÁ¶ÇÏÁö ¾Ê´Â public ¸â¹ö)¸¦ °¡Áú ¼ö Àִ Ŭ·¡½º¿Í Ŭ·¡½º ¸â¹ö¸¦ Æ÷ÇÔÇÏ´ÂAccess modifier ÅÇÀ» Ç¥½ÃÇÕ´Ï´Ù.
ºê¶ó¿ìÀú À©µµ¿ì´Â ´ç½Å¿¡°Ô ¾î´Â ¸Þ¼Òµå³ª ¸Þ¼ÒµåµéÀÌ Æ®¸® º¸±â¿¡¼ ¼±ÅÃµÈ Ç׸ñÀÌ »ç¿ëµÇ¾ú´Â°¡¸¦ º¸¿©ÁÖ´Â ºÎ°¡ÀÇ Çʵ带 °¡Áý´Ï´Ù. ÀÌ Çʵ嵵 ¸Þ¼Òµå°¡ À§Ä¡ÇÏ´Â ÆÐŰÁö¿Í Ŭ·¡½º À̸§À» Ç¥½ÃÇÕ´Ï´Ù. ¸Þ¼Òµå À̸§À» Ŭ¸¯ÇÏ¸é ´ç½ÅÀº ¿¡µðÅÍÀÇ ±× ¼±¾ðÀ¸·Î ³×ºñ°ÔÀÌÆ® ÇÒ °ÍÀ̰í, ¸Þ¼Òµå À̸§ À§¿¡¼ ij·µÀ» ¹èÄ¡ÇÒ °ÍÀÔ´Ï´Ù.
ÅÇ Æ®¸® º¸±â¿¡¼ Ç׸ñÀ» ¿À¸¥ÂÊ ¹öưÀ» Ŭ¸¯ÇÏ´Â °Í¿¡ ÀÇÇØ ºÒ¸®´Â ¹®¸Æ ¸Þ´º´Â ´ç½Å¿¡°Ô ¹®Á¦ ÇØ°á·Î¼ Á¦¾ÈµÈ Á¢±Ù ¼öÁØÀ» äÅÃÇϱâ À§ÇØ ÇÁ·ÒÇÁÆ® ÇÕ´Ï´Ù.
¿¹¸¦ µé¸é, ´ÙÀ½ Ŭ·¡½º¸¦ Àâ½À´Ï´Ù:
package aPackage;
public class AClass {
public void methodA(){
//some code here
}
public void methodB(){
//some code here
}
public static void main(String[] args) {
AClass aClass = new AClass();
aClass.methodB();
}
}
ÀÌÀüÀÇ Å¬·¡½ºÀÇ methodB() ¸¦ »ç¿ëÇϰí ÀÖ´Â ´Ù¸¥ ÆÐŰÁöÀÇ ¶Ç ´Ù¸¥ Ŭ·¡½º.
package aPackageTwo;
import aPackage.AClass;
public class AClassTwo {
void methodInTwo(){
AClass aClass = new AClass();
aClass.methodA();
}
}
Inspection ÀÌ AClass ¿¡ Àû¿ëµÇ°í ³ ÈÄ¿¡, ´ÙÀ½ÀÇ Åø À©µµ¿ì°¡ ³ªÅ¸³¯ °ÍÀÔ´Ï´Ù.

publicÀ¸·Î¼ ¼±¾ðµÈ methodB() ´Â ´Ù¸¥ Ŭ·¡½º/ÆÐŰÁö·ÎºÎÅÍ Àý´ë ºÒ·ÁÁöÁö ¾Ê°í (±×·¯¹Ç·Î) ¼±¾ðÀÌ ´õ ¾àÇØÁú ¼ö ÀÖ´Â(ÀÌ °æ¿ì¿¡ private) °Ë»ç¿¡ ÀÇÇØ ¸¶Å©µË´Ï´Ù.
|