9-2.»ý¼ºÀÚ

9-2-1.»ý¼ºÀÚ

new ¿¬»êÀÚ·Î °´Ã¼¸¦ »ý¼ºÇÏ¸é ¸ðµç Çʵå´Â 0, null, false µîÀÇ ±âº»°ªÀ¸·Î ÃʱâÈ­µÈ´Ù. Áö¿ªº¯¼ö¿Í ´Þ¸® ¾²·¹±â´Â Ä¡¿ö ÁÖÁö¸¸ ±×³É 0ÀÏ »Ó ÀǹÌÀÖ´Â °ªÀº ¾Æ´Ï´Ù. °´Ã¼ÀÇ ¿ëµµ¿¡ ¸Â°Ô ÃʱâÈ­Çϱâ À§ÇØ »ý¼º ÈÄ °¢ Çʵ忡 ¿øÇÏ´Â °ªÀ» ´ëÀÔÇÑ´Ù.

 

Car korando = new Car();

korando.name = "ÄÚ¶õµµC";

korando.gasoline = false;

 

Áö±Ý±îÁö ¸¸µç ¿¹Á¦´Â ÀÚµ¿Â÷ »ý¼º ÈÄ À̸§°ú ¿¬·á Á¾·ù¸¦ ÀÏÀÏÀÌ ´ëÀÔÇÏ¿© ÃʱâÈ­Çß´Ù. »ý¼º Á÷ÈÄ ¸Å¹ø ÃʱâÈ­Çϱâ´Â ¹ø°Å·Ó´Ù. ±×³ª¸¶ ÇÊµå °³¼ö°¡ ÀûÀ¸¸é ÇÒ¸¸ÇÏÁö¸¸ Çʵ尡 ´Ã¾î³ª°í ÃʱâÈ­ ¹æ¹ýÀÌ º¹ÀâÇØÁö¸é »ý¼º ÈÄ¿¡ ÇÒ ÀÏÀÌ ³Ê¹« ¸¹´Ù.

À¯È¿ÇÑ °´Ã¼¸¦ ¸¸µé·Á¸é ÃʱâÈ­´Â Çʼö °úÁ¤ÀÌ´Ù. ÀÌ¿Õ ÃʱâÈ­ÇҰŶó¸é »ý¼º ÈÄ µû·Î ´ëÀÔÇÏ´Â °Íº¸´Ù ¾Æ¿¹ »ý¼ºÇÒ ¶§ °´Ã¼ ½º½º·Î ÃʱâÈ­ÇÏ´Â °ÍÀÌ Æí¸®ÇÏ´Ù. À̶§´Â ÃʱâÈ­¸¦ Àü´ãÇÏ´Â »ý¼ºÀÚ¶ó´Â Ưº°ÇÑ ¸Þ¼­µå°¡ »ç¿ëµÇ´Âµ¥ ÀÏ¹Ý ¸Þ¼­µå¿¡ ºñÇØ ´ÙÀ½°ú °°Àº Â÷ÀÌÁ¡ÀÌ ÀÖ´Ù.

 

¨ç ¸Þ¼­µå À̸§ÀÌ Å¬·¡½º À̸§°ú °°´Ù.

¨è ÃʱâÈ­¸¸ ´ã´çÇϹǷΠ¸®ÅÏ°ªÀÌ ¾ø´Ù.

 

°´Ã¼ »ý¼º½Ã¿¡ ÀÚµ¿À¸·Î È£ÃâµÇ¹Ç·Î À̸§°ú ¸®ÅÏ¿¡ ´ëÇÑ ±ÔÄ¢Àº °­Á¦ÀûÀÌ¸ç ¹Ýµå½Ã ÁöÄÑ¾ß ÇÑ´Ù. Àμö´Â ¿øÇϴ´ë·Î ¹ÞÀ» ¼ö ÀÖÀ¸¸ç ÁÖ·Î ÇʵåÀÇ ÃʱⰪÀ» ¹Þ¾Æ ´ëÀÔÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù. ´ÙÀ½ ¿¹Á¦´Â ÀÚµ¿Â÷ °´Ã¼¸¦ ÃʱâÈ­ÇÏ´Â »ý¼ºÀÚ¸¦ Á¤ÀÇÇÑ´Ù.

 

constructor

½ÇÇà°á°ú

class Car {

     String name;

     boolean gasoline;

    

     Car(String aName, boolean aGasoline) {

          name = aName;

          gasoline = aGasoline;

     }

    

     void run() {

          if (gasoline) {

              System.out.println("ºÎ¸ª ºÎ¸ª");

          } else {

              System.out.println("´úÄÈ ´úÄÈ");

          }

     }

     void stop() {

          System.out.println("³¢ÀÌÀÍ");

     }

}

 

class JavaTest {

     public static void main(String[] args) {

          Car korando = new Car("ÄÚ¶õµµC", false);

         

          korando.run();

          korando.stop();

     }

}

´úÄÈ ´úÄÈ

³¢ÀÌÀÍ

 

Car Ŭ·¡½ºÀÇ »ý¼ºÀÚ´Â Car() À̸ç 2°³ÀÇ Àμö¸¦ ¹Þ¾Æ name°ú gasoline Çʵ忡 ´ëÀÔÇÑ´Ù. À̸§ÀÌ Car¶ó´Â °Í°ú ¸®ÅÏ Å¸ÀÔ ÁöÁ¤ÀÌ ¾Æ¿¹ ¾ø´Ù´Â Á¡À» À¯ÀÇÇÏÀÚ. new ¿¬»êÀÚ·Î °´Ã¼¸¦ »ý¼ºÇÒ ¶§ ¿øÇÏ´Â ÃʱⰪÀ» »ý¼ºÀÚ·Î Àü´ÞÇϸé Çʵ忡 ´ëÀԵȴÙ. ¼¼ ÁÙ·Î ÀÛ¼ºÇß´ø °´Ã¼ »ý¼º ¹× ÃʱâÈ­ ¹®ÀåÀÌ ÇÑ ÁٷΠª¾ÆÁø´Ù.

Çʵ忡 ´ëÀÔÇÒ °ªÀÌ »ý¼ºÀÚ È£Ãâ¹®ÀÇ Àμö ¸ñ·ÏÀ¸·Î ½ï µé¾î°¡ »ý¼º¹®ÀÌ °£°áÇØÁö°í ¾î¶»°Ô ÃʱâÈ­µÇ´ÂÁö ÆľÇÇϱ⵵ ½±´Ù. Çʵ忡 ÃʱⰪÀ» ´ëÀÔÇÏ´Â »ý¼ºÀÚ Äڵ带 Ŭ·¡½º¿¡ Æ÷ÇÔ½ÃÄÑ µÎ°í »ý¼º ½ÃÁ¡¿¡ Àμö¸¦ ¹Þ¾Æ ½ÇÇàÇÑ´Ù. »ý¼ºÀÚÀÇ Çü½Ä Àμö À̸§Àº Çʵå¿Í ´Þ¶ó¾ß ÇÑ´Ù. ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÏ¸é ¾ÈµÈ´Ù.

 

Car(String name, boolean gasoline) {

     name = name;

     gasoline = gasoline;

}

 

¸Þ¼­µå ³»¿¡¼­´Â Áö¿ªº¯¼ö°¡ ¿ì¼±À̾ Çʵå¿Í °°Àº À̸§ÀÇ Çü½Ä Àμö¸¦ »ç¿ëÇϸé Àμö¿¡ ÀÇÇØ Çʵ尡 °¡·ÁÁø´Ù. name = name ´ëÀÔ¹®Àº ÀÚ½ÅÀÇ °ªÀ» ½º½º·Î¿¡°Ô ´ëÀÔÇÏ´Â Àǹ̾ø´Â µ¿ÀÛÀ» ÇÏ¸ç °á±¹ Çʵå´Â ÃʱâÈ­µÇÁö ¾Ê´Â´Ù.

ÃʱâÈ­ ´ë»ó º¯¼ö¿Í ÃʱⰪÀÇ ¸íĪ Ãæµ¹ ¹®Á¦¶ó Áߺ¹¸¸ ÇØ°áÇÏ¸é µÈ´Ù. À§ ¿¹Á¦´Â Çü½Ä Àμö À̸§ ¾Õ¿¡ Àμö(Argument)¶ó´Â ÀǹÌÀÇ a Á¢µÎ¸¦ ºÙ¿´´Ù. Á¢µÎ ´ë½Å º»Ã¼¿¡¼­ ÇÊµå ¾Õ¿¡ this Å°¿öµå¸¦ ºÙÀÌ´Â ¹æ¹ýµµ ÀÖ´Ù.

 

Car(String name, boolean gasoline) {

     this.name = name;

     this.gasoline = gasoline;

}

 

Ŭ·¡½º ¾È¿¡¼­ this´Â °´Ã¼ ÀÚ½ÅÀ» ³ªÅ¸³»¸ç °´Ã¼ÀÇ ¸â¹ö¸¦ ĪÇÒ ¶§ »ç¿ëÇÑ´Ù. À§ Äڵ忡¼­ this.nameÀº Áö±Ý ÃʱâÈ­ÁßÀÎ °´Ã¼ÀÇ name Çʵ带 ÀǹÌÇÏ¸ç ±×³É nameÀº »ý¼ºÀÚÀÇ Çü½Ä ÀμöÀÌ´Ù. this.name = name Àº Àμö·Î ¹ÞÀº name °ªÀ» °´Ã¼ÀÇ name Çʵ忡 ´ëÀÔÇÑ´Ù´Â ¶æÀÌ´Ù.

¾î¶² ¹æ¹ýÀ» ¾²µç Àμö¿Í Çʵ带 ±¸ºÐÇÒ ¼ö¸¸ ÀÖÀ¸¸é µÈ´Ù. Á¢µÎ¸¦ ºÙÀÌ´Â ¹æ¹ýº¸´Ù this¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ Å¸ÀÌÇÎ ¼ö°¡ ¾à°£ ¸¹Áö¸¸ Á÷°üÀûÀÌ´Ù. this´Â ÀÌ ¿Ü¿¡µµ ¿©·¯ °¡Áö ¿ëµµ°¡ Àִµ¥ Â÷Â÷ ¿¬±¸ÇØ º¸ÀÚ. ´ÙÀ½ ¿¹Á¦´Â Time Ŭ·¡½ºÀÇ »ý¼ºÀÚ¸¦ Á¤ÀÇÇÑ´Ù.

 

timector

½ÇÇà°á°ú

class Time {

     boolean am;

     int hour;

     int minute;

     int second;

    

     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 now = new Time(true, 12, 34, 56);

          now.whatTime();

     }

}

¿ÀÀü 12½Ã 34ºÐ 56ÃÊ

 

TimeÀÇ »ý¼ºÀÚ´Â ½Ã°£ ¿ä¼Ò¸¦ ±¸¼ºÇÏ´Â 4°³ÀÇ Çʵ尪À» Àμö·Î ¹Þ¾Æ °¢ Çʵ忡 ´ëÀÔÇÑ´Ù. ´Ü ÇÑ ÁÙ·Î ½Ã°£ °´Ã¼¸¦ ÃʱâÈ­ÇÒ ¼ö ÀÖ¾î Æí¸®ÇÏ¸ç »ý¼º¹®À» º¸¸é ÃʱâÈ­µÈ ½Ã°£À» ¹Ù·Î ¾Ë ¼ö ÀÖ¾î Äڵ带 Àб⵵ ½±´Ù.

9-2-2.»ý¼ºÀÚ ¿À¹ö·Îµù

º¹ÀâÇÑ °´Ã¼´Â ÃʱâÈ­ÇÏ´Â ¹æ¹ýµµ ´Ù¾çÇÏ´Ù. »ý¼ºÀÚµµ ÀÏÁ¾ÀÇ ¸Þ¼­µå¿©¼­ ½Ã±×´Ïó°¡ ´Ù¸£¸é ¿©·¯ ¹ú·Î ¿À¹ö·Îµù °¡´ÉÇÏ´Ù. »ý¼ºÀÚ°¡ ¿©·¯ °³ ÀÖÀ¸¸é °´Ã¼ÀÇ ¿ëµµ³ª º¸À¯ÇÑ Á¤º¸¿¡ µû¶ó ¼±ÅÃÀûÀ¸·Î ÃʱâÈ­ÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ ¿¹Á¦´Â Time Ŭ·¡½ºÀÇ »ý¼ºÀÚ¸¦ ¿À¹ö·ÎµùÇÑ´Ù.

 

ctorover

½ÇÇà°á°ú

class Time {

     boolean am;

     int hour;

     int minute;

     int second;

    

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

          this.am = am;

          this.hour = hour;

          this.minute = minute;

          this.second = second;

     }

    

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

          this.am = am;

          this.hour = hour;

          this.minute = minute;

          this.second = 0;

     }

    

     Time(int hour24, int minute) {

          this.am = hour24 < 12;

          this.hour = hour24 % 12;

          this.minute = minute;

          this.second = 0;

     }

    

     void whatTime() {

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

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

     }

}

 

class JavaTest {

     public static void main(String[] args) {

          Time now = new Time(true, 12, 34);

          now.whatTime();

          Time today = new Time(18, 30);

          today.whatTime();

     }

}

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

¿ÀÈÄ 6½Ã 30ºÐ 0ÃÊ

 

TimeÀ̶ó´Â ¶È°°Àº À̸§À¸·Î ¼¼ °³ÀÇ »ý¼ºÀÚ¸¦ ¿À¹ö·ÎµùÇß´Ù. ÃʱâÈ­ ¹æ¹ý¿¡ µû¶ó ÇÊ¿äÇÑ ÀμöÀÇ °³¼ö³ª ŸÀÔÀÌ ´Ù¸£´Ù. ù ¹ø° »ý¼ºÀÚ´Â ¸ðµç Çʵ带 ´Ù ÃʱâÈ­ÇÏ´Â ¿Ïº®ÇÑ ¹öÀüÀÌ´Ù. 4°³ÀÇ Àμö·Î ¸ðµç Çʵ带 ¼¶¼¼ÇÏ°Ô ÃʱâÈ­ÇÏÁö¸¸ Àμö°¡ ¸¹¾Æ ¹ø°Å·Ó´Ù.

µÎ ¹ø° »ý¼ºÀÚ´Â ÃÊ´ÜÀ§´Â ¹«½ÃÇÏ°í ºÐ±îÁö¸¸ ´ëÀÔÇϸç ÃÊ´Â 0À¸·Î °¡Á¤ÇÑ´Ù. ½Ã°£°ª¿¡¼­ ÃÊ´Â ±×¸® Áß¿äÇÏÁö ¾Ê¾Æ »ý·«ÇÏ´Â °æ¿ì°¡ ¸¹´Ù. ÀÏ»ó »ýÈ°¿¡¼­µµ 12½Ã 40ºÐ¿¡ ¾à¼ÓÀ» Á¤ÇÏÁö 12½Ã 40ºÐ 26ÃÊ·Î ÇÏÁö´Â ¾Ê´Â´Ù. ±×·¡¼­ Àß ¾²Áöµµ ¾Ê´Â ÃÊ´Â Á¦¿ÜÇÏ°í 3°³ÀÇ Àμö¸¸ ¹Þ´Â´Ù.

¸¶Áö¸· »ý¼ºÀÚ´Â ¿ÀÀü/¿ÀÈĸ¦ º°µµÀÇ Àμö·Î Àü´Þ¹ÞÁö ¾Ê°í 24½Ã°£Á¦ÀÇ ½Ã°£°ªÀ¸·Î ÀÚµ¿ ÆǺ°ÇÑ´Ù. ½Ã°£°ªÀÌ 12º¸´Ù ÀÛÀ¸¸é ¿ÀÀüÀÌ°í 12 ÀÌ»óÀÌ¸é ¿ÀÈÄÀÌ¸ç ½Ã°£Àº 12·Î ³ª´« ³ª¸ÓÁö¸¦ ÃëÇÑ´Ù. ½Ã, ºÐ µÎ °³ÀÇ Àμö¸¸ Àü´ÞÇÏ¸é µÈ´Ù.

main¿¡¼­ 2°³ÀÇ ½Ã°£ °´Ã¼¸¦ °¢°¢ ´Ù¸¥ ¹æ¹ýÀ¸·Î ÃʱâÈ­ÇÏ¿© Ãâ·ÂÇߴµ¥ Á¤»óÀûÀÎ ½Ã°£°ªÀ¸·Î Àß Ãâ·ÂµÈ´Ù. 18½Ã 30ºÐÀÌ ¿ÀÈÄ 6½Ã 30ºÐÀ¸·Î Ç¥ÇöµÈ´Ù. »óȲ¿¡ µû¶ó ÃʱâÈ­ ¹æ¹ýÀ» ¼±ÅÃÇÒ ¼ö ÀÖ´Ù´Â ¸é¿¡¼­ Æí¸®ÇÏÁö¸¸ »ý¼ºÀÚ³¢¸® Áߺ¹µÇ´Â Äڵ尡 ¸¹´Ù.

µÎ °³ÀÇ »ý¼ºÀÚ´Â ÃÊ Çʵå ÃʱâÈ­ ¿©ºÎ¸¸ ´Ù¸¦ »Ó ¿ÀÀü/¿ÀÈÄ, ½Ã, ºÐÀÇ °ªÀ» ´ëÀÔÇÏ´Â Äڵ尡 ÀÏÄ¡ÇÑ´Ù. ÁúÀûÀ¸·Î ´Ù¸¥ ÃʱâÈ­°¡ ¾Æ´Ï¶ó ÀϺΠ»ý·«À̳ª ÀÚµ¿ °è»ê Á¤µµÀÇ Â÷ÀÌÀε¥ ÀÌ·² ¶§´Â »ý¼ºÀÚ³¢¸® È£ÃâÇÏ¿© Áߺ¹À» Á¦°ÅÇÑ´Ù. »ý¼ºÀÚ¿¡¼­ ´Ù¸¥ »ý¼ºÀÚ¸¦ È£ÃâÇÒ ¶§´Â this¸¦ »ç¿ëÇÑ´Ù.

 

ctorcall

½ÇÇà°á°ú

class Time {

     ....

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

          this(am, hour, minute, 0);

     }

    

     Time(int hour24, int minute) {

          this(hour24 < 12, hour24 % 12, minute);

     }

....

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

¿ÀÈÄ 6½Ã 30ºÐ 0ÃÊ

 

µÎ ¹ø° »ý¼ºÀڴ ù ¹ø° »ý¼ºÀÚ¸¦ È£ÃâÇ쵂 second Àμö ´ë½Å 0À» Àü´ÞÇÑ´Ù. ¼¼ ¹ø° »ý¼ºÀÚ´Â µÎ ¹ø° »ý¼ºÀÚ¸¦ È£ÃâÇ쵂 ½Ã°£À¸·ÎºÎÅÍ am°ªÀ» ÆǺ°ÇÏ°í ½Ã°£À» 12·Î ³ª´« ³ª¸ÓÁö·Î Á¤±ÔÈ­ÇÏ¿© Àü´ÞÇÑ´Ù. Àü´Þ¹ÞÀº Á¤º¸¸¦ °¡°øÇÏ¿© ´Ù¸¥ »ý¼ºÀÚ¸¦ È£ÃâÇÏ´Â °ÍÀÌ´Ù.

new Time(true, 12, 34) »ý¼º¹®¿¡ ÀÇÇØ µÎ ¹ø° »ý¼ºÀÚ°¡ È£ÃâµÇ¸ç ¿©±â¼­ ÃÊ °ªÀ» 0À¸·Î ÇÏ¿© ù ¹ø° »ý¼ºÀÚ¸¦ È£ÃâÇÑ´Ù. am, ½Ã, ºÐÀº ¿øÇϴ´ë·Î ÃʱâÈ­µÇ°í ÃÊ´Â 0À¸·Î ¸®¼ÂµÈ ½Ã°£ °´Ã¼°¡ »ý¼ºµÈ´Ù. new Time(18, 30) »ý¼º¹®Àº Àμö°¡ 2°³À̹ǷΠ¼¼ ¹ø° »ý¼ºÀÚ°¡ È£ÃâµÈ´Ù. ¿©±â¼­ »óÀ§ÀÇ »ý¼ºÀÚ¸¦ ´ÙÀ½ ¼ø¼­´ë·Î È£ÃâÇÑ´Ù.

Çʵ带 ÃʱâÈ­ÇÏ´Â ÁøÂ¥ ÄÚµå´Â ÇÑ »ý¼ºÀÚ¿¡¸¸ ÀÛ¼ºÇÏ°í ³ª¸ÓÁö´Â Àμö·Î Àü´Þ¹ÞÀº °ªÀ» °¡°øÇØ ³Ñ±â´Â ½ÄÀÌ´Ù. Áߺ¹ Äڵ尡 Á¦°ÅµÇ¾î °£·«Çϸç ÃʱâÈ­ÀÇ ÁÖ¿ä ³í¸®°¡ ÇÑ °÷¿¡ ÁýÁßµÇ¾î °ü¸®¿¡µµ À¯¸®ÇÏ´Ù. »ç¿ëÀÚ´Â °´Ã¼¸¦ ¸¸µé ¶§ ¿øÇÏ´Â »ý¼ºÀÚ¸¦ °ñ¶ó È£ÃâÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ µÎ »ý¼º¹®ÀÇ È¿°ú´Â ¿ÏÀüÈ÷ °°´Ù.

 

new Time(true, 12, 34)

new Time(true, 12, 34, 0)

 

»ý¼ºÀÚ¸¦ Áߺ¹ Á¤ÀÇÇÏÁö ¾Ê´õ¶óµµ »ç¿ëÀÚ°¡ ÃÊ Çʵ带 ¾Ë¾Æ¼­ 0À¸·Î ³Ñ±â¸é µÇÁö ¾ÊÀ»±î? ±×·¸±â´Â ÇÏÁö¸¸ Àμö¸¦ 4°³ Àû´Â °Í°ú 3°³ Àû´Â °ÍÀº ÆíÀǼºÀÌ ´Ù¸£´Ù. Ãʸ¦ 0À¸·Î Àû´Â °Í Á¤µµ´Â Á» ±ÍÂúÀº ¼öÁØÀÌÁö¸¸ ´ÙÀ½ »ý¼º¹®Àº »ç¿ëÀÚ°¡ Á÷Á¢ º¯È¯Çϱ⠽±Áö ¾Ê´Ù.

 

new Time(18, 30)

new Time(false, 6, 30, 0)

 

18½Ã¶ó´Â ½Ã°£À» ¿ÀÈÄ 6½Ã·Î ¹Ù²ã¾ß ÇÏ°í ÃÊ°ªÀº 0À¸·Î Àü´ÞÇØ¾ß ÇÑ´Ù. ÀÌ·± ±ÍÂúÀº ¾Ï»êÀ» ´ë½ÅÇØ ÁÖ±â À§ÇØ »ý¼ºÀÚ¸¦ ÀÏÀÏÀÌ ¿À¹ö·Îµù½ÃÄÑ ³õ´Â´Ù. »ý»ê¼ºÀ» Á¶±ÝÀÌ¶óµµ Çâ»ó½ÃÅ°·Á¸é °´Ã¼¸¦ ÃÖ´ëÇÑ ¾²±â ½±°Ô ¸¸µé¾î¾ß ÇÑ´Ù.

Ŭ·¡½ºÀÇ ³»ºÎ°¡ º¹ÀâÇØÁö°í ¼º´ÉÀÌ Èñ»ýµÇ´õ¶óµµ ½±°í Á÷°üÀûÀ̾î¾ß °´Ã¼¸¦ ôô Á¶¸³ÇÏ¿© ÇÁ·Î±×·¥À» ½Å¼ÓÇÏ°Ô ¸¸µé ¼ö ÀÖ´Ù. Ŭ·¡½º¸¦ ¸¸µå´Â ÇÑ ¸íÀÌ 100¸¸Å­ÀÇ ¼ö°í¸¦ ´õ ÇÏ´õ¶óµµ »ç¿ëÇÏ´Â »ç¶÷ 1000¸íÀÌ 1¸¸Å­¸¸ ÆíÇØÁ®µµ ÀüüÀûÀ¸·Î À̵æÀÌ´Ù. ÀÌ°ÍÀÌ °´Ã¼ÁöÇâÀÇ Ã¶ÇÐÀÌ´Ù.

9-2-3.µðÆúÆ® »ý¼ºÀÚ

new ¿¬»êÀÚ´Â °´Ã¼¸¦ »ý¼ºÇϸ鼭 Àμö ¸ñ·Ï¿¡ ¸Â´Â »ý¼ºÀÚ¸¦ È£ÃâÇÏ¿© ÃʱâÈ­±îÁö ó¸®ÇÑ´Ù. ´ÙÀ½ È£Ãâ¿¡ ÀÇÇØ Car(String, boolean), Time(boolean, int, int) »ý¼ºÀÚ°¡ °¢°¢ È£ÃâµÇ¾î ÀÚµ¿Â÷¿Í ½Ã°£ °´Ã¼¸¦ ¸¸µç´Ù.

 

new Car("ÄÚ¶õµµC", false)

new Time(true, 12, 34);

 

±×·¸´Ù¸é »ý¼ºÀÚ¸¦ Á¤ÀÇÇϱâ Àü¿¡ ¸¸µé¾ú´ø ¿¹Á¦¿¡¼­ Car °´Ã¼³ª Time °´Ã¼¸¦ »ý¼ºÇÏ´Â ¹®ÀåÀº ¾î¶² »ý¼ºÀÚ¸¦ È£ÃâÇÒ±î?

 

new Car()

new Time()

 

°ýÈ£°¡ ÀÖ´Â °ÍÀ¸·Î ºÁ¼­ ºÐ¸íÈ÷ »ý¼ºÀÚ È£Ãâ¹®Àε¥ Àμö°¡ ¾ø´Ù. »ý¼ºÀÚ¸¦ Á¤ÀÇÇÏÁö ¾Ê¾ÒÀ½¿¡µµ °´Ã¼°¡ Àß »ý¼ºµÇ¾ú´Ù. ÀÌ Äڵ尡 µ¿ÀÛÇÏ´Â ÀÌÀ¯´Â ÄÄÆÄÀÏ·¯°¡ µðÆúÆ® »ý¼ºÀÚ¸¦ ÀÚµ¿À¸·Î ¸¸µé¾î Áֱ⠶§¹®ÀÌ´Ù.

Àμö°¡ ¾ø´Â »ý¼ºÀÚ¸¦ µðÆúÆ® »ý¼ºÀÚ¶ó°í Çϸç Àμö¾ø´Â »ý¼ºÀÚ(no arg constructor)¶ó°íµµ ºÎ¸¥´Ù. Àü´Þ¹ÞÀº Á¤º¸°¡ ¾ø¾î ¾Æ¹« µ¿ÀÛµµ ÇÏÁö ¾ÊÀ¸¸ç ¸ðµç Çʵå´Â ±âº»°ªÀ¸·Î ÃʱâÈ­µÈ´Ù. ÃÖÃÊÀÇ Car Ŭ·¡½º ¿¹Á¦´Â º°µµÀÇ »ý¼ºÀÚ¸¦ Á¤ÀÇÇÏÁö ¾Ê¾ÒÁö¸¸ ´ÙÀ½ »ý¼ºÀÚ°¡ ÀÚµ¿À¸·Î Á¤ÀÇµÇ¸ç ±×·¡¼­ ÀÚµ¿Â÷ °´Ã¼¸¦ ¸¸µé ¼ö ÀÖ¾ú´Ù.

 

Car() { }

 

ÄÄÆÄÀÏ·¯°¡ µðÆúÆ® »ý¼ºÀÚ¸¦ ¸¸µé¾î ÁÖ´Â ÀÌÀ¯´Â °³¹ßÀÚ°¡ »ý¼ºÀÚ¸¦ Á¤ÀÇÇÏÁö ¾Ê´õ¶óµµ ÃÖ¼ÒÇÑ ±âº»°ªÀ¸·Î °´Ã¼¸¦ »ý¼ºÇÒ ¼ö ÀÖ¾î¾ß Çϱ⠶§¹®ÀÌ´Ù. ÄÄÆÄÀÏ·¯ÀÇ ÀÌ ¼­ºñ½º´Â »ý¼ºÀÚ°¡ Çϳªµµ ¾øÀ» ¶§¸¸ Á¦°øµÇ¸ç ´Ù¸¥ »ý¼ºÀÚ°¡ ÀÖÀ¸¸é µðÆúÆ® »ý¼ºÀÚ¸¦ ÀÚµ¿À¸·Î Á¤ÀÇÇÏÁö ¾Ê´Â´Ù. ±×·¡¼­ ´ÙÀ½ ÄÚµå´Â ¿¡·¯ 󸮵ȴÙ.

 

class Car {

     String name;

     boolean gasoline;

    

     Car(String name, boolean gasoline) {

          this.name = name;

          this.gasoline = gasoline;

     }

     ....

}

 

Car korando = new Car();

korando.name = "ÄÚ¶õµµC";

korando.gasoline = false;

 

Car(String, boolean) »ý¼ºÀÚ°¡ ÀÖÀ¸´Ï ÄÄÆÄÀÏ·¯´Â µðÆúÆ® »ý¼ºÀÚ¸¦ Á¤ÀÇÇÏÁö ¾ÊÀ¸¸ç µû¶ó¼­ new Car() ¹®ÀåÀº È£ÃâÇÒ »ý¼ºÀÚ¸¦ ãÁö ¸øÇÑ´Ù. Ŭ·¡½º¸¦ ¸¸µç °³¹ßÀÚ°¡ ÀÚµ¿Â÷¸¦ ¸¸µé ¶§´Â À̸§°ú ¿¬·á Á¾·ù¸¦ ¹Ýµå½Ã ÁöÁ¤Ç϶ó´Â °ÍÀ» ¸í½ÃÇßÀ¸¹Ç·Î ÄÄÆÄÀÏ·¯°¡ µðÆúÆ® »ý¼ºÀÚ¸¦ ¸¸µé ÀÌÀ¯°¡ ¾ø´Ù.

ÀÌ Å¬·¡½ºÀÇ »ç¿ëÀÚ´Â ¹Ýµå½Ã new Car("¼Ò³ªÅ¸", true) ½ÄÀ¸·Î Â÷À̸§°ú ¿¬·á Á¾·ù¸¦ ¹àÇô¾ß ÇÑ´Ù. ¸¸¾à Á¤ Àμö¾øÀÌ °´Ã¼¸¦ »ý¼ºÇÏ°í ½Í´Ù¸é ¸ðµç »ý¼ºÀÚ¸¦ ¾ø¾Ö ÄÄÆÄÀÏ·¯°¡ µðÆúÆ® »ý¼ºÀÚ·Î Á¤ÀÇÇϵµ·Ï Çϰųª ¾Æ´Ï¸é µðÆúÆ® »ý¼ºÀÚµµ ¿À¹ö·ÎµùÇÏ¿© Àμö¾øÀÌ °´Ã¼¸¦ »ý¼ºÇÒ ¼ö ÀÖÀ½À» ¸í½ÃÇØ¾ß ÇÑ´Ù.

 

defctor

½ÇÇà°á°ú

class Car {

     String name;

     boolean gasoline;

    

     Car() {

     }

    

     Car(String name, boolean gasoline) {

          this.name = name;

          this.gasoline = gasoline;

     }

    

     void run() {

          if (gasoline) {

              System.out.println("ºÎ¸ª ºÎ¸ª");

          } else {

              System.out.println("´úÄÈ ´úÄÈ");

          }

     }

 

     void stop() {

          System.out.println("³¢ÀÌÀÍ");

     }

}

 

class JavaTest {

     public static void main(String[] args) {

          Car sonata = new Car("¼Ò³ªÅ¸", true);

          sonata.run();

 

          Car korando = new Car();

          korando.name = "ÄÚ¶õµµC";

          korando.gasoline = false;

          korando.run();

     }

}

ºÎ¸ª ºÎ¸ª

´úÄÈ ´úÄÈ

 

µÎ °³ÀÇ »ý¼ºÀÚ°¡ ¿À¹ö·ÎµùµÇ¾î ÀÖ´Ù. Car(String, boolean) »ý¼ºÀÚ¸¦ È£ÃâÇÏ¿© Çʵ带 ¿øÇÏ´Â ¹æ½ÄÀ¸·Î ÃʱâÈ­ÇÏ´Â °ÍÀÌ °¡Àå ÀÌ»óÀûÀÌ´Ù. ÀÌ »ý¼ºÀÚ ¿Ü¿¡µµ Àμö¸¦ ¹ÞÁö ¾Ê´Â µðÆúÆ® »ý¼ºÀÚµµ Á÷Á¢ Á¤ÀÇÇØ µÎ¾î new Car() È£Ãâ¹®À¸·Î °´Ã¼¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Ù. ÀÌ °æ¿ì Çʵå´Â ±âº»°ªÀ¸·Î ÃʱâÈ­µÇ¸ç ¿øÇÏ´Â °ªÀ» Á÷Á¢ ´ëÀÔÇØ¾ß ÇÑ´Ù.

Car Ŭ·¡½º´Â ¿ö³« ´Ü¼øÇؼ­ µðÆúÆ® »ý¼ºÀÚ°¡ º°¹Ý ÇÒ ÀÏÀÌ ¾ø°í Àμö¸¦ ¹ÞÁö ¾Ê¾Æ Çʵ带 ÃʱâÈ­ÇÒ ¼öµµ ¾ø´Ù. º¹ÀâÇÑ Å¬·¡½º´Â Çʵå ÃʱâÈ­ ¿Ü¿¡µµ ³×Æ®¿÷ ¿¬°áÀ̳ª µ¥ÀÌÅͺ£À̽º ¿ÀÇ µîÀÇ ÀÛ¾÷ÀÌ ÇÊ¿äÇѵ¥ ÀÌ·± ÀÛ¾÷Àº Àμö¾øÀ̵µ ÇÒ ¼ö ÀÖ¾î µðÆúÆ® »ý¼ºÀÚ°¡ ó¸®ÇÑ´Ù.

µðÆúÆ® »ý¼ºÀÚ´Â °´Ã¼ ÀÚµ¿ »ý¼ºÀ̳ª Á÷·ÄÈ­ µî¿¡ ²À ÇÊ¿äÇϸç ÀÌ·± Ŭ·¡½º´Â µðÆúÆ® »ý¼ºÀÚ°¡ ÇʼöÀÌ´Ù. ÀÚ¼¼ÇÑ °ÍÀº °ü·Ã ºÎºÐ¿¡¼­ ¾Ë¾Æº¸±â·Î ÇÏ°í ¿©±â¼­´Â °³¹ßÀÚ°¡ »ý¼ºÀÚ¸¦ Á¤ÀÇÇÏÁö ¾ÊÀ¸¸é Àμö ¾ø´Â µðÆúÆ® »ý¼ºÀÚ°¡ ÀÚµ¿À¸·Î Á¤Àǵȴٴ °Í¸¸ ÀÌÇØÇÏ°í ³Ñ¾î°¡ÀÚ.

9-2-4.»ý¼ºÀÚÀÇ Æ¯¼ö¼º

»ý¼ºÀÚ´Â Äڵ带 ½ÇÇàÇÑ´Ù´Â ¸é¿¡¼­ ºÐ¸í ¸Þ¼­µåÀÌÁö¸¸ ¸ÃÀº ÀÓ¹«°¡ ÃʱâÈ­·Î Á¤ÇØÁ® ÀÖ´Ù´Â ¸é¿¡¼­ Ư¼öÇϸç ÀÏ¹Ý ¸Þ¼­µå¿Í ´ÙÀ½°ú °°Àº Â÷ÀÌÁ¡ÀÌ ÀÖ´Ù.

 

l  »ý¼ºÀÚ´Â °´Ã¼ »ý¼º½Ã¿¡ new ¿¬»êÀÚ¿¡ ÀÇÇØ ÀÚµ¿À¸·Î È£ÃâµÈ´Ù. ÄÄÆÄÀÏ·¯°¡ »ý¼ºÀÚ¸¦ ãÀ¸·Á¸é À̸§ÀÌ °íÁ¤ÀûÀ̾î¾ß ÇÏ¸ç ±×·¡¼­ Ŭ·¡½º À̸§°ú °°Àº À̸§À» ¾´´Ù.

l  ÃʱâÈ­¸¸ ÇϹǷΠ¸®ÅÏÀÇ °³³äÀÌ ¾ø´Ù. ¸®ÅÏÇÒ °ªÀÌ ¾ø°í ¸®ÅÏ°ªÀ» ¹Þ¾ÆÁÙ ´ë»óµµ ¾øÀ¸¸ç ¸®ÅÏ Å¸ÀÔÀ» ¸í½ÃÇÒ ÇÊ¿ä°¡ ¾ø´Ù. ½ÉÁö¾î void¶ó°í ÀûÀ» ÇÊ¿äµµ ¾ø´Ù.

l  »ý¼ºÀÚ´Â °´Ã¼¸¦ »ý¼ºÇÒ ¶§ µü ÇÑ ¹ø¸¸ È£ÃâÇÒ ¼ö ÀÖ´Ù. ÇÏ´Â ÀÏÀÌ ÃʱâÈ­À̹ǷΠ»ç½Ç µÎ ¹ø È£ÃâÇÒ ÇÊ¿ä°¡ ¾ø´Ù. ÃʱâÈ­¶ó´Â ¸» ÀÚü°¡ ÀÏȸÀûÀÎ °³³äÀÌ´Ù.

l  °´Ã¼ »ý¼º½Ã ¿Ü¿¡ »ý¼ºÀÚ¸¦ Á÷Á¢ È£ÃâÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀº ¾ø´Ù. ´Ü, ¿¹¿ÜÀûÀ¸·Î »ý¼ºÁß¿¡ »ý¼ºÀÚ³¢¸®´Â »óÈ£ È£Ãâ °¡´ÉÇÏ´Ù.

l  ³ªÁß¿¡ »ó¼ÓÆí¿¡¼­ ´Ù½Ã ¾Ë¾Æº¸°ÚÁö¸¸ »ý¼ºÀÚ´Â ÇØ´ç Ŭ·¡½º¸¸À» À§ÇØ Á¸ÀçÇϹǷΠÀÚ½Ä Å¬·¡½º·Î »ó¼ÓµÇÁö ¾Ê´Â´Ù.

 

ÀÌ·± Ư¼ö¼º ¶§¹®¿¡ »ý¼ºÀÚ´Â ¸Þ¼­µå·Î ºÐ·ùÇÏÁö ¾Ê°í ±×³É »ý¼ºÀÚ¶ó°í ºÎ¸£¸ç Ŭ·¡½º ´ÙÀ̾î±×·¥À» ±×¸± ¶§ µû·Î ±×¸°´Ù. »ý¼ºÀÚ¿¡¼­ ´Ù¸¥ »ý¼ºÀÚ¸¦ È£ÃâÇÒ ¶§´Â ±âº» ÃʱâÈ­ ÈÄ¿¡ Ãß°¡ ÃʱâÈ­¸¦ ÇÏ´Â °ÍÀÌ ³í¸®¿¡ ¸Â¾Æ ¹Ýµå½Ã ù ÁÙ¿¡¼­ ¿ì¼±ÀûÀ¸·Î È£ÃâÇØ¾ß ÇÑ´Ù. °¡·É Çʵ尪 ÀϺθ¦ ¸ÕÀú ÃʱâÈ­ÇÑ ÈÄ ´Ù¸¥ »ý¼ºÀÚ¸¦ È£ÃâÇÑ´Ù°í ÇØ º¸ÀÚ.

 

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

     am = false;

     this(am, hour, minute, 0);

}

 

ÀÌ·± Äڵ带 Çã¿ëÇÏ¸é ¸ÕÀú ¼öÇàÇÑ ÃʱâÈ­°¡ ³ªÁß¿¡ È£ÃâÇÑ »ý¼ºÀÚ¿¡ ÀÇÇØ È¿·ÂÀÌ ¾ø¾îÁö°Å³ª ¹«ÀǹÌÇØÁø´Ù. ±×·¡¼­ ´Ù¸¥ »ý¼ºÀÚ¸¦ ¸ÕÀú È£ÃâÇÏ¿© ±âº» ÃʱâÈ­¸¦ ¼öÇàÇÑ ÈÄ ´õ ÇÊ¿äÇÑ ÃʱâÈ­¸¦ Çϵµ·Ï µÇ¾î ÀÖÀ¸¸ç this ±¸¹®ÀÌ Ã¹ ÁÙ ÀÌÈÄ¿¡ ¿À¸é ¿¡·¯ 󸮵ȴÙ.

»ý¼º°ú ÃʱâÈ­¶ó´Â µ¿ÀÛÀº º»ÁúÀûÀ¸·Î ÀÏȸÀûÀÌ´Ù. µü ÇÑ ¹ø¸¸, ±×°Íµµ °´Ã¼°¡ ¸¸µé¾îÁú ¶§¸¸ È£ÃâÇÒ ¼ö ÀÖ´Ù. ¸¸¾à °´Ã¼ »ý¼º ÈÄ¿¡µµ »ý¼ºÀÚ¸¦ ¸¶À½´ë·Î È£ÃâÇÒ ¼ö ÀÖ´Ù¸é °´Ã¼ ³»ºÎ¿¡¼­ ´ÙÀ½ Äڵ尡 °¡´ÉÇØÁø´Ù.

 

this("Á¦³×½Ã½º", true);

 

ÀÌ·¸°Ô µÇ¸é ÄÚ¶õµµ°¡ °©ÀÚ±â Á¦³×½Ã½º°¡ µÇ¾î ´Ù¸¥ °´Ã¼·Î Å»¹Ù²ÞÇØ ¹ö¸°´Ù. ¿ÏÀüÈ÷ ´Ù¸¥ °´Ã¼°¡ ÇÊ¿äÇÏ´Ù¸é ¾Æ¿¹ »õ·Î¿î °´Ã¼¸¦ Çϳª ´õ ¸¸µå´Â °ÍÀÌ ¿ÇÁö ±âÁ¸ °´Ã¼¸¦ ÀçÃʱâÈ­ÇÏ´Â °ÍÀº ´ë°³ÀÇ °æ¿ì ºÒÇÊ¿äÇÏ¸ç ¹Ù¶÷Á÷ÇÏÁöµµ ¾Ê´Ù. ±×·¡¼­ »ý¼ºÀÚ¸¦ ÀÓÀǷΠȣÃâÇÏ´Â °ÍÀº Çã¿ëÇÏÁö ¾Ê´Â´Ù.

¸¸¾à ±»ÀÌ ÀçÃʱâÈ­ ±â´ÉÀ» ³Ö°í ½Í´Ù¸é ¹æ¹ýÀÌ ÀüÇô ¾ø´Â °ÍÀº ¾Æ´Ï´Ù. »ç¿ëÇÏ´ø °´Ã¼¸¦ óÀ½ »óÅ·ΠµÇµ¹¸°´Ù°Å³ª ±ú²ýÇÑ »óÅ·Π¸®¼ÂÇÏ´Â °æ¿ì´Â ½Ç¹«¿¡¼­ Á¾Á¾ ÀÖ´Ù. ÀÌ·² ¶§´Â ÃʱâÈ­ Äڵ带 »ý¼ºÀÚ¿¡ µÎÁö ¸»°í º°µµÀÇ ÃʱâÈ­ Àü´ã ¸Þ¼­µå¸¦ µû·Î ¸¸µç´Ù.

 

init

½ÇÇà°á°ú

class Car {

     String name;

     boolean gasoline;

    

     Car(String name, boolean gasoline) {

          init(name, gasoline);

     }

    

     void init(String name, boolean gasoline) {

          this.name = name;

          this.gasoline = gasoline;

     }

    

     void run() {

          if (gasoline) {

              System.out.println("ºÎ¸ª ºÎ¸ª");

          } else {

              System.out.println("´úÄÈ ´úÄÈ");

          }

     }

     void stop() {

          System.out.println("³¢ÀÌÀÍ");

     }

}

 

class JavaTest {

     public static void main(String[] args) {

          Car korando = new Car("ÄÚ¶õµµC", false);

          korando.run();

          korando.stop();

         

          korando.init("Á¦³×½Ã½º", true);

          korando.run();

          korando.stop();

     }

}

´úÄÈ ´úÄÈ

³¢ÀÌÀÍ

ºÎ¸ª ºÎ¸ª

³¢ÀÌÀÍ

 

»ý¼ºÀÚ°¡ ÇÏ´ø ÃʱâÈ­¸¦ init¶ó´Â ´Ù¸¥ ¸Þ¼­µå·Î ¾÷¹« ÀÌ°üÇÏ°í »ý¼ºÀÚ´Â init¸¦ È£ÃâÇÏ¿© ÃʱâÈ­¸¦ ¼öÇàÇÑ´Ù. init´Â ÀÏ¹Ý ¸Þ¼­µåÀ̹ǷΠ°´Ã¼ »ý¼º ÈÄ¿¡µµ ¾ó¸¶µçÁö È£ÃâÇÏ¿© °´Ã¼¸¦ ÀçÃʱâÈ­ÇÒ ¼ö ÀÖ´Ù. main¿¡¼­ ÄÚ¶õµµ·Î »ý¼ºÇÑ Â÷¸¦ Á¦³×½Ã½º·Î ¹Ù²Ù¾î º¸¾Ò´Ù.

»ý¼ºÀÚ ÀÚü´Â ÇÑ ¹ø¸¸ È£ÃâÇÒ ¼ö ÀÖ´Ù´Â Á¦¾àÀÌ ÀÖ¾î ¿©·¯ ¹ø È£Ãâ °¡´ÉÇÑ ÀÏ¹Ý ¸Þ¼­µå·Î ÃʱâÈ­ Äڵ带 ¿Å±ä °Í »ÓÀÌ´Ù. ¹®¹ýÀû Á¦¾àµµ ÀÀ¿ë¸¸ Çϸé ÇÇÇØ°¥ ¼ö ÀÖ´Ù. ´Ü ¹®¹ýÀÌ ¾Æ¹« ÀÌÀ¯¾øÀÌ ±ÝÁöÇÏ´Â °ÍÀº ¾Æ´Ï¹Ç·Î °¡±ÞÀû ¹®¹ýÀÇ ¹üÀ§ ¾È¿¡¼­ Äڵ带 ÀÛ¼ºÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù. ²À ÇÊ¿äÇÏ°í ÇÕ´çÇÑ ÀÌÀ¯°¡ ÀÖÀ» ¶§¸¸ ÀÌ·± ±â¹ýÀ» »ç¿ëÇØ¾ß ÇÑ´Ù.