¼Ò¼³°°ÀºÀÚ¹Ù1ºÎ  4Àå. Class for Java  Overloading Method  

4.3 Overloading Method

4.3.1 Overloading  

OverloadingÀº °°Àº À̸§À» °¡Áø ¿©·¯ °³ÀÇ ¸Þ¼­µå¸¦ ¸»ÇÕ´Ï´Ù. º¸Åë ´ÙÁßÁ¤ÀÇ, Áߺ¹ ¸Þ¼­µå¶ó°í ºÎ¸£¸ç ÀϹÝÀûÀ¸·Î´Â OverloadingÀ̶ó°í ÇÕ´Ï´Ù. À̰ÍÀº ÇϳªÀÇ À̸§À¸·Î ¿©·¯ °³ÀÇ ¸Þ¼­µå¸¦ °¡Áö°í ÀÖ´Ù´Â ¶æÀ» ³»Æ÷Çϰí Àִµ¥ OverloadingÀº Ŭ·¡½ºÀÇ »ç¿ëÀÚ¸¦ ÆíÇÏ°Ô Çϱâ À§Çؼ­ »ç¿ëÇÏ´Â °´Ã¼ÁöÇâÀÇ ±â¹ýÀÔ´Ï´Ù.

 

OverloadingÀÇ Á¤ÀÇ

n        ÇϳªÀÇ À̸§À¸·Î ¿©·¯ °³ÀÇ ¸Þ¼­µå¸¦ °¡Áö°í ÀÖ´Ù.

 

 

4.3.2 OverloadingÀÇ ¿¹

 

Áߺ¹¸Þ¼­µåÀÇ °æ¿ì ÇÊ¿ä ¾ø´Ù¸é ÇÁ·Î±×·¥À» ÇÒ ¶§ »ç¿ëÇÏÁö ¾Ê¾Æµµ µË´Ï´Ù. ÇÏÁö¸¸ ¾ÆÁÖ À¯¿ëÇÑ ¸éµµ ÀÖ½À´Ï´Ù. ÀÏ´Ü ±âÃÊÀûÀÎ Áߺ¹¸Þ¼­µåÀÇ °³³äÀ» ÆÄ¾ÇÇØº¸°í Áߺ¹¸Þ¼­µå¸¦ »ç¿ëÇßÀ» ¶§ÀÇ ÀåÁ¡¿¡ ´ëÇØ¼­ ¾Ë¾Æ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

Áߺ¹ ¸Þ¼­µå¸¦ ÀÌ¿ëÇÏ¿© µÎ ¼ö¸¦ ÇÕÇÏ´Â ¿¹¸¦ µé¾îº¸ÁÒ.

OverloadCalc(Áߺ¹ ¸Þ¼­µå¸¦ Å×½ºÆ®Çϱâ À§ÇÑ ¿¹Á¦)

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(String[] args){

                           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);

                           System.out.println("intÇÕ:"+i);

                           System.out.println("floatÇÕ:"+j);

                           System.out.println("doubleÇÕ:"+k);              

             }

}

C:\examples\4. Class for Basic Java>javac OverloadCalc.java

C:\examples\4. Class for Basic Java>java OverloadCalc

intÇÕ:8

floatÇÕ:0.3

doubleÇÕ:1.2

 

À§ÀÇ ¿¹Á¦ ¿ì¸®´Â °°Àº À̸§ÀÇ ¸Þ¼­µå¸¦ 3°³ °¡Áö°í ÀÖ½À´Ï´Ù. Áߺ¹ Á¤ÀÇÇÑ ¸Þ¼­µå´Â ´ÙÀ½°ú °°½À´Ï´Ù.

 

Áߺ¹ Á¤ÀÇÇÑ ¸Þ¼­µå

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Çü ¼ö°¡ ´õÇØÁ®¼­ ÇÕÀ» ¸®ÅÏ Çϸ®¶ó »ý°¢ÇÕ´Ï´Ù. À̰ÍÀº Áö±ØÈ÷ ´ç¿¬ÇÑ ÀÏÀÔ´Ï´Ù. ÇÏÁö¸¸ ¾îµð ÇÕÇÏ´Â °ÍÀÌ intÇü¸¸ ÀÖ°Ú½À´Ï±î? ´Ù¸¥ ÇüµéÀÇ ÇÕµµ Á¸ÀçÇÕ´Ï´Ù. À̰ÍÀº ÄÄÇ»Å;ð¾î¿¡¼­ µ¥ÀÌÅÍ Å¸ÀÔÀ» ¾ÆÁÖ Á¤¹ÐÇÏ°Ô ±¸ºÐÇϰí ÀÖ°í ¸Þ¼­µåÀÇ ¸Å°³º¯¼öÀÇ ÇüÀº ¹Ýµå½Ã ÁöÄÑÁ®¾ß µÈ´Ù´Â ¿øÄ¢ ¶§¹®¿¡ ÇϳªÀÇ ¸Þ¼­µå·Î´Â ´Ù¾çÇÑ °è»êÀ» ÇØ ³¾ ¼ö ¾ø½À´Ï´Ù. ÀϹÝÀûÀ¸·Î ¿©·¯ºÐÀÌ ¸Þ¼­µå¸¦ ¸¸µé ¶§ ¸Þ¼­µåÀÇ ¸Å°³º¯¼öÇü, ¸Å°³º¯¼öÀÇ °³¼ö ±×¸®°í ¸®ÅÏÇüÀÌ ´Ù¸£´Ù¸é ¸Þ¼­µå¸¦ °¢ÀÚ µû·Î ¸¸µé¾î ÁÖ¾î¾ß ÇÕ´Ï´Ù. ¹°·Ð À̸§µµ ´Ù¸£°ÚÁÒ. ÇÏÁö¸¸ ÀÌ·¯ÇÑ ¾àÁ¡À» º¸¿ÏÇϱâ À§Çؼ­ °´Ã¼ÁöÇâ¿¡¼­´Â ÇϳªÀÇ ¸Þ¼­µåÀÇ À̸§À¸·Î ´Ù¾çÇÑ ¸Å°³º¯¼ö¸¦ ¹Þ¾Æ µéÀÏ ¼ö ÀÖ´Â ¸Þ¼­µå¸¦ Áö¿øÇÕ´Ï´Ù. À̰ÍÀ» ¿ì¸®´Â OverloadingÀ̶ó°í ÇÕ´Ï´Ù.

 

±×·¸´Ù¸é ¾ÆÁÖ ¸¹Àº ¸Þ¼­µå°¡ Á¸ÀçÇÒ ¼ö ÀÖ½À´Ï´Ù. À§ÀÇ ¿¹Á¦¿¡¼­ ¿ì¸®´Â 3°³ÀÇ ¸Þ¼­µå¸¦ ã¾Æ º¼ ¼ö ÀÖ½À´Ï´Ù. ÀÌ Å¬·¡½º¸¦ ÀÌ¿ëÇÏ¿© °´Ã¼¸¦ ¸¸µç »ç¶÷Àº ±×³É plusÇÏ°í »ç¿ëÇÏ°Ô µÈ´Ù¸é 3°¡Áö Á¾·ùÀÇ ¸Þ¼­µå¸¦ ÀüºÎ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¹Ýµå½Ã ¸Å°³º¯¼öÀÇ Çü°ú °³¼ö¸¦ ¸ÂÃß¾î¾ß ÇÏ´Â °ÍÀº öĢÀÔ´Ï´Ù.

 

ÇÏÁö¸¸ À̰ÍÀÌ È£Ã⠵ǾúÀ» ¶§ ÄÄÆÄÀÏ·¯´Â ³»ºÎÀûÀ¸·Î´Â 3°³Áß¿¡ ¾î´À ¸Þ¼­µå°¡ È£ÃâµÇ¾ú´ÂÁö ±¸ºÐÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù. À̸§Àº °°°í ¸Å°³º¯¼öÀÇ Çü, ¸Å°³º¯¼öÀÇ °³¼ö ±×¸®°í ¸®ÅϰªÀÌ Æ²¸± ¼ö Àֱ⠶§¹®¿¡ ±¸ºÐÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀº ÀÌ ¼¼°¡Áö ÁßÀÇ ÀÖ°ÚÁÒ. ¸®ÅÏŸÀÔÀº °¢°¢ÀÇ Çü¿¡ µû¶ó Ʋ·ÁÁú ¼ö µµ ÀÖÀ¸¸ç °°¾Æ Áú ¼ö µµ Àֱ⠶§¹®¿¡ ¸®ÅÏŸÀÔÀ¸·Î´Â ±¸ºÐÇÏÁö ¾Ê½À´Ï´Ù. ±×·¸´Ù¸é ³²¾Æ ÀÖ´Â °ÍÀº ¸Å°³º¯¼öÀÇ Çü°ú ¸Å°³º¯¼öÀÇ °³¼öÀÔ´Ï´Ù. Á¤È®ÇÏ°Ô ³»ºÎÀûÀ¸·Î »ç¿ëÀÚ°¡ plus¶ó´Â Áߺ¹¸Þ¼­µå¸¦ È£Ãâ ÇßÀ» ¶§ ¸Å°³º¯¼öÀÇ Çü°ú ¸Å°³º¯¼öÀÇ °³¼ö·Î ±¸ºÐÇÕ´Ï´Ù.

 

Áߺ¹¸Þ¼­µå¸¦ ±¸ºÐÇÒ ¶§ÀÇ ±ÔÄ¢

n        ¸Å°³º¯¼öÀÇ °³¼ö°¡ ´Þ¶ó¾ß ÇÑ´Ù.

n        ¸Å°³º¯¼öÀÇ Å¸ÀÔÀÌ ´Þ¶ó¾ß ÇÑ´Ù.

n        À§ÀÇ °³¼ö¿Í ŸÀÔ Áß Çϳª¸¸ ´Þ¶óµµ Áߺ¹¸Þ¼­µåÀÇ Á¶°ÇÀÌ ¼º¸³ µË´Ï´Ù.

n        ¸Þ¼­µåÀÇ ¸®ÅÏŸÀÔÀº Áߺ¹¸Þ¼­µå ±¸ºÐÇÒ ¶§ »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù.

 

Áߺ¹ ¸Þ¼­µå¸¦ ÀÚ¹Ù ³»ºÎÀûÀ¸·Î À§ÀÇ ¹æ½Ä´ë·Î ±¸ºÐÇÑ´Ù¸é ¿©·¯ºÐÀÌ Áߺ¹ ¸Þ¼­µå¸¦ ¸¸µé°íÀÚ ÇÑ´Ù¸é À§ÀÇ ±ÔÄ¢À» ¹Ýµå½Ã ÁöÄÑ¾ß ÇÕ´Ï´Ù.

 

4.3.3 Áߺ¹¸Þ¼­µåÀÇ ¿ªÇÒ

Áߺ¹ ¸Þ¼­µå´Â ´©±¸¸¦ À§ÇÑ °ÍÀϱî¿ä. Ŭ·¡½º¸¦ ¸¸µå´Â »ç¶÷ ÀÔÀåÀϱî¿ä ¾Æ´Ï¸é Ŭ·¡½º¸¦ »ç¿ëÇÏ´Â ÀÔÀåÀϱî¿ä?

 

½±°Ô »ý°¢ µÇ´Â °ÍÀº ¸¸µé¾îÁø Ŭ·¡½º¸¦ »ç¿ëÇÏ´Â »ç¶÷ ÀÔÀå¿¡¼­ ¾ÆÁÖ Æí¸®ÇÕ´Ï´Ù. À̰ÍÀ» ¸¸µå´Â »ç¶÷Àº ¾ÆÁÖ °í»ý ²Ï³ª ÇϰÚÁÒ. ±×¸®°í ¾î¶² ÀϹÝÀûÀÎ ±ÔÄ¢À» ÁöÄѰ¡¸é¼­ ¸¸µé¾î¾ß ÇÏ¸ç ¿©·¯ °¡Áö °æ¿ì¿¡ ´ëÇØ ´ëÃ³ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ ¿ªÇÒÀÇ ¿¹´Â System.out.println¿¡¼­ ã¾Æ º¼ ¼ö ÀÖ½À´Ï´Ù. printlnÀ̶ó´Â ¸Þ¼­µå´Â ±âº»ÀûÀ¸·Î ¹®ÀÚ¿­À» Ãâ·ÂÇÕ´Ï´Ù. ÇÏÁö¸¸ int, float, charÇüÀ» ÀÔ·ÂÇØµµ ÄܼÖâ¿¡ °ªÀ» Ãâ·ÂÇÕ´Ï´Ù.

printlnÀÇ Áߺ¹ ¸Þ¼­µå´Â ¾Æ·¡ ¿Í °°ÀÌ »ó´çÈ÷ Á¾·ù°¡ ¸¹½À´Ï´Ù. ±×·¡¼­ À¢¸¸ÇÑ °ÍÀº ÀüºÎ Ãâ·ÂÇÒ ¼ö ÀÖ´Â ¸Þ¼­µå¸¦ °®Ãß°í ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ À̰ÍÀ» ¸¸µå´Â »ç¶÷ÀÔÀå¿¡¼­´Â °ÅÀÇ ´ëºÎºÐÀÇ °æ¿ì¸¦ ÀüºÎ ´Ù »ý°¢ÇßÀ» °ÍÀÔ´Ï´Ù.

n         println()

n         println(boolean)

n         println(char)

n         println(char[])

n         println(double)

n         println(float)

n         println(int)

n         println(long)

n         println(java.lang.Object)

n         println(java.lang.String)

 

¾ð¾îÀÇ ±âº»ÀûÀΠƯ¼º»ó ¸Å°³º¯¼öÀÇ µ¥ÀÌÅÍÇüÀ̳ª °³¼ö°¡ ´Ù¸£¸é ¸Þ¼­µå ¶ÇÇÑ ´Ù½Ã ¸¸µé¾î¾ß ÇÏÁö¸¸ OverloadingÀÇ °³³äÀ» Áö¿øÇؼ­ À̸¦ º¸´Ù Æí¸®ÇÏ°Ô Ã³¸®Çϰí ÀÖ½À´Ï´Ù. ±×¸®°í »ç¿ëÀÚ Ãø¸éÀÇ ÀÎÅÍÆäÀ̽º´Â ÈξÀ °£ÆíÇØ Áö´Â °ÍÀÔ´Ï´Ù.

 

 

4.3.4 °á·Ð

C++¿Í °°Àº °´Ã¼ÁöÇâ ¾ð¾î¿¡¼­ ÇѰ¡ÁöÀÇ À̸§À¸·Î ¿©·¯°¡Áö ±â´ÉÀ» Á¦°øÇØ ÁÖ´Â °ÍÀÌ Áߺ¹¸Þ¼­µåÀÔ´Ï´Ù. Áߺ¹ ¸Þ¼­µå´Â »ý¼ºÀÚ¸Þ¼­µå¿¡¼­µµ Áö¿øµÇ¸ç ÀÚ¹Ù ¶óÀ̺귯¸®¿¡¼­ ¾ÆÁÖ ¸¹Àº ºÎºÐÀÌ Overloading°³³äÀ» Æ÷ÇÔÇϰí Àֱ⠶§¹®¿¡ Overloading°³³äÀ» ¾Ë°í ÀÖ¾î¾ß ¸¸ ÀÚ¹Ù ¶óÀ̺귯¸®¸¦ Àß ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±âÁ¸ÀÇ C¾ð¾î °è¿­¿¡¼­´Â ¸ðµç °ÍÀ» »ç¿ëÀÚ°¡ ÀüºÎ ¸¸µé¾î »ç¿ëÇÏ¿´Áö¸¸ ¾ð¾îÀÇ ¹ßÀü¿¡ µû¶ó °í±Þ¾ð¾î·Î ¹ßÀüÇϸ鼭 °´Ã¼ÁöÇâÀÇ ¿©·¯ ±â¹ýµéÀ» ÀÌ¿ëÇϰí ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ °´Ã¼ÁöÇâ ±â¹ý Áß¿¡¼­ °¡Àå ÀϹÝÀûÀ¸·Î ¸¹ÀÌ »ç¿ëµÇ´Â OverloadingÀ» Àß ¾Ë°í ÀÖ´Ù¸é º¸´Ù È¿À²ÀûÀ¸·Î ÇÁ·Î±×·¥ °³¹ßÀ» ÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.

 

OverloadingÀÇ °³³äÀº ÀÏ¹Ý ¸Þ¼­µå, »ý¼ºÀÚ¸Þ¼­µå, Static¸Þ¼­µå¿¡ À̸£±â±îÁö ¸Þ¼­µå°¡ Ȱ¿ëµÇ´Â °÷ÀÌ¸é ¾îµð¼­µçÁö µîÀåÇϰí ÀÖ½À´Ï´Ù. ÇöÀç Àû¿ëÇÑ Áߺ¹ ¸Þ¼­µåÀÇ °³³äÀº ºÎºÐÀûÀÎ °ÍÀÔ´Ï´Ù. ¾ÕÀ¸·Î ´Ù·ç¾îÁú ´ëºÎºÐÀÇ Àå¿¡¼­ Áߺ¹ ¸Þ¼­µåÀÇ °³³äÀ» º°´Ù¸¥ ¼³¸í¾øÀÌ ´Ù·ç°Ô µÉ °ÍÀÔ´Ï´Ù. ÀÌ Àý¿¡¼­ ¾ð±ÞÇÑ °³³ä¸¸ °¡Áö°í ÀÖ´Ù¸é ¹®¾ÈÇÏ°Ô OverloadingÀ» ÇØ°á Çϸ®¶ó »ý°¢µË´Ï´Ù.



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