¼Ò¼³°°ÀºÀÚ¹Ù1ºÎ  3Àå. The Class  Á¢±ÙÁ¦¾î  

3.2 Á¢±ÙÁ¦¾î

3.2.1 Á¢±ÙÁ¦¾î¶õ?

Á¢±ÙÁ¦¾î´Â »õ·Î¿î µ¥ÀÌÅÍ Å¸ÀÔÀ» ¸¸µé°í ±× µ¥ÀÌÅÍ Å¸ÀÔÀ¸·Î °´Ã¼¸¦ ¼±¾ðÇÑ ÈÄ, °´Ã¼ ³»ÀÇ º¯¼ö¿¡ °ªÀ» ÇÒ´ç ÇÒ ¶§ °ªÀ» Á÷Á¢ ÇÒ´ç ÇÒ ¼ö Àִ°¡ ¾ø´Â°¡¸¦ °áÁ¤ÇÕ´Ï´Ù. ±¸Á¶Ã¼ÀÇ °æ¿ì ¸ðµÎ Á÷Á¢ÇÒ´çÀ» ¿øÄ¢À¸·Î ÇÕ´Ï´Ù. ÇÏÁö¸¸ Ŭ·¡½º¸¦ ÀÌ¿ëÇÏ¿© ¸¸µç »õ·Î¿î µ¥ÀÌÅÍ Å¸ÀÔÀÏ °æ¿ì¿¡´Â  À̰ÍÀ» private°ú publicÀ¸·Î ±¸ºÐÇϸç privateÀÎ °æ¿ì¿¡´Â °ªÀ» Á÷Á¢ÇÒ´çÇÏÁö ¸øÇϵµ·Ï Çϰí ÀÖ½À´Ï´Ù. ´ç¿¬È÷ publicÀÎ °æ¿ì¿¡´Â Á÷Á¢ÇÒ´çÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

º¸Åë ÀÌ·¯ÇÑ Á¢±ÙÁ¦¾î¸¦ ÀÚ·áÀÇ ÀºÆóÈ­(Encapsulation)À̶ó°í Ç¥ÇöÇÕ´Ï´Ù. ÀÌ ÀºÆóÈ­´Â ¾Æ·¡¿Í °°ÀÌ µÎ °¡Áö Ãø¸é¿¡¼­ »ý°¢ÇØ º¼ ¼ö ÀÖ½À´Ï´Ù.

 

n         °´Ã¼°¡ ¸Þ¸ð¸®°¡ »ý¼º µÈ ÈÄ °´Ã¼ ³»ÀÇ º¯¼ö¿¡ ´ëÇÑ Á¢±ÙÁ¦¾î

n         »ó¼Ó °ü°è¿¡¼­ ¾Æ¹öÁö Ŭ·¡½º¿Í ¾ÆµéŬ·¡½º °£ÀÇ Á¢±ÙÁ¦¾î

 

ÀÌ µÎ Á¢±ÙÁ¦¾î¿¡ ´ëÇÑ ºÐ·ù´Â ¹Ì¼¼ÇÑ Â÷À̸¦ º¸À̰í ÀÖ½À´Ï´Ù. ù¹øÂ° Á¢±ÙÁ¦¾î¸¦ ÀÌ Àý¿¡¼­ ÀÚ¼¼ÇÏ°Ô ´Ù·ç°Ô µÇ¸ç µÎ¹øÂ° Á¢±ÙÁ¦¾î´Â »ó¼ÓÀ» ¹è¿ì¸é¼­ Á¢ÇÏ°Ô µÉ °ÍÀÔ´Ï´Ù. ¿©±â¼­ º¸¿© ÁÖ´Â ¹Ì¼¼ÇÑ Â÷À̶õ Ŭ·¡½ºÀÇ µðÀÚÀΟÀÓÀÌ³Ä ½ÇÇà ŸÀÓÀ̳ĸ¦ µûÁö°í ÀÖ½À´Ï´Ù.

 

Ŭ·¡½ºÀÇ ½ÇÇà ŸÀÓÀº °´Ã¼¸¦ »ý¼ºÇÏ°í ¸Þ¸ð¸®¸¦ ÇÒ´çÇÑ ÈÄÀ̸ç Ŭ·¡½ºÀÇ µðÀÚÀΟÀÓÀº  ÇöÀç Ŭ·¡½º ³»ºÎ¸¦ ¸¸µé°í µðÀÚÀÎÇÏ´Â ½ÃÁ¡À» ¸»ÇÕ´Ï´Ù. ÀÌ Àý¿¡¼­´Â ½ÇÇàŸÀÓÀÇ Á¢±ÙÁ¦¾î¿¡ ´ëÇÏ¿© ¾Ë¾Æ º¸°Ú½À´Ï´Ù.

 

 

3.2.2 Á¢±ÙÁ¦¾îÀÇ ±¸Çö

Á¢±ÙÁ¦¾îÀÇ °üÁ¡¿¡¼­ ¿ì¸®´Â Ŭ·¡½º¸¦ »ìÆìº¸µµ·Ï ÇϰڽÀ´Ï´Ù. º¸Åë Á¢±ÙÁ¦¾î¸¦ ÀÚ·áÀÇ ÀºÆóÈ­(Encapsulation)ÀÇ ´ëÇ¥ÀûÀÎ ºÎºÐÀ̶ó°í ¾Ë°í ÀÖ½À´Ï´Ù. Á¢±ÙÁ¦¾î¶õ ¹«¾ùÀϱî¿ä? ¿©±â¼­ ¸»ÇÏ´Â Á¢±ÙÁ¦¾î¶õ Á¡(.)Âï°í Á¢±Ù ÇÒ ¼ö ÀÖ´À³Ä ¾ø´À³ÄÀÇ ¹®Á¦ÀÔ´Ï´Ù.  Á¢±ÙÁ¦¾î ¶§¹®¿¡ ¿¡·¯°¡ ¹ß»ýÇÏ´Â ¿¹Á¦¸¦ »ìÆìº¸¸é¼­ ¾Ë¾Æ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

PERSON.java (private float weight ºÎºÐÀ» public¿¡¼­ privateÀ¸·Î ¼öÁ¤)

public class PERSON {
 public int age;
 public long height;
 private float weight;
}

 Test3.java

public class Test3 {
 public static void main(String[] args)  {
  PERSON brother = new PERSON();
  brother.age =100;
  brother.height = 170L;
  brother.weight = 67.0F;
  System.out.println("age:" + brother.age);
  System.out.println("height:" + brother.height);
  System.out.println("weight:" + brother.weight);
 }
}

C:\examples\1.Ŭ·¡½ºÀÇ °³³ä>javac PERSON.java
C:\examples\1.Ŭ·¡½ºÀÇ °³³ä>javac Test3.java
Test3.java:8: weight has private access in PERSON
                ps.weight = 67.0F;
                 ^
Test3.java:12: weight has private access in PERSON
                System.out.println("weight:" + ps.weight);
                                                 ^
2 errors

 

ÀÌ ¿¹Á¦¿¡¼­ À§¿Í °°Àº ¿¡·¯¸¦ ¸¸³¯ ¼ö ÀÖ½À´Ï´Ù. À§ÀÇ ¿¡·¯°¡ ³ªÅ¸³ª´Â °ÍÀº ¹Ù·Î ¾Æ·¡ÀÇ ±×¸²Ã³·³ private¿¡ Á÷Á¢ Á¢±ÙÇÏ·Á Ç߱⠶§¹®ÀÔ´Ï´Ù.

¡°Test3.java:8: weight has private access in PERSON¡± ´Â ºÐ¸íÈ÷ ÄÄÆÄÀÏŸÀÓ¿¡ ¿¡·¯¸¦ ¹ß»ý½Ã۰í ÀÖ½À´Ï´Ù. À̰ÍÀº Á¢±ÙÁ¦¾î¸¦ À§¹Ý ÇÏ¿´±â¶§¹®¿¡ ÄÄÆÄÀÏÀÌ µÇÁö ¾Ê´Â °ÍÀÔ´Ï´Ù. ¿©±â¼­ ÁÖÀÇ ±í°Ô º¸¾Æ¾ß ÇÒ °ÍÀº Á¡(.)À¸·Î Á¢±ÙÇÏ´Â ¼ø°£ÀÔ´Ï´Ù. ¾ðÁ¦ Á¢±ÙÇϰí ÀÖ½À´Ï±î? À§¿¡¼­ º¸´Â ¹Ù¿Í °°ÀÌ °´Ã¼ÀÇ ¸Þ¸ð¸®°¡ »ý¼ºµÈ ÈÄ¿¡ Á¢±ÙÇϰí ÀÖ½À´Ï´Ù. Ç×»ó ÀÚ¹Ù¸¦ ¼³¸íÇÒ ¶§ À̰Ϳ¡ ´ëÇØ ¾ÆÁÖ ±î´Ù·Î¿î ¼³¸íÀ» ºÙÀ̰ï ÇÏÁö¸¸ Àß µÇÁö ¾Ê´Â ºÎºÐÀÔ´Ï´Ù. Á¢±ÙÁ¦¾îÀÇ ±âº»¹ýÄ¢Àº ¸Þ¸ð¸®°¡ »ý¼ºµÈ ÈÄ¿¡ Á¢±ÙÀ» ¸»ÇÕ´Ï´Ù. ÇϳªÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀ» ¸¸µé±â À§Çؼ­ ¿ì¸®´Â class¸¦ µðÀÚÀÎ ÇÕ´Ï´Ù. ±×¸®°í ¸¸µé¾îÁø Ŭ·¡½º·Î °´Ã¼º¯¼ö¸¦ ¼±¾ðÇÏ°í ±× ÈÄ¿¡, ¸Þ¸ð¸®¸¦ »ý¼ºÇÕ´Ï´Ù. ±× ´ÙÀ½ ¼ø°£¿¡¾ß ºñ·Î¼Ò Á¢±ÙÀ» Çϰí ÀÖ´Ù´Â °ÍÀ» Àؾ´Â ¾ÈµË´Ï´Ù.

 

 ´Ù½Ã ¸»Çϸé, Á¢±ÙÁ¦¾î¶õ µÎ °¡Áö Ãø¸é¿¡¼­ »ý°¢ ÇØ º¼ ¼ö ÀÖ½À´Ï´Ù. »ó¼Ó°ü°è¿¡¼­ Á¢±ÙÁ¦¾î¿Í Áö±Ý°ú °°ÀÌ new¿¬»êÀÚ¸¦ ÀÌ¿ëÇÏ¿© ¸Þ¸ð¸®¸¦ »ý¼º ½ÃŲ ÈÄÀÇ Á¢±ÙÁ¦¾î¸¦ »ý°¢ ÇØ º¼ ¼ö ÀÖ½À´Ï´Ù. ¾ÆÁ÷ »ó¼Ó°ü°è¿¡¼­ ³ªÅ¸³ª´Â Á¢±ÙÁ¦¾î´Â ¼³¸íÇϰí ÀÖÁö´Â ¾ÊÁö¸¸ ÇöÀçÀÇ Á¢±Ù ÀÚü´Â Ŭ·¡½º·Î µðÀÚÀÎÀÌ ³¡³­ ÈÄ, ¸Þ¸ð¸®°¡ »ý¼ºµÈ µÚÀÇ Á¢±ÙÀÔ´Ï´Ù. ÀÌ ¶§ Á¢±ÙÁ¦¾î¸¦ À§ÇÑ Á¢±Ù ÁöÁ¤ÀÚ°¡ privateÀ¸·Î µÇ¾î ÀÖ´Ù¸é Á¢±ÙÀÌ µÇÁö ¾Ê´Â´Ù´Â °ÍÀÔ´Ï´Ù.

 

 Å¬·¡½ºÀÇ µðÀÚÀΟÀÓ°ú ½ÇÇàŸÀÓÀ» ¹Ýµå½Ã ±¸ºÐÇØ¾ß ÇÕ´Ï´Ù. À̰ÍÀº ¾ÆÁÖ Áß¿äÇÑ ºÎºÐÀÔ´Ï´Ù. µðÀÚÀΟÀÓÀº Ŭ·¡½º¸¦ ¸¸µé°í ÀÖ´Â ½Ã°£ÀÌ¸ç ½ÇÇàŸÀÓÀº ¸¸µç Ŭ·¡½ºÀÇ ¸Þ¸ð¸®¸¦ »ý¼ºÇÏ´Â ½Ã°£ÀÔ´Ï´Ù. Ŭ·¡½º¸¦ »ç¿ëÇÑ´Ù´Â Ãø¸é¿¡¼­ º»´Ù¸é Á¢±ÙÁ¦¾î´Â ¸¸µé¾îÁø µ¥ÀÌÅÍ Å¸ÀÔÀ» »ç¿ëÇÒ ¶§ÀÇ ¹®Á¦¶ó´Â °ÍÀÔ´Ï´Ù.

 

½ÇÇà½ÃÀÇ Á¢±ÙÁ¦¾î, Áï ¸Þ¸ð¸®°¡ »ý¼ºµÈ ÈÄ¿¡ Á¡(.) Âï°í Á¢±ÙÀ» ÇÏ´À³Ä ¸øÇÏ´À³ÄÀÇ ¹®Á¦´Â ¾Æ¹«¸® °­Á¶Çصµ Áö³ªÄ¡Áö ¾Ê½À´Ï´Ù. ÀÚ¹Ù¸¦ µÎ ´Þ Á¤µµ ¹è¿î À̵鵵 Ŭ·¡½º°¡ µ¥ÀÌÅÍ Å¸ÀÔ »ý¼ºÇÏ´Â ºÎºÐÀ̶ó´Â °Í°ú ½ÇÇàŸÀÓ°ú µðÀÚÀΟÀÓÀ» È¥µ¿À» ÇÏ´õ±º¿ä. Áö±Ý ¾Ë¾Æ µÐ´Ù¸é µÎ ´ÞÀ» Àý¾àÇÏ´Â °ÍÀÌ ¾Æ´Ò±î¿ä?

 

ÀÚ¹ÙÀÇ Å¬·¡½º¸¦ ¸¸µå´Â ½Ã°£°ú Àڹ٠Ŭ·¡½º¸¦ »ç¿ëÇÏ´Â ¼ø°£ÀÇ Â÷ÀÌ´Â Á¤È®ÇÏ°Ô ±¸ºÐÇÏ°í ³Ñ¾î°¡¾ß ÇÕ´Ï´Ù. ÇϳªÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀ» ¸¸µç´Ù´Â °ÍÀº ÀÚ½ÅÀÌ »ç¿ë ÇÒ µ¥ÀÌÅÍÀÇ Á¤È®ÇÑ ¸ð¾çÀ» ¸¸µå´Â °ÍÀÔ´Ï´Ù. ÀÌ·¯ÇÑ ¸ð¾çÀÌ ¸¸µé¾îÁö¸é »ç¿ëÇÒ ¼ö ÀÖ°ÚÁÒ. Àΰ£À̶ó´Â µ¥ÀÌÅÍ Å¸ÀÔÀº À̸§°ú Àΰ£ÀÇ À°Ã¼°¡ ÁÖ¾îÁö´Â ¼ø°£, Áï ÇϳªÀÇ °³Ã¼·Î½á Ȱµ¿ÇÒ ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù. ÀÌ¿Í ¸¶Âù°¡Áö·Î °´Ã¼µµ Ŭ·¡½ºÀÇ ¸ð¾çÀ» ´Ù ¸¸µé°í ³ª¸é new¿¬»êÀÚ¸¦ ÀÌ¿ëÇÏ¿© ¸Þ¸ð¸®¸¦ »ý¼ºÇÑ ÈÄ »ç¿ëÇÏ´Â °ÍÀÌ ¸Â°ÚÁÒ. ±×¸®°í ³»ºÎÀÇ ³»¿ëÀº Á¡(.)À» Âï¾î¼­ Á¢±ÙÇϰí ÀÖÁö¸¸ Á¢±Ù ÇÒ ¼ö ÀÖ´Â ºÎºÐ°ú ¾ø´Â ºÎºÐÀÌ ÀÖ½À´Ï´Ù. À̸¦ Á¢±ÙÁ¦¾î¶ó ÇÕ´Ï´Ù. À̰ÍÀ» ±¸ºÐÇÏ´Â ±âÁØÀº µ¥ÀÌÅÍ Å¸ÀÔ ¾Õ¿¡ private°ú publicÀ» ºÙÀÌ´Â ¹æ¹ýÀ» »ç¿ëÇÕ´Ï´Ù.

 

 

3.2.3 °á·Ð

Ŭ·¡½º ³»ºÎÀÇ º¯¼ö¿¡ Á¢±Ù ÁöÁ¤ÀÚ¸¦ privateÀ¸·Î »ç¿ëÇßÀ» ¶§ Á¢±ÙµÇÁö ¾Ê°í ÄÄÆÄÀÏÇÒ ¶§ ¿¡·¯°¡ ¹ß»ý ÇÑ´Ù°í¸¸ ÇßÀ» »Ó »ç½Ç»óÀÇ Á¢±ÙÁ¦¾îÀÇ ¼³¸íÀº ÇÏÁö ¾Ê¾Ò½À´Ï´Ù. ÀÌ·¯ÇÑ Áú¹®À» ´øÁú ¼ö ÀÖ½À´Ï´Ù. ÀÌ µ¥ÀÌÅÍ¿¡´Â ¾î¶»°Ô Á¢±Ù ÇÒ ¼ö ÀÖÀ»±î¿ä? privateÀ» publicÀ¸·Î ÇÑ´Ù¸é ´ç¿¬È÷ Á¢±Ù ÇÒ ¼ö ÀÖ½À´Ï´Ù. privateÀ» »ç¿ëÇßÀ» ¶§ ¾î¶°ÇÑ ÀåÁ¡ ¶§¹®¿¡ À̰ÍÀ» »ç¿ëÇϰí ÀÖÀ»±î¿ä? ¾î¶»°Ô private µ¥ÀÌÅÍ¿¡ Á¢±ÙÀ» ÇÒ ¼ö ÀÖÀ»±î¿ä? ÀÌ ¹®Á¦´Â ´ÙÀ½ Àý¿¡¼­ ¸Þ¼­µåÀÇ °³³äÀ» ÆÄ¾ÇÇÑ ÈÄ¿¡ private¿¡ Á¢±ÙÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æ º¸°Ú½À´Ï´Ù.



jabookÀúÀÚ¸íÇÔ
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù1ºÎ
ÀúÀÚ:ÃÖ¿µ°ü