¼Ò¼³°°ÀºÀÚ¹Ù2ºÎ  Á¦6Àå ¹è¿­ Ä÷º¼Ç ¿­°ÅÀÚ  6.3.2 ¹è¿­ ÇÒ´çÀÇ ÂüÁ¶  

 

 

6.3.2 ¹è¿­ ÇÒ´çÀÇ ÂüÁ¶

¹è¿­Àº °´Ã¼ÀÔ´Ï´Ù. ¹è¿­ÀÇ À̸§Àº ÂüÁ¶°ªÀÔ´Ï´Ù. ¹è¿­ÀÌ ÂüÁ¶°ªÀ̶ó¸é °°Àº ÇüÀÇ ¹è¿­¿¡ ´Ù¸¥ ¹è¿­À» ÇÒ´çÇÑ´Ù¸é °°Àº ¸Þ¸ð¸®¸¦ ÂüÁ¶ÇÏ°Ô µÉ °ÍÀÔ´Ï´Ù. ÀÌ´Â °´Ã¼º¯¼öµéÀÇ ±âº»ÀûÀΠƯ¡ÀÌ¸ç ¹è¿­µµ ±× ¿¹¿Ü´Â ¾Æ´Õ´Ï´Ù. ´ÙÀ½Àº ¹è¿­ÀÌ ÂüÁ¶¶ó´Â °ÍÀ» Áõ¸íÇØ ÁÖ´Â ¿¹Á¦ÀÔ´Ï´Ù.

¹è¿­ÀÇ Æ¯Â¡

n         ¹è¿­Àº °´Ã¼´Ù

n         ¹è¿­ÀÇ À̸§Àº ÂüÁ¶°ªÀÌ´Ù.

 

ArrayRefMain.java(¹è¿­ÀÌ ÂüÁ¶°ªÀ̶ó´Â Áõ°Å)

public class ArrayRefMain{

             public void print(String arrayname, int index, int value){

                       System.out.print(" arrayname["+index+"]:" + value );

             }

             public static void main(String[] args){

                           ArrayRefMain ar = new ArrayRefMain();

                           int[] mydream  = new int[]{5, 4, 6, 9, 7, 9};

                           int[] myref1 = mydream;

                           int[] myref2 = myref1;

                           mydream[0]=1;

                           mydream[1]=1;

                           myref1[2] =2;

                           myref1[3]=3;

                           myref2[4]=4;

                           myref2[5]=5;

                           for(int i=0; i<6; i++){

                                        ar.print("mydream",i, mydream[i]);

                                        ar.print("myref1", i, myref1[i]);

                                        ar.print("myref2", i, myref2[i]);

                                        System.out.println();

                           }

             }

}

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

C:\examples\6. Array>java ArrayRefMain

 arrayname[0]:1 arrayname[0]:1 arrayname[0]:1

 arrayname[1]:1 arrayname[1]:1 arrayname[1]:1

 arrayname[2]:2 arrayname[2]:2 arrayname[2]:2

 arrayname[3]:3 arrayname[3]:3 arrayname[3]:3

 arrayname[4]:4 arrayname[4]:4 arrayname[4]:4

 arrayname[5]:5 arrayname[5]:5 arrayname[5]:5

 

 À§¿¡¼­ ¿ì¸®´Â 3°³ÀÇ intÇü¹è¿­À» º¼ ¼ö ÀÖ½À´Ï´Ù.

 

n        int[] mydream  = new int[]{5, 4, 6, 9, 7, 9};

n        int[] myref1 = mydream;

n        int[] myref2 = myref1;

 

  mydreamÀ» myref1¿¡ ÇÒ´çÇϰí myref1À» myref2¿¡ ÇÒ´çÇÏÁö¸¸, ±âº»ÀûÀ¸·Î ÂüÁ¶ÀÇ ¹æ¹ýÀ» µû¸£°í Àֱ⠶§¹®¿¡ ¸Þ¸ð¸®´Â ÇϳªÀ̰í ÇϳªÀÇ ¸Þ¸ð¸®¸¦ ÂüÁ¶ÇÏ´Â º¯¼ö´Â 3°³°¡ µÇ´Â °ÍÀÔ´Ï´Ù. À§ÀÇ ÂüÁ¶¹æ¹ýÀº ¾Æ·¡ÀÇ ±×¸²°ú °°Àº ±¸Á¶·Î ³ªÅ¸ ³¾ ¼ö ÀÖ½À´Ï´Ù.

 

 

 

¹è¿­ º¯¼öµéÀÌ ¸ðµÎ ÇϳªÀÇ ¸Þ¸ð¸®¸¦ ÂüÁ¶Çϰí Àֱ⠶§¹®¿¡ ¾Æ¹«¸® ÇÒ´çÀ» ÇÏ¿©µµ °ªÀº µ¿ÀÏÇÑ °ªÀÌ ³ª¿Ã °ÍÀÔ´Ï´Ù. ÀÌ·¯ÇÑ ÀÌÀ¯¿¡¼­ ¹è¿­ÀÇ º¹»ç¶ó´Â ºÎºÐÀÌ ¾ÆÁÖ Áß¿äÇÏ°Ô ´Ù·ç¾îÁö´Â °ÍÀÔ´Ï´Ù. À̰ÍÀº ´ÙÀ½°ú °°ÀÌ Ç¥ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

n         mydream[0]   ==  myref1[0]  ==   myref2[0]  ¸ðµÎ°°´Ù.

n         mydream[1]   ==  myref1[1]  ==   myref2[1]  ¸ðµÎ°°´Ù.

n         mydream[2]   ==  myref1[2]  ==   myref2[2]  ¸ðµÎ°°´Ù.

n         mydream[3]   ==  myref1[3]  ==   myref2[3]  ¸ðµÎ°°´Ù.

n         mydream[4]   ==  myref1[4]  ==   myref2[4]  ¸ðµÎ°°´Ù.

n         mydream[5]   ==  myref1[5]  ==   myref2[5]  ¸ðµÎ°°´Ù.

 

ÁÖÀÇ ÇÒ Á¡

n        ¹è¿­À» ÇÒ´çÇÒ ¶§ µ¥ÀÌÅÍ Å¸ÀÔÀº °°¾Æ¾ß ÇÑ´Ù.

n        ´ç¿¬ÇÑ ¼Ò¸®ÁÒ. À§ÀÇ º¯¼öµéÀº µ¥ÀÌÅÍ Å¸ÀÔÀÌ ¸ðµÎ int[]ÀÔ´Ï´Ù.

n        int[] mydream, int[] myhref1, int[] myhyref2

 

ÀϹÝÀûÀÎ °´Ã¼ ¶ÇÇÑ ±âº»ÀûÀ¸·Î ÂüÁ¶¸¦ ¿øÄ¢À¸·Î Çϰí ÀÖ½À´Ï´Ù. ÀϹÝÀûÀÎ °´Ã¼ÀÇ ÂüÁ¶¿¡ ´ëÇÑ °£´ÜÇÑ ¿¹¸¦ Çϳª »ìÆì º¸°í ´ÙÀ½À¸·Î ³Ñ¾î°¡µµ·Ï ÇϰڽÀ´Ï´Ù.

 

LGTVMain.java

class  LGTV{

             private int volume;

             public LGTV(int v){

                           volume = v;

             }

             public int getVolume(){

                           return volume;

             }

}

public class LGTVMain{

                           public static void main(String[] args){

                                        LGTV t = new LGTV(100);

                                        System.out.println("LGTV tÀÇ ±âº»º¼·ý:" + t.getVolume());

                                        System.out.println("LGTV°´Ã¼ tÀÇ ÇØ½ÃÄÚµå:" + t.hashCode());

                                        LGTV f = t;

                                        System.out.println("TV fÀÇ ±âº»º¼·ý:" + f.getVolume());

                                        System.out.println("LGTV°´Ã¼ fÀÇ ÇØ½ÃÄÚµå:" + f.hashCode());

                           }

}

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

C:\examples\6. Array>java LGTVMain

LGTV tÀÇ ±âº»º¼·ý:100

LGTV°´Ã¼ tÀÇ ÇØ½ÃÄÚµå:2083945

TV fÀÇ ±âº»º¼·ý:100

LGTV°´Ã¼ fÀÇ ÇØ½ÃÄÚµå:2083945

 

 

 

À§ÀÇ ¿¹¿¡¼­ ¹è¿­°ú ¶È °°Àº ¹æ½ÄÀ¸·Î °´Ã¼¸¦ ÇÒ´çÇϰí ÀÖ½À´Ï´Ù.

 

n        LGTV t = new LGTV(100);

n        LGTV f = t;

 

 °´Ã¼µµ ÂüÁ¶¸¦ ¿øÄ¢À¸·Î Çϰí Àֱ⠶§¹®¿¡ t¿Í f´Â °°Àº ¸Þ¸ð¸®¸¦ ÂüÁ¶ÇÏ´Â °ÍÀÔ´Ï´Ù. ±×·¡¼­ °´Ã¼ÀÇ hashCodeµµ °°Àº °ÍÀÔ´Ï´Ù. hashCode´Â °¡»ó¸Ó½Å³»ÀÇ Å¬·¡½ºÀÇ IDÁ¤µµ µË´Ï´Ù. ´Ù ¾Æ´Â »ç½ÇÀÌÁö¸¸, °´Ã¼¸¦ ÇÒ´ç ÇÒ ¶§ ÇüÀÌ ´Ù¸¥ °æ¿ì´Â ¾÷ij½ºÆÃÀ̳ª °­Á¦ÀûÀÎ ´Ù¿îij½ºÆÃ À̿ܿ¡´Â ¾ø½À´Ï´Ù. »ó¼Ó±¸Á¶ÀÇ ¾÷, ´Ù¿îij½ºÆÃÀ̿ܿ¡ °´Ã¼ÀÇ ÇüÀÌ ´Ù¸£´Ù¸é ±×°ÍÀº °ÅÀÇ 99%´Â À߸ø ÇÒ´ç µÈ °ÍÀ̶ó°í º¸¸é µÉ °ÍÀÔ´Ï´Ù.



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