10-3.»ó¼ö ¸â¹ö

10-3-1.»ó¼ö Çʵå

ÀÏ¹Ý Çʵå´Â º¯¼ö¿©¼­ ½ÇÇàÁß¿¡ ¾ðÁ¦µçÁö °ªÀ» ¹Ù²Ü ¼ö ÀÖ´Ù. ÀÌ¿¡ ºñÇØ final ÁöÁ¤ÀÚ¸¦ ºÙÀÎ »ó¼ö Çʵå´Â ÇÑ ¹ø °ªÀÌ Á¤ÇØÁö¸é º¯°æÇÒ ¼ö ¾ø´Ù. ½ÇÇàÁß¿¡´Â °ªÀ» º¯°æÇÒ ¼ö ¾ø¾î »ý¼ºÀÚ¿¡¼­ ¹Ýµå½Ã ÃʱâÈ­ÇØ¾ß ÇÑ´Ù. ´ÙÀ½ ¿¹Á¦¸¦ º¸ÀÚ.

 

final

class Notebook {

     final String CPU;

     int memory;

     int storage;

    

     Notebook(String CPU, int memory, int storage) {

          this.CPU = CPU;

          this.memory = memory;

          this.storage = storage;

     }

    

     void upgrade(int memory, int storage) {

          this.memory = memory;

          this.storage = storage;

          // this.CPU = "Super Strong 16 Core 8.5GHz";

     }

    

     void printSpec() {

          System.out.print("CPU = " + CPU);

          System.out.print(" ,Memory = " + memory);

          System.out.println(" ,Storage = " + storage);

     }

}

 

class JavaTest {

     public static void main(String[] args) {

          Notebook Sens = new Notebook("Intel Core i7", 4, 500);

          Notebook XNote = new Notebook("AMD ¶óÀÌÁ¨", 2, 320);

          Sens.printSpec();

          XNote.printSpec();

          Sens.upgrade(8,750);

          Sens.printSpec();

     }

}

½ÇÇà°á°ú

CPU = Intel Core i7 ,Memory = 4 ,Storage = 500

CPU = AMD ¶óÀÌÁ¨ ,Memory = 2 ,Storage = 320

CPU = Intel Core i7 ,Memory = 8 ,Storage = 750

 

Notebook Ŭ·¡½º´Â ³ëÆ®ºÏÀ» Ç¥ÇöÇϸç CPU¿Í ¸Þ¸ð¸®, ÀúÀå ÀåÄ¡·Î ±¸¼ºµÈ´Ù. ³ëÆ®ºÏÀº óÀ½ ¸¸µé ¶§ ÁÖ¿ä »ç¾çÀÌ °áÁ¤µÈ´Ù. ¸Þ¸ð¸®¿Í ÀúÀå ÀåÄ¡´Â Ãâ°í ÈÄ¿¡µµ ¾÷±×·¹À̵åÇÒ ¼ö ÀÖÁö¸¸ CPU´Â ±³Ã¼ ºÒ°¡´ÉÇÑ ºÎÇ°ÀÌ´Ù. ±×·¡¼­ CPU Çʵ忡 final ÁöÁ¤ÀÚ¸¦ ºÙ¿© »ó¼öÀÓÀ» ¸í½ÃÇßÀ¸¸ç »ó¼ö Çʵå´Â °ü½ÀÀûÀ¸·Î ÀüºÎ ´ë¹®ÀÚ·Î ÀÛ¼ºÇÑ´Ù.

»ó¼ö Çʵå¶ó°í Çؼ­ ¸ðµç °´Ã¼°¡ ´Ù °°Àº °ªÀ» °¡Áö´Â °ÍÀº ¾Æ´Ï´Ù. ±×·¡¼­ Ŭ·¡½º ¼±¾ð¹®¿¡ ¸í½ÃÀûÀ¸·Î ÃʱâÈ­ÇÏÁö ¾Ê¾ÒÀ¸¸ç »ý¼ºÀÚ¿¡¼­ °³º° °´Ã¼¸¶´Ù ÃʱâÈ­ÇÑ´Ù. Áï, CPU Çʵå´Â ÇÑ ¹ø Á¤ÇØÁö¸é ¹Ù²Ü ¼ö ¾øÁö¸¸ ÀνºÅϽºº°·Î ´Ù¸¥ °ªÀ» °¡Áú ¼ö´Â ÀÖ´Ù. main¿¡¼­ µÎ ´ëÀÇ ³ëÆ®ºÏ °´Ã¼¸¦ »ý¼ºÇÏ°í ¾÷±×·¹À̵嵵 ÇØ º¸¾Ò´Ù.

Sens ³ëÆ®ºÏÀº »ý¼º ÈÄ¿¡ upgrade ¸Þ¼­µå·Î ¸Þ¸ð¸®¿Í ÀúÀå ÀåÄ¡¸¦ ¹Ù²Ù¾ú´Ù. ±×·¯³ª »ó¼ö·Î ¼±¾ðµÈ CPU´Â ÀÏ´Ü Ãâ°íµÇ¸é º¯°æÇÒ ¼ö ¾ø´Ù. upgradeÀÇ ¸¶Áö¸· ÁÙ¿¡ ÀÛ¼ºµÈ ÄÚµåÀÇ ÁÖ¼®À» Ç®¸é ¿¡·¯·Î 󸮵ȴÙ. ¾Æ¹«¸® µ·ÀÌ ¸¹¾Æµµ ÃֽŠCPU·Î ±³Ã¼ÇÒ ¼ö ¾øÀ¸¸ç Á¤ ¹Ù²Ù°í ½ÍÀ¸¸é ³ëÆ®ºÏÀ» »õ·Î »ç´Â ¼ö¹Û¿¡ ¾ø´Ù. Áï, °´Ã¼¸¦ »õ·Î ¸¸µé¾î¾ß ÇÑ´Ù.

10-3-2.Á¤Àû »ó¼ö Çʵå

CPU Çʵå´Â ºñ·Ï »ó¼öÁö¸¸ ÀνºÅϽºº°·Î ´Ù¸¥ °ªÀ» °¡Áú ¼ö ÀÖÀ¸¸ç ±×·¡¼­ °´Ã¼¿¡ ¼Ò¼ÓµÈ´Ù. ÀÌ¿¡ ºñÇØ ¸ðµç °´Ã¼°¡ °°Àº °ªÀ» °¡Áö´Â Çʵå´Â Ŭ·¡½º¿¡ ¼Ò¼ÓµÇ´Â °ÍÀÌ ÁÁÀ¸¸ç ÀÌ·² ¶§ static ÁöÁ¤ÀÚ¸¦ ºÙÀδÙ. Á¤Àû »ó¼ö·Î ¼±¾ðÇϸé Ŭ·¡½º¿¡ µü ÇϳªÀÇ °ª¸¸ Á¸ÀçÇÏ¸ç ¸ðµç °´Ã¼°¡ ÀÌ °ªÀ» °øÀ¯ÇÑ´Ù. ¼±¾ðÇÒ ¶§ ¸í½ÃÀûÀ¸·Î ÃʱâÈ­ÇÏ¿© »ý¼º ÀÌÀü¿¡ ÃʱâÈ­ÇÑ´Ù.

 

staticfinal

class Notebook {

     final String CPU;

     int memory;

     int storage;

     static final long GIGA = 1073741824L;

    

     Notebook(String CPU, int memory, int storage) {

          this.CPU = CPU;

          this.memory = memory;

          this.storage = storage;

     }

    

     void upgrade(int memory, int storage) {

          this.memory = memory;

          this.storage = storage;

          // this.CPU = "Super Strong 16 Core 8.5GHz";

     }

    

     void printSpec() {

          System.out.print("CPU = " + CPU);

          System.out.print(" ,Memory = " + memory * GIGA + "¹ÙÀÌÆ®");

          System.out.println(" ,Storage = " + storage * GIGA + "¹ÙÀÌÆ®");

     }

}

 

class JavaTest {

     public static void main(String[] args) {

          Notebook Sens = new Notebook("Intel Core i7", 4, 500);

          Notebook XNote = new Notebook("AMD ¶óÀÌÁ¨", 2, 320);

          Sens.printSpec();

          XNote.printSpec();

     }

}

½ÇÇà°á°ú

CPU = Intel Core i7 ,Memory = 4294967296¹ÙÀÌÆ® ,Storage = 536870912000¹ÙÀÌÆ®

CPU = AMD ¶óÀÌÁ¨ ,Memory = 2147483648¹ÙÀÌÆ® ,Storage = 343597383680¹ÙÀÌÆ®

 

¿ë·®À» ¹ÙÀÌÆ® ´ÜÀ§·Î Ç¥½ÃÇϱâ À§ÇØ GIGA¶ó´Â »ó¼ö¸¦ ¼±¾ðÇß´Ù. ±â°¡´Â 2ÀÇ 30½ÂÀ̸ç 10¾ïÀ̶ó´Â Å« °ªÀÌ´Ù. GIGA ÀÚü´Â Á¤¼öÇüÀÇ ¹üÀ§¿¡ Æ÷ÇÔµÇÁö¸¸ ´Ù¸¥ °ª°ú °öÇØÁö¸é ¹üÀ§¸¦ ³Ñ¾î ¼³ ¼ö ÀÖ¾î longÇüÀ¸·Î ¼±¾ðÇß´Ù. printSpec¿¡¼­ ¿ë·®¿¡ GIGA¸¦ °öÇØ Ãâ·ÂÇÑ´Ù. ¼ö½Ä³»¿¡¼­ Á÷Á¢ 1073741824L ¸®ÅÍ·²À» »ç¿ëÇصµ »ó°ü¾øÁö¸¸ »ó¼ö¸¦ ¾²¸é Àбâ ÆíÇÏ°í ÄÚµå °ü¸®µµ ½±´Ù.

GIGA ¿ë·®Àº ³ëÆ®ºÏº°·Î ´Ù¸£Áö ¾Ê¾Æ °´Ã¼¸¶´Ù ÀÌ Çʵ带 µÑ ÇÊ¿ä°¡ ¾ø´Ù. ±×·¡¼­ staticÀ¸·Î ¼±¾ðÇÏ¿© Ŭ·¡½º¿¡ µÎ¾ú´Ù. °¢ °´Ã¼º°·Î µû·Î Á¸ÀçÇÏ´Â CPU Çʵå¿Í »ó¼ö¶ó´Â ¸é¿¡¼­ °°Áö¸¸ Ŭ·¡½º¿¡ µü Çϳª¸¸ ÀÖ°í ¸ðµç °´Ã¼°¡ °øÀ¯ÇÑ´Ù´Â Á¡ÀÌ ´Ù¸£´Ù.

Á¤Àû »ó¼ö´Â °´Ã¼¿Í ¹«°üÇϹǷΠ»ý¼ºÀÚ¿¡¼­ ÃʱâÈ­ÇÒ ¼ö ¾ø´Ù. ¹Ýµå½Ã Ŭ·¡½º ¼±¾ð¹®¿¡ ¸í½ÃÀûÀ¸·Î ÃʱâÈ­ÇØ¾ß ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é ÀǹÌÀÖ´Â °ªÀ¸·Î ÃʱâÈ­ÇÒ ±âȸ°¡ ¾ø´Ù. ¶Ç´Â Á¤Àû ÃʱâÈ­ ºí·ÏÀ» »ç¿ëÇϴµ¥ ÀÌ °æ¿ì ´õ º¹ÀâÇÑ ÃʱâÈ­µµ °¡´ÉÇÏ´Ù.

 

static final long GIGA;

static {

     GIGA = 1073741824L;

}

 

µÎ Á¾·ùÀÇ »ó¼ö´Â ½ÇÇàÁß¿¡ °ªÀ» º¯°æÇÒ ¼ö ¾ø´Ù´Â Á¡¸¸ °°°í ³ª¸ÓÁö Ư¼ºÀº ´Þ¶ó ¿ëµµ¿¡ ¸Â°Ô »ç¿ëÇØ¾ß ÇÑ´Ù.

 

ÁöÁ¤ÀÚ

¼Ò¼Ó

ÃʱâÈ­

Ư¡

final

°´Ã¼

»ý¼ºÀÚ

°´Ã¼¸¶´Ù ´Ù¸¥ °ªÀ» °¡Áø´Ù.

static final

Ŭ·¡½º

¸í½ÃÀû ÃʱâÈ­

¸ðµç °´Ã¼°¡ °øÀ¯ÇÑ´Ù.

 

¸¸¾à ´Ù¸¥ Ŭ·¡½º¿¡¼­ GIGA »ó¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ¿ÜºÎ·Î °ø°³ÇÏ°í ½Í´Ù¸é public ÁöÁ¤ÀÚµµ ºÙÀδÙ.

 

public static final long GIGA = 1073741824L;

 

ÀÚ¹Ù ¶óÀ̺귯¸®¿¡ ÀÌ·± ½ÄÀ¸·Î ¼±¾ðµÈ »ó¼ö°¡ ¸¹´Ù. ¿øÁÖÀ²°ªÀÎ Math.PIµµ °°Àº Çü½ÄÀ¸·Î 3.141592653589793À¸·Î Á¤ÀǵǾî ÀÖ¾î ¿øÁÖÀ²ÀÌ ÇÊ¿äÇÒ ¶§ ´©±¸³ª ¾ðÁ¦µç »ç¿ëÇÒ ¼ö ÀÖ´Ù.

¾Õ Àý¿¡¼­ Bus Ŭ·¡½º¸¦ ¸¸µé¸é¼­ ±âº» ¿ä±Ý 500¿øÀ» ¸®ÅÍ·²·Î ¹Ù·Î »ç¿ëÇߴµ¥ ÀÌ´Â ¹Ù¶÷Á÷ÇÏÁö ¸øÇÑ ¹æ¹ýÀÌ´Ù. ±âº» ¿ä±ÝÀº ¿©·¯ ¹ø »ç¿ëµÇ´Ï »ó¼ö·Î Á¤ÀÇÇÏ¿© °¡µ¶¼ºÀ» ³ôÀÌ´Â °ÍÀÌ ÁÁ´Ù. ¸ðµç ¹ö½º¿¡¼­ ±âº» ¿ä±ÝÀº °°À¸¹Ç·Î Á¤Àû »ó¼ö Çʵå·Î ¼±¾ðÇÏ´Â °ÍÀÌ °¡Àå ÀÌ»óÀûÀÌ´Ù.

 

class Bus {

     static Station[] arInfo;

     final static int BASIC_FARE = 500;

     ....

     void printFare(int from, int to) {

          int fare = BASIC_FARE;

     ....

 

final Å°¿öµå´Â ÇÊµå »Ó¸¸ ¾Æ´Ï¶ó ¸Þ¼­µå³ª Ŭ·¡½º¿¡µµ Àû¿ëÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ Àå¿¡¼­ »ó¼Ó±îÁö ¾Ë¾Æº» ÈÄ ´Ù½Ã ¿¬±¸ÇØ º¸ÀÚ.

¿¬½À ¹®Á¦

1. ¾×¼¼½º ÁöÁ¤ÀÚ°¡ ¾Æ´Ñ °ÍÀº?

¨ç private ¨è final ¨é public ¨ê protected

 

2. ¸â¹ö°ªÀ» º¯°æÇÏ´Â ¼¼ÅÍ(Setter)ÀÇ ¿ªÇÒÀÌ ¾Æ´Ñ °ÍÀº?

¨ç ¼û°ÜÁø ÇʵåÀÇ °ªÀ» ´ë½Å º¯°æÇÑ´Ù.

¨è Á¶°Ç¿¡ ¸ÂÁö ¾Ê´Â °ªÀº °ÅºÎÇÑ´Ù.

¨é ¸â¹ö°ª º¯°æ¿¡ µû¸¥ ºÎÈ¿°ú¸¦ ó¸®ÇÑ´Ù.

¨ê ¿©·¯ °¡Áö ¸â¹öÀÇ °ªÀ» Á¶ÇÕÇÏ¿© ¸®ÅÏÇÑ´Ù.

 

3. ĸ½¶È­ÀÇ ¸ñÀûÀÌ ¾Æ´Ñ °ÍÀº?

¨ç »ç¿ë ÆíÀǼº Çâ»ó

¨è ¾ÈÁ¤¼º Çâ»ó

¨é ¼º´É Çâ»ó

¨ê °³¼± ¿ëÀ̼º Çâ»ó

 

4. ÀνºÅϽº ¸â¹ö¿¡ ´ëÇÑ ¼³¸íÀ» ¿ÇÀº °ÍÀº?

¨ç Çʵå´Â ¸ðµç °´Ã¼°¡ °øÀ¯ÇÑ´Ù.

¨è ¸Þ¼­µå´Â °¢ °´Ã¼º°·Î µû·Î °¡Áø´Ù.

¨é Çʵå´Â °´Ã¼°¡ »ý¼ºµÉ ¶§¸¶´Ù º°µµÀÇ ¸Þ¸ð¸®¸¦ ÇÒ´ç¹Þ´Â´Ù.

¨ê ÇÑÂÊ °´Ã¼ÀÇ Çʵ带 º¯°æÇÏ¸é ´Ù¸¥ °´Ã¼µµ ¿µÇâÀ» ¹Þ´Â´Ù.

 

5 ¸Þ¼­µå³»¿¡¼­ °´Ã¼ ÀÚ½ÅÀ» ĪÇÏ´Â Å°¿öµå´Â (    )À̸ç ÀÌ Å°¿öµå·Î ÀÚ½ÅÀÇ ¸â¹ö¸¦ ÂüÁ¶ÇÑ´Ù.

6. Á¤Àû ÇʵåÀÇ Æ¯¼ºÀÌ ¾Æ´Ñ °ÍÀº?

¨ç °´Ã¼¸¦ Çϳª ÀÌ»ó »ý¼ºÇØ¾ß ÂüÁ¶ÇÒ ¼ö ÀÖ´Ù.

¨è Ŭ·¡½º¿¡ ¼Ò¼ÓµÇ¸ç ¸ðµç °´Ã¼°¡ °øÀ¯ÇÑ´Ù.

¨é Ŭ·¡½º¸í.ÇʵåÀÇ ¹æ½ÄÀ¸·Î ÂüÁ¶ÇÑ´Ù.

¨ê »ý¼ºÀÚ È£Ãâ ÀÌÀü¿¡µµ ÂüÁ¶ÇÒ ¼ö ÀÖ´Ù.

 

7. Á¤Àû ¸Þ¼­µå¿¡¼­ ÂüÁ¶ ¶Ç´Â È£Ãâ °¡´ÉÇÑ °ÍÀº?

¨ç ÀνºÅϽº ÇÊµå ¨è Á¤Àû ÇÊµå ¨é »ý¼ºÀÚ ¨ê Á¤Àû ÃʱâÈ­ ºí·Ï

 

8. main ¸Þ¼­µåÀÇ ¿ÏÀüÇÑ ¿øÇüÀ» ½á¶ó

 

9. ¸ðµç °´Ã¼°¡ °øÀ¯ÇÏ¸ç ´õ ÀÌ»ó º¯°æÇÒ ¼ö ¾ø´Â ÇʵåÀÇ ¼Ó¼ºÀ¸·Î Àû´çÇÑ °ÍÀº?

¨ç static

¨è final

¨é private final

¨ê static final