¼Ò¼³°°ÀºÀÚ¹Ù2ºÎ  Á¦6Àå ¹è¿­ Ä÷º¼Ç ¿­°ÅÀÚ  6.3.3 ¸Å°³º¯¼ö·Î¼­ÀÇ ¹è¿­  

 

 

6.3.3 ¸Å°³º¯¼ö·Î¼­ÀÇ ¹è¿­

 

¸Å°³º¯¼ö·Î ¹è¿­À» »ç¿ëÇÏ´Â °æ¿ì°¡ ¾ÆÁÖ ¸¹½À´Ï´Ù. ÇÏÁö¸¸ ±âº»ÀûÀ¸·Î ¸Å°³º¯¼öµµ ÀÏÁ¾ÀÇ °´Ã¼ º¯¼ö³¢¸®ÀÇ ÇÒ´çÀ̱⠶§¹®¿¡ ÂüÁ¶¸¦ ±âº»À¸·Î ÇϰÚÁÒ. ´ç¿¬ÇÑ °ÍÀÔ´Ï´Ù. ÇÏÁö¸¸ ¸Å°³º¯¼ö¶ó´Â Ãø¸é¿¡¼­ °£´ÜÇÑ ¿¹Á¦¸¸À» ´Ù·ç¾î º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

ParamArrayMain.java

class ParamArray{

             private int[] des;

             public int[] copyArray(int[] source){

                           this.des = new int[source.length];

                           for(int i=0; i<source.length; i++)

                                        this.des[i] = source[i];

                           return this.des;

             }

             public void copyArray(int[] source, int[] target){

                           for(int i=0; i<source.length; i++)

                                        target[i] = source[i];                        

             }

}

public class ParamArrayMain{

             public static void main(String[] args){

                           int[] arr = new int[]{1,2,3,4,5};

                           int[] tar = new int[5];

                           ParamArray p = new ParamArray();

 

                           int[] result = p.copyArray(arr);

                           for(int i=0; i<result.length; i++){

                                        System.out.println("result["+i+"]:" + result[i]);

                           }

 

                           p.copyArray(arr, tar);

                           for(int i=0; i<tar.length; i++){

                                        System.out.println("tar["+i+"]:" + tar[i]);

                           }

             }

}

C:\examples\6. Array>javac ParamArrayMain.java

 

C:\examples\6. Array>java ParamArrayMain

tar[0]:1

tar[1]:2

tar[2]:3

tar[3]:4

tar[4]:5

result[0]:1

result[1]:2

result[2]:3

result[3]:4

 

ÀÌ ¿¹Á¦´Â ParamArray³»ÀÇ Overloading¸Þ¼­µå 2°³¸¦ ±¸ºÐÇÏ´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù. ù¹øÂ° ¸Þ¼­µåºÎÅÍ Çѹø º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

             public int[] copyArray(int[] source){

                           this.des = new int[source.length];

                           for(int i=0; i<source.length; i++)

                                        this.des[i] = source[i];

                           return this.des;

             }

 

ÀÌ ¸Þ¼­µå´Â ¾ÆÁÖ ´Ü¼øÇÕ´Ï´Ù. ¿ÜºÎ¿¡¼­ ¸Å°³º¯¼ö·Î µé¾î¿À´Â ¹è¿­source¸¦ ¸â¹öÇʵåÀÎ ¹è¿­des·Î º¹»ç ÇÑ ÈÄ, À̰ÍÀ» ´Ù½Ã ¸®ÅÏÇÏ´Â ¸Þ¼­µåÀÔ´Ï´Ù. ´Ü¼øÇÏÁø ¾Ê³×¿ä.

 

¿ÜºÎ¿¡¼­ ¹è¿­arrÀ» ³Ñ°ÜÁÙ ¶§ °´Ã¼ÀÇ À̸§À» ³Ñ±âµí ¹è¿­ÀÇ À̸§¸¸À» ³Ñ°ÜÁÖ°í ÀÖ½À´Ï´Ù. ¹è¿­arrÀº ¸Å°³º¯¼öÀÎ ¹è¿­source·Î ÇÒ´çµÇ°í, ¹è¿­source¸¦ ÀÌ¿ëÇÏ¿© ³»ºÎ¿¡¼­ ¹è¿­À» »ý¼ºÇÑ ÈÄ º¹»çÇÏ¿© ¸®ÅÏÇϰí ÀÖ½À´Ï´Ù. ±×¸®°í copyArray(arr)¸Þ¼­µå°¡ ¸®ÅÏÇÏ´Â °ªÀ» ¹è¿­result°¡ ³Ñ°Ü ¹Þ´Â °ÍÀÔ´Ï´Ù. ´ÙÀ½Àº copyArray(int[] source)¸¦ È£ÃâÇÏ´Â ºÎºÐÀÔ´Ï´Ù.

 

n         int[] result = p.copyArray(arr);

 

À§ÀÇ ¼ø¼­¸¦ ÇϳªÇϳª Âɰ³¼­ º¸¸é ´ÙÀ½°ú °°½À´Ï´Ù.

 

1.       ÀÏ´Ü sourceÀÇ Å©±â¸¸Å­ ¹è¿­des¸¦ »ý¼ºÇÕ´Ï´Ù.(º¹»çÇÏ·Á¸é »çÀÌÁî°¡ °°¾Æ¾ßÁÒ)

this.des = new int[source.length];

2.       Çϳª¾¿ source³»ÀÇ º¯¼öÀÇ °ªµéÀ» ³Ñ°Ü ¹Þ½À´Ï´Ù.(º¯¼öÀÇ ÇÒ´çó·³)

for(int i=0; i<source.length; i++)

this.des[i] = source[i];

3.       µ¥ÀÌÅ͸¦ ³Ñ°Ü ¹Þ°í ³ª¸é des¸¦ ¸®ÅÏÇÏ°Ô µË´Ï´Ù.(¹è¿­ÀÇ À̸§¸¸À» ¸®ÅÏ)

return this.des

 

 ÀÌ ¸Þ¼­µåÀÇ °á°ú¿¡¼­ ´ÙÀ½°ú °°Àº °á·ÐÀ» ¾òÀ» ¼ö ÀÖ´Ù.

 

n         arr¿Í source´Â °°Àº ÂüÁ¶°ªÀÌ´Ù.

n         des¿Í result´Â °°Àº ÂüÁ¶°ªÀÌ´Ù.

 

 µÎ ¹øÂ° ¸Þ¼­µå´Â À̿ʹ ¾à°£ ´Ù¸¨´Ï´Ù. ¿ÜºÎ¿¡¼­ ¿øº»¹è¿­arr°ú º¹»çÇÒ °÷ÀÎ tar µÑ ´Ù ³Ñ°ÜÁÖ°í ÀÖ½À´Ï´Ù.

 

n        p.copyArray(arr, tar);

 

Áï, Á¾À̸¦ º¹»ç¸¦ ÇÑ´Ù¸é ¿øº»°ú ºó Á¾À̸¦ °°ÀÌ ÁÖ´Â »ùÀÌÁÒ. À̰ÍÀº ¹è¿­ÀÌ ÂüÁ¶ÀÇ ¿øÄ¢À» µû¸£°í Àֱ⠶§¹®¿¡ °¡´ÉÇÑ °ÍÀÔ´Ï´Ù. ÀÏ´Ü ¸Þ¼­µå ³»ºÎ¸¦ Çѹø º¸½ÃÁÒ.

 

             public void copyArray(int[] source, int[] target){

                           for(int i=0; i<source.length; i++)

                                        target[i] = source[i];                  

             }

 

 ÀÌ ¸Þ¼­µå´Â ÇÏ´Â ÀÏÀÌ °ÅÀÇ ¾ø½À´Ï´Ù. ¹è¿­ µÎ°³¸¦ ÁÖ°í ¿ÜºÎ¿¡¼­ ¸Þ¼­µå¸¦ È£ÃâÇϰí ÀÖ½À´Ï´Ù. ±×¸®°í ¹è¿­ ÀÚü°¡ ÂüÁ¶À̱⠶§¹®¿¡ mainÀÇ arr°ú ¸Þ¼­µåÀÇ source´Â °°Àº ÂüÁ¶°ªÀ̸ç tar°ú target ¶ÇÇÑ °°Àº ÂüÁ¶°ªÀÔ´Ï´Ù.

 

n         arr¿Í source´Â °°Àº ÂüÁ¶°ªÀÌ´Ù.

n         tar¿Í targetÀº °°Àº ÂüÁ¶°ªÀÌ´Ù.

 

 ÂüÁ¶´Â ¾Ë°í º¸¸é ½¬¿îµ¥ ¼³¸íÇϱⰡ ±î´Ù·Ó±º¿ä. ¿©ÇÏÆ° Áö±Ý±îÁö 1Â÷¿ø ¹è¿­ÀÇ ÂüÁ¶¿¡ ´ëÇÑ »çÇ×À» ¾Ë¾Æº¸¾Ò½À´Ï´Ù. ´ÙÀ½À¸·Î, 2Â÷¿ø ¹è¿­ÀÇ ³»ºÎ¿¡¼­ ÀÌ·ç¾îÁö´Â ÂüÁ¶¿¡ ´ëÇÏ¿© ¾Ë¾Æº¸µµ·Ï ÇϰڽÀ´Ï´Ù.



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