9-3.¸â¹ö ÃʱâÈ­

9-3-1.¸í½ÃÀû ÃʱâÈ­

Çʵ带 ÃʱâÈ­ÇÏ´Â °ø½ÄÀûÀÎ ¹æ¹ýÀº »ý¼ºÀÚÀÌÁö¸¸ ±× ¿Ü¿¡µµ ´õ °£ÆíÇÑ ¹æ¹ýÀÌ ÀÖ´Ù. ±âº»ÇüÀº Áö¿ªº¯¼ö¸¦ ¼±¾ðÇϵíÀÌ = ¿¬»êÀÚ¿Í ÇÔ²² ÃʱⰪÀ» ¹Ù·Î ÁöÁ¤ÇÏ¸é µÈ´Ù. ¼±¾ð¹®¿¡ ÃʱⰪÀ» ÁöÁ¤ÇÏ´Â ¹æ¹ýÀ» ¸í½ÃÀû ÃʱâÈ­(explicit initialization)¶ó°í ÇÑ´Ù.

 

expinit

½ÇÇà°á°ú

class Time {

     boolean am = true;

     int hour = 12;

     int minute = 0;

     int second = 0;

    

     Time() { }

    

     Time(boolean am, int hour, int minute, int secound) {

          this.am = am;

          this.hour = hour;

          this.minute = minute;

          this.second = secound;

     }

    

     void whatTime() {

          System.out.print(am ? "¿ÀÀü ":"¿ÀÈÄ ");

          System.out.println(hour + "½Ã " + minute + "ºÐ " + second + "ÃÊ");

     }

}

 

class JavaTest {

     public static void main(String[] args) {

          Time midnight = new Time();

          midnight.whatTime();

         

          Time now = new Time(false, 3, 23, 0);

          now.whatTime();

     }

}

¿ÀÀü 12½Ã 0ºÐ 0ÃÊ

¿ÀÈÄ 3½Ã 23ºÐ 0ÃÊ

 

ÇÊµå ¼±¾ð¹®¿¡¼­ °¢ ½Ã°£¿ä¼Ò¿¡ ÃʱⰪÀ» ÁöÁ¤ÇÏ¿© ¿ÀÀü 12½Ã Á¤°¢ ÀÚÁ¤À¸·Î ÃʱâÈ­Çß´Ù. °´Ã¼¸¦ Èü¿¡ ÇÒ´çÇÒ ¶§ ¸í½ÃÀû ÃʱⰪÀÌ Çʵ忡 ´ëÀԵȴÙ. µðÆúÆ® »ý¼ºÀÚ´Â ¾Æ¹«°Íµµ ÇÏÁö ¾Ê¾Æ ÃʱⰪÀ» À¯ÁöÇϸç Àμö¸¦ ¹Þ´Â »ý¼ºÀÚ´Â Àü´Þ¹ÞÀº °ªÀ¸·Î ¸í½ÃÀû ÃʱⰪÀ» º¯°æÇÑ´Ù.

¿¹Á¦¿¡¼­ µÎ °³ÀÇ °´Ã¼¸¦ »ý¼ºÇÑ´Ù. midnight °´Ã¼´Â µðÆúÆ® »ý¼ºÀÚ¸¦ È£ÃâÇÏ¿© ÀÚÁ¤À¸·Î ÃʱâÈ­ ÇÏ°í now °´Ã¼´Â 4°³ÀÇ ½Ã°£ ¿ä¼Ò¸¦ ¸ðµÎ Àü´ÞÇÏ¿© ¿øÇÏ´Â °ªÀ¸·Î ÃʱâÈ­Çß´Ù. ¸í½ÃÀû ÃʱⰪÀº °´Ã¼°¡ Èü¿¡ ÇÒ´çµÉ ¶§ÀÇ ÃʱⰪÀÏ »Ó ¾ðÁ¦µçÁö ´Ù¸¥ °ªÀ¸·Î ¹Ù²ð ¼ö ÀÖ´Ù.

ÇʵåÀÇ °³¼ö°¡ ¼ö½Ê°³³ª µÇ¸é »ý¼ºÀÚ¿¡¼­ ÀÏÀÏÀÌ ÃʱâÈ­Çϱ⠹ø°Å·Ó´Ù. °´Ã¼¸¶´Ù Ưº°È÷ ´Þ¶óÁú ÇÊ¿ä°¡ ¾ø´Â Çʵå´Â ¹«³­ÇÑ °ªÀ¸·Î ¸í½ÃÀû ÃʱâÈ­ÇÏ´Â °ÍÀÌ Æí¸®ÇÏ´Ù. ¼±¾ð¹®¿¡ ÀÏ´Ü ÃʱâÈ­ÇØ ³õ°í ÇÊ¿äÇÑ ºÎºÐ¸¸ ´Ù¸¥ »ý¼ºÀÚ³ª ¸Þ¼­µå·Î ´Ù½Ã ÃʱâÈ­ÇÑ´Ù.

9-3-2.ÃʱâÈ­ ºí·Ï

¸í½ÃÀû ÃʱâÈ­´Â ´ëÀÔÀÇ ÇüŸ¦ ÃëÇϹǷΠ¿ìº¯Àº ÁÖ·Î ¸®ÅÍ·²ÀÌ´Ù. ÄÄÆÄÀÏÁß¿¡ °ªÀ» °áÁ¤ÇÒ ¼ö Àִ ǥÇö½Ä¸¸ ¿Ã ¼ö ÀÖÀ¸¸ç ¹®ÀåÀ» ½ÇÇàÇÒ ¼ö´Â ¾ø´Ù. º¹ÀâÇÑ ¼ö½ÄÀ̳ª ¸Þ¼­µå È£Ãâ¹®Àº ºÒ°¡´ÉÇϸç Á¶°Ç¹®À̳ª ·çÇÁ°°Àº °Íµµ »ç¿ëÇÒ ¼ö ¾ø´Ù.

ÃʱⰪÀ» °è»êÇØ¾ß ÇÑ´Ù¸é À̶§´Â ÃʱâÈ­ ºí·ÏÀ» »ç¿ëÇÑ´Ù. ÃʱâÈ­ ºí·ÏÀº Ŭ·¡½º ¼±¾ð¹®¿¡ { } ºí·ÏÀ¸·Î ÀÛ¼ºÇÏ¸ç º°µµÀÇ À̸§Àº ¾ø´Ù. °´Ã¼¸¦ ÇÒ´çÇÑ Á÷ÈÄ¿¡ ÀÌ ºí·ÏÀÌ È£ÃâµÇ¾î Çʵ带 ÃʱâÈ­ÇÑ´Ù. Ŭ·¡½º ³»ÀÇ À§Ä¡´Â ¾Æ¹«·¡µµ »ó°ü¾øÁö¸¸ Á¦ÀÏ ¸ÕÀú È£ÃâµÈ´Ù´Â ¸é¿¡¼­ ´Ù¸¥ ¸Þ¼­µåº¸´Ù ´õ À§ÂÊ¿¡ µÎ´Â °ÍÀÌ º¸±â ÁÁ´Ù.

 

initblock

½ÇÇà°á°ú

class Time {

     boolean am;

     int hour;

     int minute;

     int second;

    

     // ÃʱâÈ­ ºí·Ï

     {

          java.time.LocalTime now = java.time.LocalTime.now();

          hour = now.getHour();

          if (hour >= 12) {

              hour -= 12;

              am = false;

          } else {

              am = true;

          }

          minute = now.getMinute();

          second = now.getSecond();

     }

    

     void whatTime() {

          System.out.print(am ? "¿ÀÀü ":"¿ÀÈÄ ");

          System.out.println(hour + "½Ã " + minute + "ºÐ " + second + "ÃÊ");

     }

}

 

class JavaTest {

     public static void main(String[] args) {

          Time now = new Time();

          now.whatTime();

     }

}

¿ÀÈÄ 6½Ã 8ºÐ 48ÃÊ

 

ÃʱâÈ­ ºí·Ï¿¡¼­ LocalTime Ŭ·¡½º¸¦ »ç¿ëÇÏ¿© ÇöÀç ½Ã°£À» Á¶»çÇÑ´Ù. ½Ã°£ °´Ã¼´Â ÀÚÁ¤º¸´Ù ÇöÀç ½Ã°£ÀÌ ´õ ¹«³­ÇÏ°í ½Ç¿ëÀûÀÌ´Ù. ½ÇÇà ½ÃÁ¡ÀÇ ½Ã°£À» Á¶»çÇÏ°í ½Ã°£°ª¿¡ µû¶ó ¿ÀÀüÀÎÁö ¿ÀÈÄÀÎÁö ÆǺ°ÇØ¾ß ÇϹǷΠ´Ü¼øÇÑ ´ëÀÔÀ¸·Î´Â ¾î·Æ°í Äڵ尡 ÇÊ¿äÇÏ´Ù. ÀÌ·± ÃʱâÈ­ Äڵ带 ÀÛ¼ºÇÏ´Â °÷ÀÌ ÃʱâÈ­ ºí·ÏÀÌ´Ù.

ÃʱâÈ­ ºí·ÏÀº °´Ã¼ ÇÒ´ç Á÷ÈÄ¿¡ È£ÃâµÇ¸ç »ý¼ºÀÚ¿¡¼­ ´Ù¸¥ ÃʱⰪÀ¸·Î º¯°æÇÒ ¼ö ÀÖ´Ù. ¸ðµç »ý¼ºÀÚ¿¡¼­ °øÀ¯ÇØ¾ß ÇÒ Äڵ带 ÃʱâÈ­ ºí·Ï¿¡ ÀÛ¼ºÇØ µÎ¸é ÄÚµåÀÇ Áߺ¹À» ¹æÁöÇÒ ¼ö ÀÖ´Ù. º¹ÀâÇÑ °´Ã¼ ÃʱâÈ­³ª ´ë±Ô¸ð ¹è¿­¿¡ Á¤º¸¸¦ ¹Ì¸® Á¶»çÇÏ´Â °æ¿ì ÃʱâÈ­ ºí·ÏÀÌ ½Ç¿ëÀûÀÌ´Ù. ÃʱâÈ­ ºí·ÏÀ» ¿©·¯ °³ ¼±¾ðÇÒ ¼ö Àִµ¥ ÀÌ °æ¿ì À§¿¡¼­ºÎÅÍ ¼ø¼­´ë·Î ½ÇÇàµÈ´Ù.

9-3-3.ÃʱâÈ­ ¼ø¼­

ÃʱâÈ­ ¹æ¹ýÀÌ ÀÌ·¸°Ô ´Ù¾çÇÑ ÀÌÀ¯´Â °¢ ´Ü°è¸¶´Ù °¡´ÉÇÑ µ¿ÀÛÀÇ ÇÑ°è¿Í ÆíÀǼºÀÌ ´Ù¸£±â ¶§¹®ÀÌ´Ù.

 

l  ¸í½ÃÀû ÃʱâÈ­ : ´ëÀÔ Çü½ÄÀÌ¶ó °£ÆíÇϳª ±âº»Çü¸¸ ÃʱâÈ­ÇÒ ¼ö ÀÖ´Ù.

l  ÃʱâÈ­ ºí·Ï : º¹ÀâÇÑ ÃʱâÈ­µµ °¡´ÉÇÏÁö¸¸ °´Ã¼º°·Î ´Ù¸£°Ô ÃʱâÈ­ÇÒ ¼ö ¾ø´Ù.

l  »ý¼ºÀÚ : Àμö¸¦ Àü´Þ¹Þ¾Æ °´Ã¼º° ÃʱâÈ­°¡ °¡´ÉÇÏ´Ù.

 

ÃʱâÈ­ÀÇ º¹Àâµµ¿¡ µû¶ó °¡Àå °£ÆíÇÑ ¹æ¹ýÀ» ¼±ÅÃÇÑ´Ù. ÃʱâÈ­ ¹æ¹ýÀÌ ¸¹´Ù º¸´Ï ¿©·¯ °³ÀÇ ÃʱâÈ­ Äڵ尡 µ¿½Ã¿¡ Á¸ÀçÇÒ ¼ö Àִµ¥ ÀÌ °æ¿ì ¼ø¼­°¡ Á¤ÇØÁ® ÀÖ´Ù.

ÄÄÆÄÀÏ·¯°¡ Á¤ÀÇÇÑ ±âº»°ªÀÌ °¡Àå ¸ÕÀú Àû¿ëµÇ°í ¸í½ÃÀû ÃʱâÈ­, ÃʱâÈ­ ºí·Ï, »ý¼ºÀÚ ¼øÀ¸·Î È£ÃâµÇ¸é¼­ ÃʱâÈ­°¡ ÁøÇàµÈ´Ù. ¿¹Á¦¸¦ ¸¸µé¾î Å×½ºÆ®ÇØ º¸ÀÚ.

 

initorder

½ÇÇà°á°ú

class InitTest {

     int field = 1;     // ¸í½ÃÀû ÃʱâÈ­

    

     {

          field = 2;     // ÃʱâÈ­ ºí·Ï

     }

    

     InitTest() { 

          field = 3;     // »ý¼ºÀÚ

     }

}

 

class JavaTest {

     public static void main(String[] args) {

          InitTest init = new InitTest();

          System.out.print(init.field);

     }

}

3

 

Á¤¼öÇüÀÇ field¸¦ ¼±¾ðÇÏ°í ¼¼ ±ºµ¥¼­ ÀÌ Çʵ带 ÃʱâÈ­ÇÏ¿´´Ù. ÀÌ °æ¿ì °¡Àå ³ªÁß¿¡ ½ÇÇàµÇ´Â »ý¼ºÀÚÀÇ ÃʱⰪÀÌ ÃÖÈÄ·Î Àû¿ëµÇ¸ç °´Ã¼ »ý¼º ÈÄ field°ªÀ» Âï¾î º¸¸é 3À¸·Î Ãâ·ÂµÈ´Ù. »ý¼ºÀÚ¸¦ ÁÖ¼® ó¸®Çϸé field´Â ¾Õ ¼ø¼­ÀÎ ÃʱâÈ­ ºí·Ï¿¡ ÀÇÇØ 2°¡ µÇ¸ç ÃʱâÈ­ ºí·Ïµµ ÁÖ¼® ó¸®ÇÏ¸é ¸í½ÃÀûÀ¸·Î ÃʱâÈ­ÇÑ 1ÀÌ µÈ´Ù. ¸¸¾à ¸í½ÃÀû ÃʱⰪµµ ÁÖ¼® ó¸®ÇØ ¹ö¸®°í Çʵ常 ¼±¾ðÇÏ¸é ¾î¶»°Ô µÉ±î?

 

int field;

 

ÀÌ·¸°Ô µÇ¸é ÄÄÆÄÀÏ·¯ÀÇ ±âº»°ªÀ¸·Î ÃʱâÈ­µÇ´Âµ¥ ¼öÄ¡ÇüÀº 0, ¹®ÀÚ¿­Àº "", °´Ã¼´Â null, ÁøÀ§ÇüÀº false°¡ µÈ´Ù. ´ë°³ÀÇ °æ¿ì 0Àº Àǹ̾ø´Â °ªÀ̹ǷΠ¾î´À ´Ü°è¿¡¼­°Ç ¿øÇÏ´Â °ªÀ¸·Î ÃʱâÈ­ÇÏ´Â °ÍÀÌ º¸ÅëÀÌ´Ù.

±Ã±ØÀÇ ÃʱâÈ­ ¹æ¹ýÀº °´Ã¼º°·Î ¸¶À½´ë·Î ÃʱâÈ­ÇÒ ¼ö ÀÖ´Â »ý¼ºÀÚÀÌ´Ù. Äڵ带 ÀÛ¼ºÇØ¾ß ÇÏ´Ï ¹ø°Å·ÓÁö¸¸ À¯¿¬¼ºÀº ³ô´Ù. ¸ðµç °´Ã¼¿¡ °øÅëÀûÀÎ °ªÀ̳ª ´Ü¼øÇÑ ¸®ÅÍ·²·Î ÃʱâÈ­ÇÑ´Ù¸é ¾Õ ¼ø¼­ÀÇ ´õ °£ÆíÇÑ ¹æ¹ýÀ» ¼±ÅÃÇÏ´Â °ÍÀÌ Æí¸®ÇÏ´Ù.

¿¬½À ¹®Á¦

1. Ŭ·¡½º¿¡ ´ëÇÑ ¼³¸íÀ¸·Î À߸øµÈ °ÍÀº?

¨ç Å°¿öµå class·Î ¼±¾ðÇÑ´Ù.

¨è ½Ç¼¼°èÀÇ »ç¹°À» Ç¥ÇöÇÑ´Ù.

¨é ù ÀÚ¸¦ ´ë¹®ÀڷΠǥ±âÇÏ´Â °ÍÀÌ °ü·ÊÀÌ´Ù.

¨ê ´Ù¸¥ ŸÀÔÀÇ º¯¼ö ÁýÇÕÀÌ¸ç µ¿ÀÛÀº Ç¥ÇöÇÒ ¼ö ¾ø´Ù.

 

2. Ŭ·¡½º¿¡ ¼ÓÇÏ´Â º¯¼ö¸¦ ĪÇÏ´Â ¿ë¾î°¡ ¾Æ´Ñ °ÍÀº?

¨ç ÇÊµå ¨è ¼Ó¼º ¨é ÇàÀ§ ¨ê »óÅÂ

 

3. Áö¿ªº¯¼ö¿Í ºñ±³ÇÑ ÇʵåÀÇ Æ¯¼ºÀÌ ¾Æ´Ñ °ÍÀº?

¨ç °´Ã¼°¡ Á¸ÀçÇÏ´Â µ¿¾È °ªÀ» À¯ÁöÇÑ´Ù.

¨è º°µµÀÇ Ãʱâ½ÄÀÌ ¾øÀ¸¸é ¾²·¹±â°ªÀ» °¡Áø´Ù.

¨é ¿ÜºÎ¿¡ ´ëÇØ ¼û±æ ¼ö ÀÖ´Ù.

¨ê ¸Þ¼­µå°¡ ¾Æ´Ñ Ŭ·¡½º¿¡ ¼Ò¼ÓµÈ´Ù.

 

4. Ŭ·¡½º¸¦ ¸ÕÀú ¼±¾ðÇÑ ÈÄ °´Ã¼¸¦ »ý¼ºÇÏ´Â ÀÌÀ¯°¡ ¾Æ´Ñ °ÍÀº?

¨ç »ó¼Ó, ´ÙÇü¼ºÀ» ±¸ÇöÇϱâ À§ÇØ

¨è °°Àº Á¾·ùÀÇ °´Ã¼¶ó´Â °ÍÀ» È®½ÇÈ÷ Çϱâ À§ÇØ

¨é ´Ù¼öÀÇ °´Ã¼¸¦ Æí¸®ÇÏ°Ô »ý¼ºÇϱâ À§ÇØ

¨ê ŸÀÔÀÌ ´Ù¸¥ º¯¼ö¸¦ Æ÷ÇÔÇϱâ À§ÇØ

 

5. »ý¼ºÀÚÀÇ Æ¯Â¡ÀÌ ¾Æ´Ñ °ÍÀº?

¨ç °´Ã¼¸¦ ¸¸µç´Ù.

¨è Ŭ·¡½º¿Í À̸§ÀÌ °°´Ù.

¨é ¸®ÅÏ°ªÀÌ ¾ø´Ù.

¨ê °´Ã¼ »ý¼º ÈÄ Á÷Á¢ È£ÃâÇÒ ¼ö´Â ¾ø´Ù.

 

6. this¿¡ ´ëÇÑ ¼³¸íÀ¸·Î ¿ÇÁö ¾ÊÀº °ÍÀº?

¨ç °´Ã¼ÀÇ ¼Ò¼Ó Ŭ·¡½º¸¦ ¹àÈù´Ù.

¨è °´Ã¼ ÀÚ½ÅÀÇ ¸â¹ö¸¦ ĪÇÒ ¶§ »ç¿ëÇÑ´Ù.

¨é »ý¼ºÀÚ¿¡¼­ ´Ù¸¥ »ý¼ºÀÚ¸¦ È£ÃâÇÒ ¶§ »ç¿ëÇÑ´Ù.

¨ê ¸Þ¼­µå³»¿¡¼­ È£Ãâ °´Ã¼¸¦ ÀǹÌÇÑ´Ù.

 

7. µðÆúÆ® »ý¼ºÀÚ¿¡ ´ëÇÑ Á¤ÀÇ·Î ¿ÇÀº °ÍÀº?

¨ç ¸ðµç ¸â¹ö¸¦ ÃʱâÈ­ÇÏ´Â »ý¼ºÀÚ

¨è Àμö°¡ ¾ø´Â »ý¼ºÀÚ

¨é ¸ðµç °´Ã¼¿¡ ´ëÇØ ÀÚµ¿À¸·Î È£ÃâµÇ´Â »ý¼ºÀÚ

¨ê ÄÄÆÄÀÏ·¯°¡ Ç×»ó ¸¸µé¾î ÁÖ´Â »ý¼ºÀÚ

 

8. ÃʱâÈ­ ºí·Ï¿¡ ´ëÇÑ ¼³¸íÀ¸·Î ¿ÇÀº °ÍÀº?

¨ç ¸â¹ö¿¡ ´ëÇÑ ´Ü¼øÇÑ ´ëÀÔ¸¸ °¡´ÉÇÏ´Ù.

¨è »ý¼ºÀÚ È£Ãâ ÈÄ¿¡ ÀÚµ¿À¸·Î ½ÇÇàµÈ´Ù.

¨é °´Ã¼º°·Î ´Ù¸£°Ô ÃʱâÈ­ÇÒ ¼ö ÀÖ´Ù.

¨ê ¿¬»ê¹®À̳ª ¸Þ¼­µå È£Ãâ µîÀÇ º¹ÀâÇÑ ÃʱâÈ­µµ °¡´ÉÇÏ´Ù.