ÀÚ¹Ù °´Ã¼¿Í ¸Þ¼Òµå ±âº»ÀûÀΰŠÁú¹®ÇÕ´Ï´Ù.

   Á¶È¸ 3331   Ãßõ 0    

https://wikidocs.net/225 (977)

 public class Test {

    int a;  // 객체변수 a

    public void vartest(Test test) {
        test.a++;
    }

    public static void main(String[] args) {
        Test myTest = new Test();
        myTest.a = 1;
        myTest.vartest(myTest);
        System.out.println(myTest.a);
    }
}


질문1. myTest.a = 1; 은 객체변수에 1을 대입하고 끝나는 건가요?

질문2. myTest.vartest(myTest); 에서 메소드를 호출->메소드에서 Test클래스 참조-> 메소드 내에서 a값은 2로 상승된값이 myTest로 2가 되는건가요?

       객체.메소드명() 괄호안에는 결과값의 형태로 받겠다는건가요?

질문3. 마지막 출력문에서 괄호를 (myTest)라고 하니 에러는 나오지 않았습니다. 하지만 'Test@2a139a55'라는 결과물이 나왔습니다.

println에서 myTest.a와 그냥 myTest로 출력했을때 에러는 나지 않았지만 다른 결과물이 나왔습니다. 왜인가요?

ps. 자바를 배우고 있는 초보자 입니다. 지금까지 공부하면서 오늘 약간 막히는 부분이 생기네요. 이전에도 도움을 많이 받았는데 처음 배우는것이라 프로그램이 어떻게 돌아가는지 자세하게 알고자 질문을 드렸습니다.

ªÀº±Û Àϼö·Ï ½ÅÁßÇÏ°Ô.
¾È±Ô¹Î 2017-08
Àú´Â Java °³¹ßÀÚ·Î ÀÏÇÏ°í ÀÖ½À´Ï´Ù¸¸, Á¦°¡ µå¸®´Â ÀÇ°ßÀÌ 100% ¸Â´Â ÀÇ°ßÀº ¾Æ´Ò ¼ö ÀÖ´Ù´Â Á¡ ¿°µÎ¿¡ µÎ½Ã°í Âü°í¸¸ ÇØÁֽʽÿÀ.

1,2,3 Áú¹®¿¡ ´äº¯À» µå¸®±âÀü¿¡.. ÇÑ°¡Áö ¸»¾¸µå¸®ÀÚ¸é,
ÀϹÝÀûÀ¸·Î main ÇÔ¼ö°¡ Æ÷ÇÔµÈ Å¬·¡½º ´Â ÇØ´ç ÇÁ·Î±×·¥¿¡¼­ ´Ü 1°³ ÀÎ °ÍÀÌ ÀϹÝÀûÀ̸ç, ¿ëµµ´Â ´Ù¸¥ Ŭ·¡½ºµéÀ» ½ÇÇàÇÏ´Â ½ÃÀÛÁ¡À¸·Î »ç¿ëÇÕ´Ï´Ù.
ÇöÀç ÀÛ¼ºÇϽŠ°ÍÀ» º¸¸é, main ÇÔ¼ö°¡ Æ÷ÇÔµÈ Test Ŭ·¡½º¸¦ ´Ù½Ã main ÇÔ¼ö¿¡¼­ »ý¼ºÇÏ°í Àִµ¥, ÀÌ´Â ¿ÀÈ÷·Á ´õ È¥¶õ½º·¯¿ï ¼ö ÀÖÀ¸¸ç, ¹ø°Å·Î¿ì½Ã´õ¶óµµ, Test Ŭ·¡½º ¿Ü¿¡ TestCalc µîÀÇ Å¬·¡½º¿¡¼­ ¸Þ¼Òµå¸¦ ´Ù½Ã ÀÛ¼ºÇϽŠµÚ¿¡ Test Ŭ·¡½ºÀÇ main() ÇÔ¼ö¿¡¼­ TestCalc testCalc = new TestCalc(); Çϼż­ TestCalc ÀÇ ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ¹æ½ÄÀ» ÅÃÇϽô °ÍÀ» Ãßõµå¸³´Ï´Ù. ( Test Ŭ·¡½ºµµ TestMain µîÀ¸·Î º¯°æÇϽøé ÄÚµå °¡µ¶¼ºÀÌ ÁÁ½À´Ï´Ù ^^)

¹øÈ£º°·Î ´äº¯µå¸³´Ï´Ù.

1. ¸Â½À´Ï´Ù. myTest °´Ã¼ÀÇ int Çü º¯¼ö a¿¡ 1À» ÀÔ·ÂÇÕ´Ï´Ù.
2. ÇÔ¼ö¿¡¼­ myTest °´Ã¼¸¦ ÂüÁ¶ÇÏ´Â °ÍÀº ¸Â½À´Ï´Ù¸¸, 2¶ó´Â °ªÀº myTest °´Ã¼ÀÇ a º¯¼öÀÇ °ªÀÌ°í, myTest °´Ã¼ ÀÚüÀÇ °ªÀº ¾Æ´Õ´Ï´Ù.
Test ¶ó´Â Ŭ·¡½ºÀÇ myTest ¶ó´Â °´Ã¼ ³»¿¡ a °ªÀÌ ÀÖ´Â °ÍÀÌ°í, myTest ¶ó´Â °´Ã¼´Â º¯¼ö 'a'¸¦ °¡Áø ÁýÇÕüÀÎ °ÍÀÌÁö a ÀÚü°¡ ¾Æ´Õ´Ï´Ù.
¸¸¾à, Test Ŭ·¡½º¿¡ Ãß°¡·Î b ¶ó´Â ´Ù¸¥ º¯¼ö¸¦ ÀÛ¼ºÇؼ­ a,b ¶ó´Â 2°³ÀÇ º¯¼ö°¡ ÀÖ´Ù°í °¡Á¤Çϸé, myTest °´Ã¼´Â a, b µÎ °¡Áö º¯¼ö¸¦ µ¿½Ã¿¡ °¡Áö°í ÀÖ´Â °´Ã¼°¡ µÉ °ÍÀÔ´Ï´Ù.
 
myTest.vartest(myTest); ¶ó´Â ÇÑÁÙÀ» ³»ºÎÀÇ ¸Þ¼Òµå±îÁö ÇÔ²² Àǹ̸¦ Ç®¾îº¸¸é, ¾Æ·¡¿Í °°½À´Ï´Ù.
"myTest °´Ã¼ÀÇ a º¯¼öÀÇ °ªÀ» 1 Áõ°¡½ÃÄѶó'

±×¸®°í, () °ýÈ£ ¾ÈÀÇ Test test ¶ó´Â Àǹ̴Â, ' ÇØ´ç ¸Þ¼Òµå¿¡¼­ ÂüÁ¶ÇÒ °ªÀ» Test Ŭ·¡½ºÀÇ test¶ó´Â º¯¼ö¸íÀ¸·Î ¸í¸íÇÏ°Ú´Ù' ·Î ÀÌÇØÇÏ½Ã¸é µË´Ï´Ù.

3. 2ÀÇ ´äº¯°ú ÀÌÀ¯°¡ °°½À´Ï´Ù. println( myTest ) ¶ó°í Ãâ·ÂÇϸé myTest ¶ó´Â °´Ã¼ ÀÚüÀÇ 'toString()' À̶ó´Â ¸Þ¼Òµå¸¦ Ãâ·ÂÇÏ°Ô µË´Ï´Ù.
Ãâ·ÂÇüŸ¦ º¸¾ÒÀ»¶§, ³»ºÎÀûÀ¸·Î Ŭ·¡½ºÀ̸§+¸Þ¸ð¸®ÁÖ¼Ò ·Î Ãâ·ÂÇϵµ·Ï toString() ¸Þ¼Òµå°¡ ÀÛ¼ºµÇ¾îÁ® ÀÖÀ» °Ì´Ï´Ù.
(ÀÚ¹ÙÀÇ ¸ðµç °´Ã¼´Â toString() ¸Þ¼Òµå¸¦ °¡Áö°í ÀÖ½À´Ï´Ù.)

Ãß°¡ : ¸¸¾à  println( myTest )  ÇßÀ» ¶§ º¯¼ö aÀÇ °ªÀ» Ãâ·ÂÇÏ°í ½ÍÀ¸½Ã´Ù¸é, '¿À¹ö¶óÀ̵ù' À» »ç¿ëÇÏ½Ã¸é µË´Ï´Ù. ( ¾Æ·¡ÂüÁ¶)
Àǹ̴Â, 'Test ¶ó´Â Ŭ·¡½ºÀÇ °¢ °´Ã¼ÀÇ °ªÀ» String À¸·Î ³ªÅ¸³¾¶§ »ç¿ëÇÏ´Â toString() ÇÔ¼ö¸¦ 'ÀçÁ¤ÀÇ' ÇÏ¿´´Âµ¥ À̶§ a¶ó´Â int Çü ¸â¹öº¯¼ö¸¦ String °ªÀ¸·Î Ãâ·ÂÇ϶ó' ¶ó´Â ¶æ ÀÔ´Ï´Ù.

@Override
    public String toString() {
    return Integer.toString(a);
    }

¸»·Î ¼³¸íÇÏ·Á´Ï±î µÇ°Ô º¹ÀâÇѵ¥.. µÇµµ·Ï ¸¹Àº Ŭ·¡½º¸¦ ¸¸µé¾îº¸½Ã°í, main() ÇÔ¼ö ¿¡¼­ Çϳª¾¿ ½ÇÇàÇغ¸½Ã¸é ÇнÀÈ¿°ú°¡ ÀÖÀ¸½Ç °Ì´Ï´Ù.
±×¸®°í ½ÃÁßÀÇ JAVA ±âÃÊ ¼­ÀûÁß °¡Àå ½±´Ù´Â Ã¥À» Çϳª ±¸¸ÅÇϼż­ ÇØ´ç Äڵ带 Á÷Á¢ ÄÚµù-ÄÄÆÄÀÏ Çغ¸½Ã¸é¼­ Ã¥ÀÇ ¼³¸í°ú ÇÔ²² ¿ø¸®¸¦ ±íÀÌ ÀÌÇØÇϽô °ÍÀÌ °¡Àå ºü¸¥ ÇнÀ¹ýÀ̶ó°í »ý°¢ÇÕ´Ï´Ù.  È­ÀÌÆÃ~ ÀÔ´Ï´Ù ^^
ÀÌÁ¾±Ù 2017-08
°¨»çÇÕ´Ï´Ù.


QnA
Á¦¸ñPage 1207/5683
2015-12   1491372   ¹é¸Þ°¡
2014-05   4954865   Á¤ÀºÁØ1
2019-07   3322   PCMaster
2017-06   3322   ÄĹÚ
2016-04   3322   DoWoo
2016-02   3322   AKMU
2018-09   3322   °æ¹ÚÇѽùÎ
2020-10   3322   ÀüÁø
2020-06   3322   ÁÒ½´¾Æ
2016-07   3322   Á¤ÀçÈ£02
2015-02   3322   Ark
2019-01   3322   ÃÊÄÚ¸À¸¸µÎ
2020-06   3322   À̹®¿µ
2017-07   3322   ½É¹ÙÆ®
2016-01   3322   chotws
2014-03   3323   ¹Ú¼º¸¸
2019-01   3323   ±Ç¿ÀÁØ
2016-08   3323   perls
2019-05   3323   ÀÌõdz
2017-04   3323   ³ªÆÄÀÌ°­½ÂÈÆ
2021-08   3323   ½Å¿ì¼·
2016-04   3323   Á¦Å¸