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

   Á¶È¸ 3703   Ãßõ 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 1832/5696
2014-05   5029641   Á¤ÀºÁØ1
2015-12   1566203   ¹é¸Þ°¡
2016-10   4038   Á¶¾Æ
2020-02   4038   Benefactor
2015-07   4038   jack33
2017-07   4038   DSUN
2018-08   4038   ½ÅÀº¿Ö
2016-01   4038   isaiah
2016-07   4038   Åäºê
2018-09   4038   Cannon
2020-04   4038   ¸ðÀÚ¶õÆ®
2016-08   4038   ·ê·ç¶ö¶ó
2016-02   4039   Â÷ºÐÇÏ°ÔÇÏÀÚ
2014-05   4039   °¡ºü·Î±¸³ª
2018-04   4039   ±è¿µ±â´ëÀü
2017-09   4039   »ßµ¹À̽½ÇÄÀÌ
2017-06   4039   Àϱ¹
2017-10   4039   °­¹ÎÁØ1
2014-08   4039   À̱âÀûÃ浿
2016-06   4039   ¹«°¢
2015-08   4040   À̼±È£
2016-02   4040   iron19