ÀÚ¹Ù Call By Reference ±Ã±ÝÇÕ´Ï´Ù.

   Á¶È¸ 3616   Ãßõ 0    


package method;

public class CallByReference_ex
{
    private String name;
   
    public void setName(String name)
    {
        this.name = name;
    }
    public String getName()
    {
        return name;
    }
}

---------------------------------------------------------------------------

package method;

public class CallByReference {

    public static void main(String[] args)
    {
       
        CallByReference_ex com1 = new CallByReference_ex();
        com1.setName("google");
        show(com1);
        System.out.println("====");
        System.out.println(com1.getName());
       
    }
   
    public static void show(CallByReference_ex com)
    {
     com.setName("Yahoo");
     System.out.println(com.getName());
    }
}

위 소스는 유투브 강좌를 통해서 퍼왔습니다.

질문1. show 메소드에서 매개변수로(클래스명 이름)에서 클래스명 뒤에 붙는 com의 기능이 궁금합니다. 클래스 변수인가요?

com.setName("Yahoo"); 이부분때문에 그렇습니다.

질문2. com1 객체는 임의의 주소값(예를 들어 1000번)을 가지고 있습니다. 메소드 호출시 cmo1 객체는 1000번의 주소값을 com에 복사해줍니다. com1도 com도 google 값에 접근할수 있지만 com에서 yahoo라는 값으로 변경되어 google의 값은 yahoo로 바뀌게 된다.

책에서는 형식 매개변수(CallByReference_ex com), 실 매개변수show(com1); 경우 형식 매개 변수를 이용하여 객체의 값이 변경되면 실매개 변수를 통한 객체의 값도 변경된다.

Yahoo

=====

Yahoo

제가 설명한것이 맞나요?

정말로 아리송합니다. 혹시 도움주실 회원님 계신가요?

ªÀº±Û Àϼö·Ï ½ÅÁßÇÏ°Ô.
1. comÀº ±×³É º¯¼ö À̸§ÀÏ »ÓÀÔ´Ï´Ù. CallByReference_ex ŸÀÔÀÇ º¯¼ö comÀ» Á¤ÀÇÇÑ °ÍÀÌÁÒ.

µ¡, Ŭ·¡½º º¯¼ö´Â ¾Æ´Õ´Ï´Ù. Ŭ·¡½º º¯¼ö´Â ´Ù¸¥ °³³äÀÌÁÒ.
2. Å« Ʋ¿¡¼­ º¸¸é ¸Â°Ô ¼³¸í Çϼ̽À´Ï´Ù.

µ¡, Call by Reference¸¦ ¼³¸í Çϱâ À§ÇÑ ¿¹Á¦ÀΰŠ°°½À´Ï´Ù¸¸ À§ µ¿¿µ»ó¿¡¼­ ¸»ÇßµíÀÌ ÀÚ¹Ù¿¡´Â Call by Reference°¡ ¾ø½À´Ï´Ù. Call by Value¸¸ ÀÖÁÒ.

Á» ´õ ÀÚ¼¼È÷ ¸»Çϸé ÀÚ¹Ù´Â µ¥ÀÌÅÍŸÀÔ¿¡ µû¶ó µÎ °¡Áö ¹æ½ÄÀ¸·Î µ¿ÀÛÇÕ´Ï´Ù.

ÇÁ¸®¹ÌƼºê µ¥ÀÌÅÍŸÀÔ¿¡´Â Call by Value ¹æ½ÄÀ¸·Î, ±× ¿Ü¿¡´Â Call by Reference 'ó·³ º¸ÀÌ´Â' Call by Value ¹æ½ÄÀ¸·Î ¸»ÀÌÁÒ.

À§ ¿¹Á¦°¡ ¹Ù·Î Call by Reference ó·³ º¸ÀÌ´Â Call by Value ¹æ½ÄÀ» ¼³¸íÇÏ°í Àֳ׿ä.


QnA
Á¦¸ñPage 4195/5683
2015-12   1491222   ¹é¸Þ°¡
2014-05   4954717   Á¤ÀºÁØ1
2017-09   3617   inquisitive
2018-03   3616   ¼­¿ï»ç¶÷
2020-08   3616   FreeBSD
2016-06   3616   ±è°Ç¿ì
2015-11   3616   Àΰ£±è»ó¼ö
2017-09   3616   µÎcpu
2018-04   3616   Áý¾Èû¼Ò
2018-11   3616   żº±â±è
2019-01   3616   ÇåÅÍD
2018-09   3616   ÄĹÚ
2014-08   3616   KMG5586
2018-10   3616   À̼±È£
2014-11   3616   Psychophysi¡¦
2017-10   3616   Ä«¼Ò½Ã½º
2018-02   3616   minsuk
2018-06   3615   Seewoo
2019-10   3615   ÀüÁø
2020-10   3615   ¹éµÎ»ê
2015-01   3615   Á¤±¤Áø
2017-08   3615   winner712