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

   Á¶È¸ 3342   Ãßõ 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 1853/5686
2015-12   1509064   ¹é¸Þ°¡
2014-05   4972754   Á¤ÀºÁØ1
2020-10   6155   ÆæÅ»
2016-04   6154   ºí·ç¿µ»ó
2018-06   6154   ŵ°íÀ×
2017-04   6154   ±è°Ç¿ì
2017-11   6154   ¿ìÁÖ°í¾çÀÌ
2011-09   6154   ¿ì¾Ó»Ñ¾Ó
2016-08   6154   ±è°Ç¿ì
2005-07   6154   ±èµ¿È¯
2005-04   6154   À±¿µ¹è
2009-11   6154   ¶¥Äá²®µ¥±â
2011-12   6154   ±èÀå¿ì
2017-01   6154   song05
2012-08   6154   ÀÌÀç
2007-05   6154   ÇÑâ¼ö
2011-07   6154   Larry
2018-01   6154   º°¿¡¼­¿Â±×³à
2008-04   6153   ¾ÈÇü°ï
2004-12   6153   ±è½ÂÈñ
2018-02   6153   ÁøÈ¥
2013-03   6153   ºý½Ã´Ù