Object-Oriented Programming Concept. ? from Java 1.2 Tutorial .

¡¡

What is an Object?

¡® °´Ã¼ÁöÇâ ¡¯ À̶ó´Â ¸»ÀÌ ÇÔÃàÇϵíÀÌ , °´Ã¼ÁöÇâÀ» ÀÌÇØÇÏ·Á¸é °´Ã¼ÀÇ °³³äÀ» ¸ÕÀú ÀÌÇØÇÏ´Â °ÍÀÌ Áß¿äÇÏ´Ù . ¿ì¸® ÁÖÀ§¿¡´Â ½ÇÁ¦ÀÇ °´Ã¼µéÀÌ ¸¹´Ù . ¿¹¸¦ µé¾î¼­ Ã¥»ó , °³ , ÅÚ·¹ºñÀü , ÀÚÀü°Å µîÀÌ´Ù .

ÀÌ·¯ÇÑ ½Ç¼¼°èÀÇ °´Ã¼µéÀº µÎ °¡ÁöÀÇ Æ¯¼ºÀÌ ÀÖ´Ù . Çϳª´Â ¡® »óÅ (Status)¡¯ À̰í Çϳª´Â ¡® ÇàÀ§ (behavior)¡¯ ÀÌ´Ù . ¿¹¸¦ µé¾î¼­ °³´Â ¡® À̸§ ¡¯, ¡® »ö ¡¯, ¡® ǰÁ¾ ¡¯ À̶ó´Â »óŸ¦ °®À¸¸ç , ¡® ¢¾î´ë´Ù ¡¯, ¡® ²¿¸®Ä¡´Ù ¡¯, ¡® ¿ÊÀ» ¹°¾î¶â´Ù ¡¯ µîÀÇ ÇൿÀ» ÇÑ´Ù . ÀÚÀü°Å ¿ª½Ã ¸¶Âù°¡Áö·Î ¡® ÇöÀç±â¾î»óÅ ¡¯, ¡® ÇöÀçÆä´Þ ȸÀüºñ ¡¯, ¡® ±â¾î ¼ö ¡¯ µîÀÇ »óÅÂ¿Í ¡® Á¤ÁöÇÏ´Ù ¡¯, ¡® °¡¼ÓÇÏ´Ù ¡¯, ¡® °¨¼ÓÇÏ´Ù ¡¯ ,¡¯ ±â¾î¸¦ ¹Ù²Ù´Ù ¡¯ µîÀÇ ÇàÀ§¸¦ °®´Â´Ù .

¼ÒÇÁÆ®¿þ¾îÀûÀ¸·Î °´Ã¼¸¦ ±¸ÇöÇÏ´Â °ÍÀº ¹Ù·Î ÀÌ·¯ÇÑ ½Ç¼¼°èÀÇ °´Ã¼µéÀÌ °®´Â »óÅÂ¿Í ÇàÀ§¸¦ ¸ð¹æÇÏ¿© ¸ðµ¨¸µ ÇÏ´Â °ÍÀÌ´Ù . ¼ÒÇÁÆ®¿þ¾î °´Ã¼µéÀº ÀÌ·¯ÇÑ »óÅ (status) ¸¦ ¡® º¯¼ö (variables)¡¯ ·Î Ç¥ÇöÇϰí , ÇàÀ§ (behavior) ¸¦ ¡® ¸Þ½îµå (methods)¡¯ ·Î Ç¥ÇöÇÏ´Â °ÍÀÌ´Ù .

Á¤ÀÇ : °´Ã¼¶õ º¯¼ö¿Í ¸Þ¼ÒµåÀÇ ¼ÒÇÁÆ®¿þ¾îÀû ¹­À½ÀÌ´Ù .

¡¡

½Ç¼¼°èÀÇ °´Ã¼´Â µû¶ó¼­ ¼ÒÇÁÆ®¿þ¾îÀûÀÎ °´Ã¼·Î Ç¥ÇöµÉ ¼ö ÀÖ´Ù . ½Ç¼¼°èÀÇ °³³ª ÀÚÀü°Å¸¦ ¼ÒÇÁÆ®¿þ¾îÀûÀÎ °´Ã¼·Î Ç¥ÇöÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù . ÇÏÁö¸¸ ÀÌ·¯ÇÑ ½ÇÁ¦ÀûÀÎ °Í À̿ܿ¡ Ãß»óÀûÀÎ °³³äÁ¶Â÷µµ ¼ÒÇÁÆ®¿þ¾î °´Ã¼·Î Ç¥ÇöÇÒ ¼ö ÀÖ´Ù . ¿¹¸¦ µé¾î ¡® À̺¥Æ® ¡¯ ´Â GUI ȯ°æÀÇ ½Ã½ºÅÛ¿¡¼­ »ç¿ëÀÚÀÇ Å° Á¶ÀÛÀ̳ª ¸¶¿ì½º ¿òÁ÷ÀÓÀ» ³ªÅ¸³»´Â ÀϹÝÀûÀÎ °´Ã¼ÀÌ´Ù .

´ÙÀ½Àº ÀϹÝÀûÀÎ ¼ÒÇÁÆ®¿þ¾î °´Ã¼¸¦ ³ªÅ¸³½ °ÍÀÌ´Ù .

¼ÒÇÁÆ®¿þ¾î °´Ã¼°¡ ¡® ¾Ë°í ÀÖ´Â °Í (status)¡¯ °ú ¡® ÇÒ ¼ö ÀÖ´Â °Í (behavior)¡¯ ¿¡ ´ëÇÑ Á¤º¸´Â °´Ã¼ ³»ÀÇ º¯¼ö¿Í ¸Þ¼Òµå·Î Ç¥ÇöµÈ´Ù . ÀÚÀü°Å¸¦ ¸ðµ¨·Î ÇÑ ¼ÒÇÁÆ®¿þ¾î °´Ã¼´Â ÀÚÀü°ÅÀÇ ÇöÀç »óŸ¦ ³ªÅ¸³»´Â º¯¼ö ( ½ºÇǵå´Â 10Mile/hour À̰í , Æä´Þ ȸÀü¼ö´Â 90 round/minute À̸ç ÇöÀç ±â¾î´Â 5 ¹øÂ° ) ¸¦ °®°í ÀÖ´Ù . ÀÌ·¯ÇÑ º¯¼ö¿Í ¸Þ¼ÒµåµéÀº ÀϹÝÀûÀ¸·Î ¡® ÀνºÅϽº º¯¼ö ¡¯ ¿Í ¡® ÀνºÅϽº ¸Þ¼Òµå ¡¯ ¶ó°í ÇÑ´Ù . À̰ÍÀº Ŭ·¡½ºÀÇ º¯¼ö¿Í ¸Þ¼Òµå·ÎºÎÅÍ ±¸ºÐÇϱâ À§ÇÔÀÌ´Ù . (What is Classes? ¿¡¼­ ´Ù·ç°Ú´Ù ).

´ÙÀ½Àº ÀÚÀü°Å¸¦ ¼ÒÇÁÆ®¿þ¾î °´Ã¼·Î Ç¥ÇöÇÑ °ÍÀÌ´Ù .

¼ÒÇÁÆ®¿þÀûÀ¸·Î ±¸ÇöµÈ ÀÚÀü°Å´Â ¸¶Âù°¡Áö·Î ¡® ºê·¹ÀÌÅ© ¡¯, ¡® Æä´Þ ȸÀü¼ö º¯È­ ¡¯, ¡® ±â¾î º¯¼Ó ¡¯ µî°ú °°Àº ¸Þ¼Òµå¸¦ °®´Â´Ù .

°´Ã¼°¡ ¸ð¸£´Â °ªÀ̳ª ÇÒ ¼ö ¾ø´Â ÇൿµéÀº °´Ã¼¿¡¼­ Á¦¿ÜµÈ´Ù . ¿¹¸¦ µé¾î ÀÚÀü°Å´Â º¸Åë À̸§ÀÌ ¾øÀ» °ÍÀ̸ç , ¢°Å³ª Àç·ÕÀ» ¶³Áöµµ ¾ÊÀ» °ÍÀÌ´Ù . ±×·¯¹Ç·Î ÀÌ·¯ÇÑ °Íµé¿¡ ´ëÇÑ ¡® »óÅ ¡¯ ³ª ¡® ÇàÀ§ ¡¯ ¿¡ ´ëÇÑ º¯¼ö³ª ¸Þ¼Òµå´Â Æ÷ÇÔÇÏÁö ¾Ê´Â´Ù .

À§ÀÇ ´ÙÀ̾î±×·¥¿¡¼­ º¸À̵íÀÌ °´Ã¼ÀÇ º¯¼ö´Â °´Ã¼ÀÇ Á߽ɿ¡ ÀÖ¾î ÇÙÀ» ÀÌ·é´Ù . ¸Þ¼Òµå´Â ±×°ÍµéÀ» µÑ·¯½Î¸ç , ÇÁ·Î±×·¥»ó¿¡¼­ ´Ù¸¥ °´Ã¼·ÎºÎÅÍ ±× °´Ã¼ÀÇ ÇÙÀ» ¼û±ä´Ù . ÀÌ¿Í °°ÀÌ ¸Þ¼ÒµåµéÀÌ º¯¼ö¸¦ º¸°üÇÏ¿© º¸È£Çϵµ·Ï ÆÐŰÁöÈ­ ÇÏ´Â °ÍÀ» ¡® ĸ½¶È­ (encapsulation)¡¯ À̶ó°í ºÎ¸¥´Ù . ÀüÇüÀûÀ¸·Î ĸ½¶È­´Â ´Ù¸¥ °´Ã¼·ÎºÎÅÍ º°·Î Áß¿äÇÏÁö ¾ÊÀº ¡® ±¸ÇöºÎ ¡¯ ¸¦ ¼û±æ ¶§ »ç¿ëµÈ´Ù . ¿¹¸¦ µéÀÚ¸é ÀÚÀü°ÅÀÇ ±â¾î¸¦ º¯°æÇϰíÀÚ ÇÒ °æ¿ì ±× ±â¾îÀÇ ¸ÞÄ¿´ÏÁòÀÌ ¾î¶»°Ô ÀÛµ¿µÇ´Â°¡¸¦ ¾Ë ÇÊ¿ä´Â ¾øÀ» °ÍÀÌ´Ù . ´ÜÁö ¾î¶² ·¹¹ö¸¦ ¿òÁ÷¿©¾ß ÇÏ´ÂÁö¸¸ ¾Ë¸é µÇ´Â °ÍÀÌ´Ù . ºñ½ÁÇÑ ¿ø¸®·Î ¼ÒÇÁÆ®¿þ¾î ÇÁ·Î±×·¥¿¡¼­ , ¾î¶² Ŭ·¡½º°¡ ¾î¶»°Ô ±¸ÇöµÇ¾ú´ÂÁö´Â ¾Ë Çʿ䰡 ¾ø´Ù . ´ÜÁö ¾î¶² ¸Þ¼Òµå¸¦ »ç¿ëÇØ¾ß ÇÒÁö¸¸ ¾Ë¸é µÈ´Ù . ±×·¯¹Ç·Î ÀÚ¼¼ÇÑ ±¸ÇöºÎ´Â ´Ù¸¥ ÇÁ·Î±×·¥¿¡ ¿µÇâÀ» ÁÖÁö ¾Ê°í ¾î´À ¶§°í ¹Ù²ð ¼ö ÀÖ´Ù .

°´Ã¼ÀÇ ÀÌ·¯ÇÑ °³³äÀûÀÎ ±×¸² ( º¯¼öµé·Î ÀÌ·ç¾îÁø ÇÙÀÌ ¸Þ¼Òµåµé¿¡ ÀÇÇØ º¸È£µÇ°í ÀÖ´Â ) Àº °´Ã¼ÀÇ ÀÌ»óÀûÀΠǥÇöÀ̸ç , °´Ã¼ ÁöÇ⠽ýºÅÛ µðÀÚÀ̳ʵéÀÌ Ãß±¸ÇÏ´Â ÀÌ»óÀûÀÎ ¸ðÇüÀÌ´Ù . ±×·¯³ª Ç×»ó ±×·± °ÍÀº ¾Æ´Ï´Ù . Á¾Á¾ ±¸Çö½Ã³ª È¿À²¼ºÀÇ ¹®Á¦ ¶§¹®¿¡ °´Ã¼´Â ±×°ÍÀÇ º¯¼ö³ª ¸Þ¼ÒµåµéÀ» ³ëÃâÇϰųª ¼û±æ ¼ö ÀÖ´Ù .

ÀÚ¹Ù¸¦ Æ÷ÇÔÇÑ ¸¹Àº ¾ð¾îµéÀÌ °´Ã¼·Î ÇÏ¿©±Ý ±×°ÍÀÇ º¯¼ö¸¦ ´Ù¸¥ °´Ã¼¿¡¼­ ÂüÁ¶Çϰųª º¯°æÇÒ ¼ö ÀÖµµ·Ï ³ëÃâÇÏ´Â °ÍÀÌ °¡´ÉÇϵµ·Ï Çϰí ÀÖ´Ù . ¶ÇÇÑ , °´Ã¼´Â ´Ù¸¥ °´Ã¼°¡ ÀÚ½ÅÀÇ ¸Þ¼Òµå¸¦ ÂüÁ¶ÇÏÁö ¸øÇϵµ·Ï ¼û±æ ¼öµµ ÀÖ´Ù . °´Ã¼´Â ´Ù¸¥ °´Ã¼°¡ ÀÚ½ÅÀÇ º¯¼ö¿Í ¸Þ¼Òµå¿¡ Á¢±ÙÇÏ´Â °ÍÀ» ¿Ïº®ÇÏ°Ô ÅëÁ¦ÇÒ ¼ö ÀÖ´Ù . ¶ÇÇÑ ½ÇÁ¦·Î´Â Ưº°È÷ ¾î¶² °ÍÀ» ´Ù¸¥ °´Ã¼°¡ Á¢±ÙÇÒ ¼ö ÀÖ´ÂÁö ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù . ÀÚ¹Ù¿¡¼­ º¯¼ö¿Í ¸Þ¼Òµå Á¢±Ù¿¡ °üÇÑ ³»¿ëÀº Controlling Access to Members of a Class ¿¡¼­ ´Ù·é´Ù .

¡¡

ĸ½¶È­ÀÇ ÀåÁ¡

°ü·ÃµÈ º¯¼ö¿Í ¸Þ¼Òµå¸¦ ĸ½¶È­ÇÏ¿© ±ò²ûÇÏ°Ô ¼ÒÇÁÆ®¿þ¾î¸¦ Á¦ÀÛÇÏ´Â °ÍÀº °£´ÜÇÏÁö¸¸ ¾ÆÁÖ °­·ÂÇÑ °³³äÀ¸·Î½á ´ÙÀ½°ú °°ÀÌ Å©°Ô µÎ °¡ÁöÀåÁ¡ÀÌ ÀÖ´Ù .

Object-Oriented Programming Concept. ? from Java 1.2 Tutorial .

¡¡

What are messages?

Ȧ·Î ¶³¾îÁ® ÀÖ´Â °´Ã¼´Â ÀϹÝÀûÀ¸·Î ¾µ¸ð°¡ ¾ø´Ù . º¸Åë ±×·± °ÍÀº º¸´Ù Å« ÇÁ·Î±×·¥À̳ª ´Ù¸¥ °´Ã¼µéÀ» Æ÷ÇÔÇϰí ÀÖ´Â ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ ÇϳªÀÇ ¿ä¼Ò (Component) ·Î¼­ ÀÛ¿ëÇÑ´Ù . ÀÌ·¯ÇÑ °´Ã¼µé°£ÀÇ »óÈ£ÀÛ¿ëÀ» ÅëÇØ¼­ ÇÁ·Î±×·¡¸Ó´Â »óÀ§ °³³äÀÇ ¸í·É ¼öÇàÀ̳ª º¹ÇÕÀûÀÎ ÇàÀ§¸¦ ÀÌ·ç¾î³»´Â °ÍÀÌ´Ù . °Ý³³°í¿¡ °É·Á ÀÖ´Â ÀÚÀü°Å´Â ´ÜÁö ƼŸ´½ Â÷ü¿Í °í¹«·Î ÀÌ·ç¾îÁø µ¢¾î¸®ÀÏ »ÓÀÌ´Ù . ±×°Í ÀÚü·Î´Â ÀÚÀü°Å´Â ¾î¶°ÇÑ ´É·Âµµ ¾ø´Ù . ÀÚÀü°Å´Â ¶Ç ´Ù¸¥ °´Ã¼ ( ¿îÀüÀÚ ) ¿Í »óÈ£ ÀÛ¿ë ( Æä´Þ¸µ ) ÇÒ ¶§ À¯¿ëÇÑ °ÍÀÌ´Ù .

¼ÒÇÁÆ®¿þ¾î °´Ã¼´Â ¼­·Î ¸Þ½ÃÁö¸¦ ÁÖ°í ¹ÞÀ¸¸é¼­ »óÈ£ ÀÛ¿ëÇϰí Á¤º¸¸¦ ÁÖ°í ¹Þ´Â´Ù . A ¶ó´Â °´Ã¼°¡ B ¶ó´Â °´Ã¼¿¡¼­ B ÀÇ ¸Þ¼Òµå Áß Çϳª°¡ ¼öÇàµÇ±â¸¦ ¿øÇÑ´Ù¸é A °´Ã¼´Â B °´Ã¼¿¡°Ô ¸Þ½ÃÁö¸¦ º¸³¾ °ÍÀÌ´Ù .

Á¾Á¾ ¸Þ½ÃÁö¸¦ Àü´Þ ¹Þ´Â °´Ã¼´Â Á¤È®È÷ ¹«¾ùÀ» ÇØ¾ß ÇÏ´ÂÁö ¾Ë±â À§Çؼ­ Ãß°¡ÀûÀÎ Á¤º¸°¡ ÇÊ¿äÇÒ ¼öµµ ÀÖ´Ù . ¿¹¸¦ µé¾î ÀÚÀü°ÅÀÇ ±â¾î¸¦ ¹Ù²Ü ¶§ ¾î¶² ±â¾î·Î ¹Ù²ÜÁö¸¦ Á¤ÇØ¾ß Çϴ°Íó·³ ¸»ÀÌ´Ù . ÀÌ·¯ÇÑ Á¤º¸´Â ¡® ¸Å°³º¯¼ö (parameters)¡¯ ¶ó°í ºÒ¸®´Â ¸Þ½ÃÁö·Î Àü´ÞµÈ´Ù .

¸Þ½ÃÁöÀÇ ¼¼°¡Áö ¿ä¼Ò .

  1. ¸Þ½ÃÁö¸¦ Àü´Þ ¹Þ´Â °´Ã¼ÀÇ ÁÖ¼Ò ( ÀÚÀü°Å )
  2. ¼öÇàÇÒ ¸Þ¼ÒµåÀÇ À̸§ ( ±â¾î º¯¼Ó )
  3. ¸Þ¼Òµå¿¡ ÇÊ¿äÇÑ ¸Å°³º¯¼ö ( Àú¼Ó±â¾î )

¸Þ½ÃÁö¸¦ Àü´Þ ¹Þ´Â °´Ã¼°¡ ¿äûµÈ ¸Þ¼Òµå¸¦ ¼öÇàÇÏ´Â µ¥¿¡´Â ÀÌ ¼¼°¡Áö ¿ä¼Ò¸é ÃæºÐÇÑ Á¤º¸°¡ µÈ´Ù . ´Ù¸¥ Á¤º¸´Â ÇÊ¿äÇÏÁö ¾Ê´Ù .

¸Þ½ÃÁöÀÇ ÀÌÁ¡µé

Object-Oriented Programming Concept. ? from Java 1.2 Tutorial .

¡¡

What are Classes?

½Ç¼¼°è¿¡¼­´Â °°Àº Á¾·ùÀÇ °´Ã¼°¡ ¸¹´Ù . ¿¹¸¦ µé¾î , ´ç½ÅÀÌ °¡Áö°í ÀÖ´Â ÀÚÀü°Å¸¸ º¸´õ¶óµµ ±×°ÍÀº Àü ¼¼°è¿¡ ÀÖ´Â ÀÚÀü°Åµé Áß ÇϳªÀÏ »ÓÀÌ´Ù . °´Ã¼ÁöÇâ ±â¼úÀÇ Ãø¸é¿¡¼­ º»´Ù¸é ´ç½ÅÀÇ ÀÚÀü°Å´Â ¡® ÀÚÀü°Å ¡¯ ¶ó´Â Ŭ·¡½º (class) ¿¡¼­ ÆÄ»ýµÈ ÇϳªÀÇ ¡® ÀνºÅϽº (instance )¡¯ ÀÌ´Ù . ÀÚÀü°Å´Â ÀϹÝÀûÀ¸·Î ¸î °¡Áö »óÅ (status, ÇöÀç ±â¾î , ÇöÀç ȸÀü¼Óµµ , µÎ°³ÀÇ ¹ÙÄû µî ) °¡ ÀÖ°í , ÇàÀ§ (behavior, ±â¾îº¯¼Ó , °¨¼Ó ) °¡ ÀÖ´Ù . ±×·¯³ª °¢°¢ÀÇ ÀÚÀü°ÅµéÀÇ »óÅ´ ´Ù¸¥ ÀÚÀü°Åµé°ú µ¶¸³ÀûÀÌ¸ç ´Ù¸¦ ¼öµµ ÀÖ´Ù .

ÀÚÀü°Å¸¦ ¸¸µé ¶§ , Á¦Á¶¾÷ü´Â ÇÑ °³ÀÇ Ã»»çÁøÀ¸·Î ´Ù¼öÀÇ ÀÚÀü°Å¸¦ ¸¸µå´Âµ¥ ÀÌ·¯ÇÑ °ÍÀº ÀÚÀü°ÅÀÇ ÀϹÝÀûÀΠƯ¼ºÀ» °øÀ¯ÇÏ°Ô ÇÔÀ¸·Î¼­ ÀÕÁ¡À» ÁØ´Ù . »ý»êµÇ´Â °¢°¢ÀÇ ÀÚÀü°Å¿¡ ´ëÇØ û»çÁøÀ» ÀÛ¼ºÇÑ´Ù´Â °ÍÀº ºñÈ¿À²ÀûÀÎ ÀÏÀÌ´Ù .

°´Ã¼ ÁöÇâ ¼ÒÇÁÆ®¿þ¾î¿¡¼­´Â , »ç°¢Çüµé , ±Ù¹«±â·ÏÇ¥ , ºñµð¿ÀŬ¸³ µî°ú °°ÀÌ Æ¯¼ºÀ» °øÀ¯ÇÏ´Â °°Àº Á¾·ùÀÇ °´Ã¼¸¦ ¿©·¯ °³ °®´Â °ÍÀÌ °¡´ÉÇÏ´Ù . ÀÚÀü°Å Á¦Á¶¾÷ü¿Í °°ÀÌ , °°Àº Á¾·ùÀÇ °´Ã¼°¡ ºñ½ÁÇÏ´Ù´Â »ç½Ç¿¡ Âø¾ÈÇØ¼­ ÀÌµé ºñ½ÁÇÑ °´Ã¼µéÀÇ °øÅëµÇ´Â û»çÁøÀ» ¸¸µé¼ö ÀÖ´Ù . °´Ã¼¸¦ À§ÇÑ ¼ÒÇÁÆ®¿þ¾îÀûÀΠû»çÁøÀÌ ¹Ù·Î Ŭ·¡½º (class) ÀÌ´Ù .

Á¤ÀÇ : Ŭ·¡½º¶õ ¾î¶² Á¾·ùÀÇ ¸ðµç °´Ã¼µé¿¡ °øÅëµÇ´Â º¯¼ö¿Í ¸Þ¼Òµå¸¦ Á¤ÀÇÇÑ Ã»»çÁø ȤÀº ¿øÇü (prototype) ÀÌ´Ù .

¿¹¸¦ µé¾î , °¢°¢ÀÇ ÀÚÀü°Å °´Ã¼¸¦ À§Çؼ­ ÇöÀç ±â¾î , ÇöÀç Æä´Þ ȸÀü·ü µîÀ» ³ªÅ¸³¾ ¼ö ÀÖ´Â ÀνºÅϽº º¯¼ö ¸î °³¸¦ ¼±¾ðÇÑ ÀÚÀü°Å Ŭ·¡½º¸¦ ¸¸µé ¼ö ÀÖ´Ù . ¶ÇÇÑ ±× Ŭ·¡½º´Â ź »ç¶÷ÀÌ ±â¾î¸¦ º¯È­½Ã۰í , ºê·¹ÀÌÅ© , Æä´Þ ȸÀü·üÀ» º¯È­ ½Ãų ¼ö ÀÖ´Â ÀνºÅϽº ¸Þ¼Òµå¸¦ ¼±¾ðÇÏ°í ±¸ÇöºÎ (implements) ¸¦ Á¦°øÇÒ °ÍÀÌ´Ù .

¡¡

ÀνºÅϽº º¯¼öµéÀÇ °ªÀº Ŭ·¡½º ÀνºÅϽº °¢°¢¿¡ ÀÇÇØ Á¦°øµÈ´Ù . ±×·¯¹Ç·Î ÀÚÀü°Å Ŭ·¡½º¸¦ ¸¸µç µÚ¿¡´Â Ŭ·¡½º¸¦ »ç¿ëÇϱâ Àü¿¡ ¹Ýµå½Ã ÀνºÅϽº¸¦ ¸¸µé¾î¾ß ÇÑ´Ù . ¾î¶² Ŭ·¡½ºÀÇ ÀνºÅϽº¸¦ ¸¸µé¾úÀ» ¶§ , ºñ·Î¼Ò ±× Ŭ·¡½º Çü½ÄÀÇ °´Ã¼¸¦ ¸¸µé°Ô µÇ°í , ½Ã½ºÅÛÀº Ŭ·¡½º¿¡¼­ ¼±¾ðµÈ ´ë·Î ÀνºÅϽº º¯¼öµé¿¡ ´ëÇØ¼­ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ°Ô µÈ´Ù . ±×·± µÚ¿¡¾ß ºñ·Î¼Ò °´Ã¼ÀÇ ÀνºÅϽº ¸Þ¼Òµå¸¦ ½ÇÇàÇÏ¿© ¾î¶² ÀÏÀ» Çϵµ·Ï ÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù . °°Àº Ŭ·¡½ºÀÇ ÀνºÅϽºµéÀº °°Àº ÀνºÅϽº ¸Þ¼Òµå ±¸ÇöºÎ (implementation) ¸¦ °øÀ¯ÇÏ°Ô µÇ´Âµ¥ ( ¸Þ¼Òµå ±¸ÇöºÎ´Â °¢°¢ÀÇ °´Ã¼ÀÇ ±âÃÊ (basis) ¸¶´Ù º¹Á¦µÇÁö´Â ¾Ê´Â´Ù .), ±×°ÍÀº Ŭ·¡½º ÀÚü¿¡ Á¸ÀçÇÏ´Â °ÍÀÌ´Ù .

ÀνºÅϽº º¯¼ö¿Í ¸Þ¼Òµå À̿ܿ¡µµ , Ŭ·¡½º¿¡¼­´Â ¶ÇÇÑ Å¬·¡½º º¯¼ö¿Í Ŭ·¡½º ¸Þ¼Òµå¸¦ ¼±¾ð ÇÒ ¼ö ÀÖ´Ù . Ŭ·¡½º º¯¼ö¿Í ¸Þ¼Òµå´Â ±× Ŭ·¡½ºÀÇ ÀνºÅϽº¿¡¼­ Á¢±Ù ÇÒ ¼ö ÀÖ°í , Ŭ·¡½º ÀÚü¿¡¼­ Á÷Á¢ Á¢±ÙÇÒ ¼ö ÀÖ´Ù . ( Ŭ·¡½º º¯¼ö¿Í ¸Þ¼Òµå¸¦ »ç¿ëÇϱâ À§Çؼ­´Â ÀνºÅϽº¸¦ ¸¸µé ÇÊ¿ä´Â ¾ø´Ù .) Ŭ·¡½º ¸Þ¼Òµå´Â ¿À·ÎÁö Ŭ·¡½º º¯¼öµé¸¸ »ç¿ë °¡´ÉÇÏ´Ù ( ÀνºÅϽº º¯¼ö¿Í ¸Þ¼Òµå´Â »ç¿ë ÇÒ ¼ö ¾ø´Ù .).

½Ã½ºÅÛÀº ¸ðµç Ŭ·¡½º º¯¼ö¿¡ ´ëÇØ¼­ ÇÁ·Î±×·¥ÀÌ ½ÃÀ۵Ǵ óÀ½¿¡ Ŭ·¡½º¸¦ ÀνÄÇÒ ¶§ ´Ü ÇÑ °³ÀÇ º¹»çº»¸¸À» ¸¸µé¾î³½´Ù . ( ±× Ŭ·¡½ºÀÇ ¸ðµç ÀνºÅϽºµéÀº ±×°ÍÀÇ Å¬·¡½º º¯¼ö¸¦ °øÀ¯ÇÑ´Ù .) ¿¹¸¦ µé¾î , ¸ðµç ÀÚÀü°Å°¡ °°Àº ¼öÀÇ ±â¾î¸¦ °¡Á³´Ù°í ÇØº¸ÀÚ . ÀÌ °æ¿ì ±â¾î ¼ö¿¡ ´ëÇØ ÀνºÅϽº º¯¼ö¸¦ Á¤ÀÇÇÏ´Â °ÍÀº ºñ È¿À²ÀûÀÌ´Ù . ( °¢°¢ÀÇ ÀνºÅϽº´Â ±×°Í¿¡ ´ëÇØ º¯¼ö¸¦ °¢°¢ º¹»çÇÏ¿© ¼ÒÀ¯Çϰí ÀÖÀ» °ÍÀ̳ª , ±× °ªÀº ¸ðµÎ °°´Ù .) ÀÌ¿Í °°Àº °æ¿ì¿¡ , ±â¾î ¼ö °ªÀ» °®´Â Ŭ·¡½º º¯¼ö¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ´Ù . ¸ðµç ÀνºÅϽº´Â ÀÌ º¯¼ö¸¦ °øÀ¯ÇÑ´Ù . ÀÌ ¶§ ¸¸¾à ÇÑ °´Ã¼°¡ ±× °ªÀ» ¹Ù²Ù¸é , ±× Ŭ·¡½º ŸÀÔÀÇ ´Ù¸¥ ¸ðµç °´Ã¼°¡ ¿µÇâÀ» ¹Þ´Â´Ù .

Instance and Class Members ¿¡¼­ ÀνºÅϽº º¯¼ö¿Í ¸Þ¼Òµå ±×¸®°í Ŭ·¡½º º¯¼ö¿Í ¸Þ¼Òµå¿¡ °üÇØ ÀÚ¼¼È÷ ³íÇÒ °ÍÀÌ´Ù .

°´Ã¼ vs. Ŭ·¡½º

¾Æ¸¶µµ °´Ã¼¿Í Ŭ·¡½º¿¡ ´ëÇÑ ¹¦»ç°¡ ¼­·Î ¸Å¿ì ºñ½ÁÇÏ´Ù´Â °ÍÀ» ¾Ë¾ÆÂ÷·ÈÀ» °ÍÀÌ´Ù . ±×¸®°í »ç½Ç , Ŭ·¡½º¿Í °´Ã¼°£ÀÇ Â÷ÀÌÁ¡Àº Á¾Á¾ Çò°¥¸°´Ù . ½Ç¼¼°è¿¡¼­ Ŭ·¡½º°¡ ±× ÀÚü·Î´Â ±×°ÍÀÌ ¹¦»çÇϰí ÀÖ´Â °´Ã¼°¡ µÇÁö ¸øÇÏ´Â °ÍÀº È®½ÇÇÏ´Ù - ÀÚÀü°ÅÀÇ Ã»»çÁøÀº ÀÚÀü°Å°¡ ¾Æ´Ï´Ù . ±×·¯³ª ¼ÒÇÁÆ®¿þ¾î¿¡¼­ Ŭ·¡½º¿Í °´Ã¼ÀÇ Â÷ÀÌÁ¡À» ¸íÈ®È÷ Çϱâ¶õ Á¶±Ý ¾î·Æ´Ù . ºÎºÐÀûÀ¸·Î´Â ¿ì¼± ¼ÒÇÁÆ®¿þ¾î °´Ã¼°¡ ½Ç¼¼°è³ª Ãß»óÀûÀÎ °³³äÀÇ ÀüÀÚÀûÀÎ ¸ðµ¨¿¡ ºÒ°úÇϱ⠶§¹®ÀÌ´Ù . ÇÏÁö¸¸ ±×°ÍÀº ¶ÇÇÑ ¸¹Àº »ç¶÷µéÀÌ °´Ã¼¶ó´Â ¸»À» ¸ð¼ø µÇ°Ô ¾²°í , Ŭ·¡½º¿Í ÀνºÅϽº ¾çÂÊÀ» ĪÇϱâ À§ÇØ ¾²±â ¶§¹®ÀÌ´Ù .

±×¸²¿¡¼­´Â Ŭ·¡½º´Â À½¿µÀ» ±×¸®Áö ¾Ê¾Ò´Ù . ¿Ö³Ä ÇÏ¸é ±×°ÍÀº °´Ã¼ÀÇ Ã»»çÁøÀ» ³ªÅ¸³»´Â °ÍÀÌÁö °´Ã¼ ±× ÀÚü°¡ ¾Æ´Ï±â ¶§¹®ÀÌ´Ù . ±×¿¡ ºñÇØ , °´Ã¼´Â ±×°ÍÀÌ ½ÇÁ¦·Î Á¸ÀçÇÏ¸ç ±×°ÍÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» °¡¸®Å°±â À§ÇØ À½¿µÀÌ Á®ÀÖ´Ù .

Ŭ·¡½ºÀÇ ÀÌÁ¡

°´Ã¼´Â ¸ðµâÈ­¿Í Á¤º¸Àº´ÐÀÇ ÀÌÁ¡À» Á¦°øÇÑ´Ù . Ŭ·¡½º´Â Àç»ç¿ë¼ºÀÇ ÀÌÁ¡À» Á¦°øÇÑ´Ù . ÀÚÀü°Å Á¦Á¶¾÷ü´Â °°Àº û»çÁøÀ» °è¼ÓÇØ¼­ ÀÚÀü°Å¸¦ ¸¸µå´Âµ¥ Àç»ç¿ëÇÑ´Ù . ¼ÒÇÁÆ®¿þ¾î ÇÁ·Î±×·¡¸Ó´Â °°Àº Ŭ·¡½º¸¦ »ç¿ëÇϰí , ±×·¡¼­ °°Àº Äڵ带 , ¿©·¯ °´Ã¼¸¦ ¸¸µå´Âµ¥ Àç »ç¿ëÇÒ ¼ö ÀÖ´Ù .

Object-Oriented Programming Concept. ? from Java 1.2 Tutorial .

¡¡

What is Inheritance?

ÀϹÝÀûÀ¸·Î ¸»Çؼ­ , °´Ã¼´Â Ŭ·¡½º¿¡ ÀÇÇØ Á¤Àǵȴ٠. ÇØ´ç Ŭ·¡½º¸¦ ¾Ë¸é °´Ã¼¿¡ ´ëÇØ ¸¹Àº °ÍÀ» ¾Ë ¼ö ÀÖ´Ù . ºñ·Ï ¾ÆÁÖ ¿¾³¯ ±¸½Ä ÀÚÀü°ÅÀÏÁö¶óµµ ±×°ÍÀÌ ÀÚÀü°Å¶ó´Â °ÍÀ» ¾Ë¸é , µÎ°³ÀÇ ¹ÙÄû¸¦ °®°í , ÇÚµé ¹Ù°¡ ÀÖÀ¸¸ç , Æä´ÞÀ» °®°í ÀÖ´Ù´Â °É ¾Ë ¼ö ÀÖ´Â °ÍÀÌ´Ù .

°´Ã¼ ÁöÇ⠽ýºÅÛÀº ´õ ³ª¾Æ°¡¼­ Ŭ·¡½ºµéÀÌ ´Ù¸¥ Ŭ·¡½º¿¡ ÀÇÇØ¼­ Á¤ÀÇ µÉ ¼ö ÀÖµµ·Ï Çϰí ÀÖ´Ù . ¿¹¸¦ µé¾î , »ê¾Ç ÀÚÀü°Å , °æÁÖ¿ë ÀÚÀü°Å , 2 Àν ÀÚÀü°Å´Â ¼­·Î ´Ù¸¥ Á¾·ùÀÇ ÀÚÀü°ÅÀÌ´Ù . °´Ã¼ ÁöÇâ ±â¼ú¿¡¼­ , »ê¾Ç ÀÚÀü°Å , °æÁÖ¿ë ÀÚÀü°Å , 2 Àν ÀÚÀü°Å´Â ¸ðµÎ ÀÚÀü°Å Ŭ·¡½ºÀÇ ¼­ºê Ŭ·¡½ºÀÌ´Ù . °°Àº ¸»·Î , ÀÚÀü°Å Ŭ·¡½º´Â »ê¾Ç ÀÚÀü°Å , °æÁÖ¿ë ÀÚÀü°Å , 2 Àν ÀÚÀü°ÅÀÇ ¼öÆÛ Ŭ·¡½ºÀÌ´Ù .

°¢°¢ÀÇ ¼­ºê Ŭ·¡½º´Â ¼öÆÛ Ŭ·¡½º·ÎºÎÅÍ »óÅ ( º¯¼ö Á¤ÀÇ ÇüÅ ) ¸¦ »ó¼Ó ¹Þ´Â´Ù (inerit). »ê¾Ç ÀÚÀü°Å , °æÁÖ¿ë ÀÚÀü°Å , 2 Àν ÀÚÀü°Å´Â ¸î°¡Áö °°Àº »óŸ¦ °øÀ¯ÇÑ´Ù . ( Æä´Þ ȸÀü·ü , ¼Óµµ¿Í °°Àº °Íµé ). ¶ÇÇÑ , °¢°¢ÀÇ ¼­ºê Ŭ·¡½ºµéÀº ¸Þ¼Òµåµéµµ »ó¼Ó ¹Þ´Â´Ù . »ê¾Ç ÀÚÀü°Å , °æÁÖ¿ë ÀÚÀü°Å , 2 Àν ÀÚÀü°Å´Â ¸î°¡Àç ÇàÀ§¸¦ °øÀ¯ÇÑ´Ù .( ºê·¹ÀÌÅ· , Æä´Þ ½ºÇÇµå º¯È­ µî )

±×·¯³ª , ¼­ºê Ŭ·¡½º´Â ±×°ÍÀÇ »óųª ÇàÀ§¿¡ ´ëÇØ ¼öÆÛ Ŭ·¡½º·ÎºÎÅÍ ¾î¶² Á¦ÇÑÀ» ¹ÞÁö´Â ¾Ê´Â´Ù . À̰ÍÀº ¹«¾ùÀ» ÀǹÌÇϴ°¡ ? ¼­ºê Ŭ·¡½ºµéÀº ¼öÆÛ Ŭ·¡½º·ÎºÎÅÍ »ó¼Ó¹ÞÀº °Íµé¿¡ º¯¼ö³ª ¸Þ¼Òµå¸¦ Ãß°¡ÇÒ ¼ö ÀÖ´Ù . ¼¼¹ß ÀÚÀü°Å´Â µÎ°³ÀÇ ÀÇÀÚ¿Í µÎ°³ÀÇ ÇÚµé ¹Ù¸¦ °®°í ÀÖ´Ù . ¾î¶² »ê¾Ç ÀÚÀü°Å´Â Á»´õ ¸¹Àº ¼¼Æ®ÀÇ ±â¾î¸¦ °®°í ÀÖ´Ù .

¼­ºê Ŭ·¡½º´Â ¶ÇÇÑ »ó¼ÓµÈ ¸Þ¼Òµå¸¦ ¹«½Ã (override) ÇÒ ¼ö ÀÖ°í ±× ¸Þ¼Òµå¿¡°Ô Àü¹®È­µÈ ±¸ÇöÀ» Á¦°ø ÇÒ ÀÖ´Ù . ¿¹¸¦ µé¾î , º°µµÀÇ ±â¾î¼ÂÀ» °®´Â »ê¾Ç ÀÚÀü°Å°¡ ÀÖ´Ù¸é , ¡® ±â¾îº¯¼Ó ¡¯ ¸Þ¼Òµå¸¦ ¿À¹ö¶óÀ̵å ÇÏ¿© ÀÚÀü°Å¸¦ ź »ç¶÷ÀÌ ±× »õ·Î¿î ±â¾îµéÀ» »ç¿ë ÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀÌ´Ù .

»ó¼Ó¿¡ À־ ÇÑ ´Ü°è¸¸ ÀÖ´Â °ÍÀÌ ¾Æ´Ï´Ù . »ó¼Ó Æ®¸®¸ðÇü ȤÀº Ŭ·¡½º °èÃþÀÇ ±íÀÌ´Â ÇÊ¿äÇÑ ¸¸Å­ ´Ã·Á°¥ ¼ö ÀÖ´Ù . ¸Þ¼Òµå¿Í º¯¼öµéÀº °¢ ·¹º§µéÀ» ÅëÇØ °è¼Ó »ó¼ÓµÈ´Ù . ÀϹÝÀûÀ¸·Î Ŭ·¡½ºÀÇ °èÃþÀÌ ±í¾î°¥¼ö·Ï ±×°ÍÀÇ ÇàÀ§´Â Àü¹®È­ (specialized) µÈ´Ù .

»ó¼ÓÀÇ ÀÕÁ¡