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

   Á¶È¸ 3374   Ãßõ 0    

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

 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 1204/5689
2014-05   5010948   Á¤ÀºÁØ1
2015-12   1546611   ¹é¸Þ°¡
2014-03   3373   À©µµ¿ì10
2023-08   3373   °æ¹ÚÇѽùÎ
2018-06   3373   °¡ºü·Î±¸³ª
2018-07   3373   Äðº¸ÀÌ
2017-10   3373   ¹«¾Æ
2021-08   3373   Ƽ¸ð´Â±Í¿©¿ö
2014-11   3373   NGC
2015-07   3373   Â÷³ÝÄÄÇ»ÅÍ
2017-09   3373   PCPCMAN
2015-07   3373   ¸ÓÀç±ä
2014-04   3374   ¸¶ÀÌ·¯ºê
2015-07   3374   voworks
2019-01   3374   ¹Ì¼ö¸Ç
2016-09   3374   ÀÎÃʸ®
2017-09   3374   Å«°õÇϿ콺
2018-08   3374   ¶Ñ¶ì²ô
2018-10   3374   Á¶Áö¿¬
2017-05   3374   epowergate
2015-07   3374   izegtob
2018-11   3374   ±èÁöö