¿À¹ö·Îµù(Overloading)Àº °°Àº À̸§À» °¡Áø ¿©·¯ °³ÀÇ ¸Þ¼µå¸¦ ¸»ÇÕ´Ï´Ù. º¸Åë ´ÙÁßÁ¤ÀÇ, Áߺ¹¸Þ¼µå¶ó°í ºÎ¸£¸ç ÀϹÝÀûÀ¸·Î´Â ¿À¹ö·Îµù(Overloading)À̶ó°í ÇÕ´Ï´Ù. À̰ÍÀº ÇϳªÀÇ À̸§À¸·Î ¿©·¯ °³ÀÇ ¸Þ¼µå¸¦ °¡Áö°í ÀÖ´Ù´Â ¶æÀ» ³»Æ÷Çϰí Àִµ¥, ¿À¹ö·ÎµùÀº Ŭ·¡½ºÀÇ »ç¿ëÀÚ¸¦ ÆíÇÏ°Ô Çϱâ À§Çؼ »ç¿ëÇÏ´Â °´Ã¼ÁöÇâÀÇ ±â¹ýÀÔ´Ï´Ù.
¿À¹ö·ÎµùÀÇ °æ¿ì ÇÊ¿ä ¾ø´Ù¸é ÇÁ·Î±×·¥À» ÇÒ ¶§ »ç¿ëÇÏÁö ¾Ê¾Æµµ µË´Ï´Ù. ÇÏÁö¸¸ ¾ÆÁÖ À¯¿ëÇÑ ¸éÀÌ ÀÖ½À´Ï´Ù. ÀÏ´Ü ±âÃÊÀûÀÎ ¿À¹ö·ÎµùÀÇ °³³äÀ» ÆÄ¾ÇÇØº¸°í ¿À¹ö·ÎµùÀ» »ç¿ëÇßÀ» ¶§ÀÇ ÀåÁ¡¿¡ ´ëÇØ¼ ¾Ë¾Æ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
|
¢Ã ¿À¹ö·Îµù(Overloading) |
|
q ÇϳªÀÇ Å¬·¡½º ³»¿¡¼ ´Ù¸¥ ±â´ÉÀ» °¡Áö¸é¼ °°Àº À̸§À» °¡Áø ¸Þ¼µå q ¸Þ¼µåµéÀÇ ±¸º°Àº ¸Þ¼µåÀÇ ¸Å°³º¯¼öÀÇ °³¼ö¿Í ¸Å°³º¯¼öÀÇ Çü¿¡ ÀÇÇØ¼ ±¸ºÐ q ¸®ÅÏŸÀÔ(Return Type)À¸·Î´Â ±¸º°ÇÏÁö ¾Ê´Â´Ù. |
¿À¹ö·ÎµùÀ» ÀÌ¿ëÇÏ¿© µÎ ¼ö¸¦ ÇÕÇÏ´Â ¿¹¸¦ µé¾îº¸ÁÒ.
|
& |
OverloadCalc.cs |
Ü OverloadingÀ» Å×½ºÆ®Çϱâ À§ÇÑ ¿¹Á¦ |
|
using System; public 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(double a, double b) { return(a+b); } public static void Main() { OverloadCalc oc=new OverloadCalc(); int i=oc.Plus(3,5); float j=oc.Plus(0.1f,0.2f); double k=oc.Plus(0.5,0.7); Console.WriteLine("intÇÕ:{0}", i); Console.WriteLine("floatÇÕ:{0}", j); Console.WriteLine("doubleÇÕ:{0}", k); } } | ||
|
C:\C#Example\04>csc OverloadCalc.cs C:\C#Example\04>OverloadCalc intÇÕ:8 floatÇÕ:0.3 doubleÇÕ:1.2 | ||
À§ÀÇ ¿¹Á¦¿¡¼´Â °°Àº À̸§ÀÇ ¸Þ¼µå¸¦ 3°³ °¡Áö°í ÀÖ½À´Ï´Ù. Áߺ¹ Á¤ÀÇÇÑ ¸Þ¼µå´Â ´ÙÀ½°ú °°½À´Ï´Ù.
1 Ŭ·¡½º ³»ÀÇ ¿À¹ö·Îµù ¸Þ¼µåµé
n public int plus(int a, int b){ }
n public float plus(float a, float b){ }
n public double plus(double a, double b){ }
µÎ ¼ö¸¦ ´õÇÒ ¶§ ¿ì¸®´Â ½±°Ô intÇü¸¸À» »ý°¢ÇÏ°Ô µË´Ï´Ù. Áï, intÇüÀÇ ¼ö°¡ ´õÇØÁ®¼ ÇÕÀ» ¸®ÅÏ(return) Çϸ®¶ó »ý°¢ÇÕ´Ï´Ù. À̰ÍÀº Áö±ØÈ÷ ´ç¿¬ÇÑ ÀÏÀÔ´Ï´Ù. ÇÏÁö¸¸ ÇÕÇÏ´Â °ÍÀÌ intÇü¸¸ ÀÖ°Ú½À´Ï±î? ´Ù¸¥ ÇüµéÀÇ ÇÕµµ Á¸ÀçÇÕ´Ï´Ù. À̰ÍÀº ÄÄÇ»ÅÍ ¾ð¾î¿¡¼´Â µ¥ÀÌÅÍŸÀÔÀ» ¾ÆÁÖ Á¤¹ÐÇÏ°Ô ±¸ºÐÇϰí ÀÖ°í ¸Þ¼µåÀÇ ¸Å°³º¯¼öÀÇ ÇüÀº ¹Ýµå½Ã ÁöÄÑÁ®¾ß µÈ´Ù´Â ¿øÄ¢ ¶§¹®¿¡ ÇϳªÀÇ ¸Þ¼µå·Î´Â ´Ù¾çÇÑ °è»êÀ» ÇØ ³¾ ¼ö ¾ø´Â °ÍÀÔ´Ï´Ù.
ÀϹÝÀûÀ¸·Î ¿©·¯ºÐÀÌ ¸Þ¼µå¸¦ ¸¸µé ¶§ ¸Þ¼µåÀÇ ¸Å°³º¯¼ö Çü, ¸Å°³º¯¼öÀÇ °³¼ö ±×¸®°í ¸®ÅÏ ÇüÀÌ ´Ù¸£´Ù¸é ¸Þ¼µå¸¦ °¢ÀÚ µû·Î ¸¸µé¾î ÁÖ¾î¾ß ÇÕ´Ï´Ù. ¹°·Ð À̸§µµ ´Ù¸£°ÚÁÒ. ÇÏÁö¸¸ ÀÌ·¯ÇÑ ¾àÁ¡À» º¸¿ÏÇϱâ À§Çؼ °´Ã¼ÁöÇâ¿¡¼´Â ÇϳªÀÇ ¸Þ¼µåÀÇ À̸§À¸·Î ´Ù¾çÇÑ ¸Å°³º¯¼ö¸¦ ¹Þ¾Æ µéÀÏ ¼ö ÀÖ´Â ¸Þ¼µå¸¦ Áö¿øÇÕ´Ï´Ù. À̰ÍÀ» ¿ì¸®´Â ¿À¹ö·Îµù(Overloading)À̶ó°í ÇÕ´Ï´Ù.
¿À¹ö·Îµù¿¡´Â ¾ÆÁÖ ¸¹Àº ¸Þ¼µå°¡ Á¸ÀçÇÒ ¼ö ÀÖ½À´Ï´Ù. À§ÀÇ ¿¹Á¦¿¡¼ ¿ì¸®´Â 3°³ÀÇ ¸Þ¼µå¸¦ ã¾Æ º¼ ¼ö ÀÖ½À´Ï´Ù. »ç¿ëÀÚ ÀÔÀå¿¡¼´Â plus¸¦ »ç¿ë ÇϰíÀÚ ÇÒ ¶§ ¸Å°³º¯¼ö Çü¿¡ ½Å°æ ¾µ Çʿ䰡 ¾ø½À´Ï´Ù. »ç¿ëÀÚ°¡ plus() ¸Þ¼µåÀÇ ¸Å°³º¯¼ö·Î 2.0f¿Í 5.0f¸¦ ÀÔ·ÂÇÑ´Ù¸é ÀÚµ¿À¸·Î float plus(float a, float b) ¸Þ¼µå°¡ È£ÃâµË´Ï´Ù. ³»ºÎ¿¡¼ 3°³ÀÇ ¸Þ¼µå Áß ¾Ë¸ÂÀº ¸Þ¼µå¸¦ ã¾Æ¼ È£Ãâ ÇØ Áֱ⠶§¹®ÀÔ´Ï´Ù.
|
¢Ã ³»ºÎ¿¡¼ ¿À¹ö·Îµù ¸Þ¼µå¸¦ ±¸º°ÇÏ´Â ¹æ¹ý |
|
q ¸Å°³º¯¼öÀÇ µ¥ÀÌÅÍŸÀÔ°ú ¸Å°³º¯¼öÀÇ °³¼ö·Î ±¸º°ÇÑ´Ù. |
ÇÏÁö¸¸ plus ¸Þ¼µå°¡ È£Ã⠵ǾúÀ» ¶§ ÄÄÆÄÀÏ·¯´Â ³»ºÎÀûÀ¸·Î´Â 3°³ Áß¿¡ ¾î´À ¸Þ¼µå°¡ È£ÃâµÇ¾ú´ÂÁö ±¸ºÐÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù. À̸§Àº °°°í ¸Å°³º¯¼öÀÇ Çü, ¸Å°³º¯¼öÀÇ °³¼ö ±×¸®°í ¸®ÅÏ °ªÀÌ Æ²¸± ¼ö Àֱ⠶§¹®¿¡ ±¸ºÐÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀº ÀÌ ¼¼°¡Áö ÁßÀÇ ÀÖ°ÚÁÒ. ¸®ÅÏŸÀÔÀº °¢°¢ÀÇ Çü¿¡ µû¶ó Ʋ·ÁÁú ¼ö µµ ÀÖÀ¸¸ç °°¾ÆÁú ¼öµµ Àֱ⠶§¹®¿¡ ¸®ÅÏŸÀÔÀ¸·Î´Â ±¸ºÐÇÏÁö ¾Ê½À´Ï´Ù. ±×·¸´Ù¸é ³²¾Æ ÀÖ´Â °ÍÀº ¸Å°³º¯¼öÀÇ Çü°ú ¸Å°³º¯¼öÀÇ °³¼öÀÔ´Ï´Ù. Á¤È®ÇÏ°Ô ³»ºÎÀûÀ¸·Î »ç¿ëÀÚ°¡ plus()¶ó´Â ¸Þ¼µå¸¦ È£Ãâ ÇßÀ» ¶§ ¸Å°³º¯¼öÀÇ Çü°ú ¸Å°³º¯¼öÀÇ °³¼ö·Î ±¸ºÐÇÕ´Ï´Ù.
|
¢Ã ¿À¹ö·Îµù(Overloading)À» »ç¿ëÇÒ ¶§ÀÇ ±ÔÄ¢ |
|
q ¸Å°³º¯¼öÀÇ °³¼ö°¡ ´Þ¶ó¾ß ÇÑ´Ù q ¸Å°³º¯¼öÀÇ Å¸ÀÔÀÌ ´Þ¶ó¾ß ÇÑ´Ù q À§ÀÇ °³¼ö¿Í ŸÀÔ Áß Çϳª¸¸ ´Þ¶óµµ ¿À¹ö·Îµù(Overloading)ÀÇ Á¶°ÇÀÌ ¼º¸³ µÈ´Ù. q ¸Þ¼µåÀÇ ¸®ÅÏŸÀÔÀº ¿À¹ö·Îµù(Overloading)À» ±¸ºÐÇÒ ¶§ »ç¿ëÇÏÁö ¾Ê´Â´Ù. |
¿À¹ö·Îµù(Overloading)À» ³»ºÎÀûÀ¸·Î À§ÀÇ ¹æ½ÄÀ» »ç¿ëÇÏ¿© ±¸ºÐÇϰí, ¿©·¯ºÐÀÌ Á÷Á¢ ¿À¹ö·ÎµùÀ» ¸¸µé°íÀÚ ÇÑ´Ù¸é À§ÀÇ ±ÔÄ¢À» ¹Ýµå½Ã ÁöÄÑ¾ß ÇÕ´Ï´Ù.
±×·¸´Ù¸é, ¿À¹ö·ÎµùÀº ´©±¸¸¦ À§ÇÑ °ÍÀϱî¿ä? Ŭ·¡½º¸¦ ¸¸µå´Â »ç¶÷ ÀÔÀåÀϱî¿ä? ¾Æ´Ï¸é Ŭ·¡½º¸¦ »ç¿ëÇÏ´Â ÀÔÀåÀϱî¿ä? ¸¸µé¾îÁø Ŭ·¡½º¸¦ »ç¿ëÇÏ´Â »ç¶÷ ÀÔÀå¿¡¼ º¸¸é ¿À¹ö·ÎµùÀº ¾ÆÁÖ Æí¸®ÇÕ´Ï´Ù. ±×·¯³ª À̰ÍÀ» ¸¸µå´Â »ç¶÷Àº ¾ÆÁÖ °í»ý ²Ï³ª ÇϰÚÁÒ. ¿Ö³ÄÇϸé ÀϹÝÀûÀÎ ±ÔÄ¢À» ÁöÄѰ¡¸é¼ ¸¸µé¾î¾ß Çϰí, ¿©·¯ °¡Áö °æ¿ì¿¡ ´ëó¸¦ ÇØ¾ß Çϱ⠶§¹®ÀÔ´Ï´Ù.
¾ð¾îÀÇ ±âº»ÀûÀΠƯ¼º»ó ¸Å°³º¯¼öÀÇ µ¥ÀÌÅÍ ÇüÀ̳ª °³¼ö°¡ ´Ù¸£¸é ¸Þ¼µå ¶ÇÇÑ ´Ù½Ã ¸¸µé¾î¾ß ÇÏÁö¸¸, ¿À¹ö·ÎµùÀÇ °³³äÀ» Áö¿øÇؼ À̸¦ º¸´Ù Æí¸®ÇÏ°Ô Ã³¸®Çϰí ÀÖ½À´Ï´Ù. ±×¸®°í »ç¿ëÀÚ Ãø¸éÀÇ ÀÎÅÍÆäÀ̽º´Â ÈξÀ °£ÆíÇØ Áö´Â °ÍÀÔ´Ï´Ù.
|
¢Ã ¿À¹ö·Îµù(Overloading)À» »ç¿ëÇÏ´Â ÀÌÀ¯ |
|
q ÇØ´ç Ŭ·¡½ºÀÇ ¸Þ¼µå¸¦ »ç¿ëÇÒ ¶§ »ç¿ëÀÚÀÇ Æí¸®¼ºÀ» |