Schatzi Java Online Manual & Tutorial & Lecture

 1 ÇÔ¼öÁߺ¹À̶õ?
 

C++¿Í °°Àº °´Ã¼ÁöÇâ ¾ð¾î¿¡¼­ ´ÙÇü¼ºÀ» Á¦°øÇØ ÁÖ±â À§ÇÑ ¹æ¹ý ÁßÀÇ Çϳª°¡ ´ÙÁß Á¤ÀÇÀÔ´Ï´Ù. ´ÙÁß Á¤ÀǶõ °°Àº À̸§À¸·Î ¿©·¯ °¡Áö ÀÏÀ» ÇÏ´Â °ÍÀº ¸»ÇÕ´Ï´Ù. C++¿¡¼­´Â ÇÔ¼ö ´ÙÁß Á¤ÀÇ¿Í ¿¬»êÀÚ ´ÙÁß Á¤ÀÇ µî µÎ °¡Áö ´ÙÁß Á¤ÀǸ¦ Á¦°øÇØ ÁÝ´Ï´Ù.

ÇÔ¼ö ´ÙÁß Á¤ÀÇ´Â °°Àº À̸§ÀÇ ÇÔ¼ö°¡ ¿©·¯ °³ Á¸ÀçÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÚ¹Ù¿¡¼­´Â ¸Þ¼Òµå ´ÙÁß Á¤ÀÇÀ» Á¦°øÇØ ÁÖ°í ÀÖ½À´Ï´Ù. ±×·¸´Ù¸é ¸Þ¼ÒµåÀÇ À̸§ÀÌ °°´Ù¸é ¾î¶² °ÍÀ» ÀÌ¿ëÇÏ¿© °°Àº À̸§ÀÇ ¿©·¯ °³ÀÇ ¸Þ¼Òµå¸¦ ±¸º°ÇÒ ¼ö ÀÖÀ»±î¿ä? C++¿¡¼­¿Í ¸¶Âù°¡Áö·Î ÀÚ¹Ù¿¡¼­µµ °°Àº À̸§ÀÇ ¿©·¯ °³ÀÇ ¸Þ¼Òµå¸¦ ±¸º°Çϱâ À§ÇÏ¿© ¸Þ¼Òµå°¡ °®´Â ¸Å°³º¯¼öÀÇ °³¼ö¿Í ÀÚ·áÇüÀ» ÀÌ¿ëÇÏ¿© ±¸ºÐÇÕ´Ï´Ù.

º¸Åë ÇÔ¼öÇÔ¼öÀÇ ´ÙÁßÁ¤ÀǸ¦ OverloadingÀ̶ó ºÎ¸¨´Ï´Ù. ÇÔ¼öÁߺ¹, Áߺ¹ÇÔ¼ö¶ó°í ºÎ¸£¸ç Åë»óÀûÀ¸·Î OverloadingÀ̶ó°í ÇÕ´Ï´Ù. À̰ÍÀº ÇϳªÀÇ À̸§À¸·Î ¿©·¯°³ÀÇ ÇÔ¼ö¸¦ ¸¸µç´Ù´Â ¶æÀ» ³»Æ÷Çϰí ÀÖ´Ù. °´Ã¼ÁöÇâ °³³ä¿¡¼­ ¾ÆÁÖ À¯¿ëÇϱ⠶§¹®¿¡ À̰ÍÀ» »ç¿ëÇÏ´Â °ÍÀÏ °ÍÀÔ´Ï´Ù. ±×·¸´Ù¸é OverloadingÀº ¿Ö »ç¿ëÇÏ´Â °ÍÀϱî?

 2 Áߺ¹ÇÔ¼ö(Overloading)À» »ç¿ëÇÏ´Â ÀÌÀ¯?
 

Áߺ¹ÇÔ¼ö´Â ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â »ç¶÷À» ÆíÇÏ°Ô Çϱâ À§Çؼ­ »ç¿ëÇÑ´Ù. Áï ÇÁ·Î±×·¡¸Ó´Â ±× ¸¸Å­ °í»ýÇÏ´Â °ÍÀÌ´Ù. º¸Åë Áߺ¹ÇÔ¼ö¸¦ ¼³¸íÇÒ ¶§ µÎ ÇÔ¼ö¸¦ ÇÕÇÏ´Â ÇÔ¼ö¸¦ ¿¹¸¦ µç´Ù. µÎÇÔ¼ö¸¦ ´õÇÒ ¶§ ¿ì¸®´Â ½±°Ô intÇü¸¸À» »ý°¢ÇÑ´Ù. µÎ °³ÀÇ »ó¼ö°ªÀÌ ´õÇØÁ®¼­ ¶Ç´Ù¸¥ »ó¼ö°ªÀ» ¸®ÅÏÇÏ´Â °ÍÀ» »ý°¢ÇÒ °ÍÀÌ´Ù. À̰ÍÀº Áö±ØÈ÷ ´ç¿¬ÇÑ ÀÏÀÌ´Ù.

ÇÏÁö¸¸ ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â »ç¶÷ÀÔÀå¿¡¼­ º»´Ù´Â À̰ÍÀº ¾ÆÁÖ ºÒÆíÇÑ ÀÏÀϰÍÀÌ´Ù. Ç×»ó int¸¸À» ´õÇÑ´Ù°í »ý°¢ÇÑ´Ù¸é À̰ÍÀº ¾ÆÁÖ ºÒÆíÇÒ °ÍÀÌ´Ù. ±×·¸±â ¶§¹®¿¡ ÇÁ·Î±×·¡¸Ó´Â float³ª doubleÀ» ´õÇÏ´Â ÇÔ¼ö¸¦ ¸¸µé¾î µÎ´Â °ÍÀÌ´Ù. ¾ð¾îÀÇ ±âº»ÀûÀΠƯ¼º»ó µ¥ÀÌÅÍÇüÀÌ ´Ù¸£¸é ÇÔ¼ö¶ÇÇÑ ´Ù½Ã ¸¸µé¾î¾ß ÇÑ´Ù. À̰ÍÀ» ÇϳªÀÇ À̸§À¸·Î ÇØ°áÇÏ´Â ¹æ¹ýÀÌ ¹Ù·Î Áߺ¹ÇÔ¼ö °³³äÀÇ ½ÃÀÛÀÌ´Ù.

 

 3 Áߺ¹ÇÔ¼ö¿¡¼­ ÁÖÀÇÇØ¾ß ÇÒ Á¡
 

À̸§ÀÌ °°Àº ÇÔ¼ö¶ó¸é ±×¸®°í »ç¿ëÀÚ°¡ ¾î¶²°ªÀ» ³ÖÀ»Áö ¸ð¸£´Â »óȲÀ̶ó¸é ¿ì¸®´Â »ç¿ëÀÚ°¡ ¾î¶°ÇÑ °ªÀ» ³Ö´õ¶ó°í 󸮵ǵµ·Ï ¸î°¡Áö °æ¿ìÀÇ ¼ö¸¦ ¸¸µé °ÍÀÌ´Ù. ÇÏÁö¸¸ ¸®Åϰª Áï, ƯÁ¤ µÎ ¼ö¸¦ ´õÇØ¼­ ³ª¿À´Â °ªÀº ´Ù¸¥ µ¥ÀÌÅÍ Å¸ÀÔÀÌ µÉ °ÍÀÌ´Ù. ±×·¡¼­ Áߺ¹ÇÔ¼ö¿¡¼­´Â ¸®Åϰª¿¡ ´ëÇØ¼­´Â ½Å°æÀ» ¾²Áö ¾Ê´Â´Ù. ±×·¸´Ù¸é Áߺ¹ÇÔ¼ö¿¡¼­ Áß¿ä½ÃÇÏ´Â °ÍÀº ¹«¾ùÀϱî?

ÇÔ¼öÀÇ À̸§ÀÌ °°¾Æ¾ß ÇÏ´Â °ÍÀº ³Ê¹«µµ ´ç¿¬ÇÑ °ÍÀÌ´Ù. ±×¸®°í Áߺ¹ÇÔ¼ö¿¡¼­ °¡Àå ½Å°æÀ» ¾²´Â ºÎºÐÀº ¹Ù·Î »ç¿ëÀÚ°¡ ÀÔ·ÂÇÒ °ªÀÇ µ¥ÀÌÅÍ ÇüÀÌ´Ù. À̰ÍÀÌ ¹Ù·Î ¾î¶°ÇÑ Áߺ¹ÇÔ¼ö¸¦ »ç¿ëÇØ¾ß ÇÒÁö¸¦ °áÁ¤ÇÏ´Â ÇÙ½ÉÀû ¿ä¼Ò°¡ µÈ´Ù. ¿©·¯°³ÀÇ Áߺ¹ÇÔ¼ö°¡ ÀÖÀ» ¶§ Áߺ¹ÇÔ¼öÁß ¾î¶²°ÍÀ» ¼±ÅÃÇØ¾ßÇÒÁö¸¦ °áÁ¤ÇÏ´Â ¹æ¹ýÀÌ´Ù. °á·ÐÀûÀ¸·Î, Áߺ¹ÇÔ¼ö´Â ÇÔ¼ö¿¡ ³Ö¾îÁÖ´Â ¸Å°³º¯¼öÀÇ µ¥ÀÌÅÍŸÀÔ°ú ¸Å°³º¯¼öÀÇ °¹¼ö·Î½á ¾î¶°ÇÑ Áߺ¹ÇÔ¼ö¸¦ »ç¿ëÇØ¾ß ÇÒÁö¸¦ °áÁ¤ÇÏ´Â °ÍÀÌ´Ù.

ÀÌ ¸»Àº ³Ê¹«³ª Áß¿äÇϱ⠶§¹®¿¡ ¿Ü¿ö µÎ´Â °ÍÀÌ ¸ÂÀ» °ÍÀÌ´Ù. Áߺ¹ÇÔ¼ö´Â ¸Å°³º¯¼öÀÇ µ¥ÀÌÅÍŸÀÔ°ú ¸Å°³º¯¼öÀÇ °¹¼ö·Î½á ±¸ºÐÇÑ´Ù.

 

 4 Áߺ¹ÇÔ¼ö(Overloading)ÀÇ ¿¹Á¦
 

/*

Áߺ¹ÇÔ¼ö(Overloading):ÇÑ Å¬·¡½º³»¿¡ °°Àº À̸§ÀÇ ÇÔ¼ö°¡ ¿©·¯°³ Á¸ÀçÇÏ´Â °ÍÀ» Çã¿ë

 

Áߺ¹ÇÔ¼öÀÇ ±ÔÄ¢

 1. µ¥ÀÌÅÍŸÀÔÀÌ ´Þ¶ó¾ß ÇÑ´Ù.

 2. parameterÀÇ °¹¼ö°¡ ´Þ¶ó¾ß ÇÑ´Ù.

 3. parameterµéÀÇ data typeÀÌ ÃÖ¼ÒÇÑ Çϳª ÀÌ»ó ´Þ¶ó¾ß ÇÑ´Ù.

 

 Áï À̸»Àº Áߺ¹ÇÔ¼ö¸¦ ã¾Æ°¡´Â ¹æ¹ýÀº  ÇÔ¼öÀÇ ¸Å°³º¯¼öÀÇ °¹¼ö¿Í ÇÔ¼öÀÇ ¸Å°³º¯¼öÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀ¸·Î Àڽſ¡ ¸Â´Â ÇÔ¼ö¸¦ ã¾Æ°£´Ù. À̶§ ÁÖÀÇ ÇØ¾ßÇÒ °ÍÀº ÇÔ¼öÀÇ ¸®ÅÏŸÀÔ°ú´Â »ó°üÀÌ ¾ø´Ù.  ÇÏÁö¸¸ ÇÔ¼öÀÇ À̸§Àº °°¾Æ¾ß ÇÑ´Ù.

 */

 

//Overloading¿¡ ´ëÇÑ ¿¹Á¦ÀÔ´Ï´Ù.

class OverloadCalc
{
  public int plus(int a, int
b)
  {
      return
(a+b);
 
}
  public float plus(float a, float
b)
  {
      return
(a+b);
  }
  public double plus(float a, double
b)
  {
      return
(a+b);
  }
}

 

public class OverloadTest
{
   public static void
main(String[] args)
   {
      OverloadCalc oc=new
OverloadCalc();
      int i=oc.plus(3,5
);
      float j=oc.plus(0.1f,0.2f);
//floatÇüÀº (.0000f)¿Í °°ÀÌ ³¡¿¡ "f"·Î ±¸ºÐÇϸç, doubleÇüÀº (.0...)À¸·Î ±¸ºÐ
      double k=oc.plus(0.5,0.7
);
      System.out.println("int="
+i);
      System.out.println("float="
+j);
      System.out.println("double="
+k);                
   }
}

 °á°úÃâ·Â

/* À§ÀÇ °á°ú´Â ´ÙÀ½°ú °°´Ù.

 int=8

 float=0.3

 double=1.2 */

 

 






Copyright ¨Ï 1999-2000 Schatzi. All rights reserved.
http://www.jabook.org
http://schatzi.konkuk.ac.kr