6-2.Ŭ·¡½ºÀÇ ¸â¹ö

6-2-1.Á¤Àû ¸â¹ö

Ŭ·¡½º¿Í °´Ã¼´Â ´Ù¸£´Ù. Ŭ·¡½º´Â °´Ã¼¸¦ ¸¸µé±â À§ÇÑ ÇüƲÀÌ¸ç °´Ã¼´Â Ŭ·¡½º°¡ ¸Þ¸ð¸®¿¡ ±¸ÇöµÇ¾î »ý¼ºµÈ ½ÇüÀÌ´Ù. ¸Þ¸ð¸®¿¡ ±¸ÇöµÈ Ŭ·¡½ºÀÇ ½Çü¸¦ ÀνºÅϽº¶ó°í Çϸç ÇϳªÀÇ Å¬·¡½º·ÎºÎÅÍ ¾ó¸¶µçÁö ¸¹Àº ÀνºÅϽº¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Ù. °´Ã¼¿Í ÀνºÅϽº´Â ¾à°£ÀÇ ÀÇ¹Ì Â÷ÀÌ ¿Ü¿¡´Â °°Àº ¶æÀÌ´Ù. Çʵå´Â °¢ °´Ã¼º°·Î ÇÒ´çµÇ¾î °íÀ¯ÇÑ ¼Ó¼ºÀ» ÀúÀåÇÑ´Ù. ¹Ý¸é µ¿ÀÛÀ» Á¤ÀÇÇÏ´Â ¸Þ¼­µå´Â ¸ðµç °´Ã¼°¡ °øÀ¯ÇÑ´Ù. Human ŸÀÔÀÇ Kim, Lee °´Ã¼¸¦ »ý¼ºÇßÀ» ¶§ ¸Þ¸ð¸® ¸ð¾çÀº ´ÙÀ½°ú °°´Ù.

±è°¡¿Í ÀÌ°¡´Â À̸§ÀÌ ´Ù¸£°í ³ªÀ̵µ ´Þ¶ó Name, Age Çʵ带 °¢°¢ µû·Î °¡Áø´Ù. Çʵå´Â ƯÁ¤ °´Ã¼¿¡ ¼Ò¼ÓµÇ¸ç °¢°¢ ´Ù¸¥ ¸Þ¸ð¸® À§Ä¡¿¡ »ý¼ºµÇ¾î ¼­·Î µ¶¸³ÀûÀÌ´Ù. ¿¹¸¦ µé¾î ±è°¡ÀÇ ³ªÀ̸¦ 40À¸·Î ¼öÁ¤ÇÑ´Ù°í Çؼ­ ÀÌ°¡ÀÇ ³ªÀÌ°¡ ¹Ù²îÁö´Â ¾Ê´Â´Ù. ÇÏÁö¸¸ °°Àº Ŭ·¡½º·ÎºÎÅÍ »ý¼ºµÈ °´Ã¼ÀÇ µ¿ÀÛÀº °°¾Æ ¸Þ¼­µå¸¦ µû·Î °¡Áú ÇÊ¿ä´Â ¾ø´Ù. ±è°¡³ª ÀÌ°¡³ª ÀÚ½ÅÀ» ¼Ò°³ÇÏ´Â ¹æ½ÄÀº °°À¸¸ç ¸Þ¼­µå¸¦ °øÀ¯ÇÑ´Ù. ´Ü, ¸Þ¼­µå¸¦ È£ÃâÇÒ ¶§ Àü´ÞµÇ´Â È£Ãâ °´Ã¼ÀÇ ÂüÁ¶ÀÚ this·ÎºÎÅÍ ÀÐÀ» Çʵ带 ±¸ºÐÇÑ´Ù. Kim.Intro() ¿Í Lee.Intro()°¡ È£ÃâÇÏ´Â ¸Þ¼­µå´Â °°Áö¸¸ ÂüÁ¶ÇÏ´Â Çʵ尡 ´Þ¶ó Ãâ·Â °á°úµµ ´Ù¸£´Ù.

¿ä¾àÇÏÀÚ¸é °´Ã¼³¢¸® Çʵå´Â °¢ÀÚ °¡Áö°í ¸Þ¼­µå´Â °øÀ¯ÇÑ´Ù. °´Ã¼º°·Î ÇÒ´çµÇ´Â Çʵå, this¿¡ ÀÇÇØ È£Ãâ °´Ã¼¸¦ ±¸ºÐÇÏ´Â ¸Þ¼­µå¸¦ ÀνºÅϽº ¸â¹ö ¶Ç´Â ºñÁ¤Àû ¸â¹ö¶ó°í ÇÑ´Ù. ¹Ý´ë °³³äÀº Á¤Àû ¸â¹öÀÌ¸ç ¸â¹ö ¼±¾ð¹®¾Õ¿¡ Å°¿öµå staticÀ» ºÙ¿© ÁöÁ¤ÇÑ´Ù. Á¤Àû Çʵå´Â °´Ã¼°¡ ¾Æ´Ñ Ŭ·¡½º¿¡ ¼Ò¼ÓµÈ´Ù. °´Ã¼°¡ ¾Æ¹«¸® ¸¹¾Æµµ Á¤Àû Çʵå´Â ´Ü Çϳª¸¸ »ý¼ºµÇ¸ç °´Ã¼°¡ ÀüÇô ¾ø¾îµµ Çϳª´Â »ý¼ºµÈ´Ù. µü Çϳª¸¸ »ý¼ºµÇ¾î ¸ðµç °´Ã¼°¡ °øÀ¯ÇÑ´Ù. ¾î¶² °´Ã¼¿¡¼­ Á¤Àû ÇʵåÀÇ °ªÀ» º¯°æÇÏ¸é °°Àº Ŭ·¡½º ¼Ò¼ÓÀÇ ¸ðµç °´Ã¼°¡ ¿µÇâÀ» ¹Þ´Â´Ù. Àü¿ªÀûÀÎ ¼³Á¤ Á¤º¸³ª Àб⸸ ÇÏ´Â Âü°í Á¤º¸°¡ Á¤Àû Çʵå·Î ¼±¾ðµÈ´Ù.

Á¤Àû ¸Þ¼­µåµµ Ŭ·¡½º¿¡ ¼Ò¼ÓµÇ¸ç °³º° °´Ã¼¿¡ ´ëÇÑ µ¿ÀÛÀÌ ¾Æ´Ñ Ŭ·¡½º Â÷¿øÀÇ µ¿ÀÛÀ» ó¸®ÇÑ´Ù. ƯÁ¤ °´Ã¼¿¡ ´ëÇÑ Ã³¸®¸¦ ÇÏ´Â °ÍÀÌ ¾Æ´Ï¾î¼­ È£Ãâ °´Ã¼ this¸¦ Àü´Þ¹ÞÁö ¾ÊÀ¸¸ç °´Ã¼°¡ ¾ø¾îµµ È£ÃâÇÒ ¼ö ÀÖ´Ù. Á¤Àû ¸Þ¼­µå´Â this°¡ ¾ø¾î ÀνºÅϽº Çʵå´Â ÂüÁ¶ÇÒ ¼ö ¾øÀ¸¸ç Á¤Àû Çʵ常 ¾×¼¼½ºÇÒ ¼ö ÀÖ´Ù.

»ý¼ºÀÚ¿¡µµ static ÁöÁ¤ÀÚ¸¦ ºÙÀÏ ¼ö ÀÖ´Ù. Á¤Àû »ý¼ºÀÚ´Â Á¤Àû Çʵ带 ÃʱâÈ­Çϸç ÀνºÅϽº Çʵå´Â ÃʱâÈ­ÇÒ ¼ö ¾ø´Ù. Ŭ·¡½º°¡ ·ÎµåµÉ ¶§ ÀÚµ¿À¸·Î È£ÃâµÇ¹Ç·Î Àμö¸¦ °¡Áú ¼ö ¾øÀ¸¸ç ¾×¼¼½º ÁöÁ¤ÀÚµµ ºÙÀÌÁö ¾Ê´Â´Ù. µðÆúÆ® »ý¼ºÀÚ¿Í ¸ð¾çÀÌ °°¾Æ ¿À¹ö·Îµù Á¶°ÇÀÌ ¼º¸³ÇÏÁö ¾ÊÁö¸¸ static ÁöÁ¤ÀÚ¿¡ ÀÇÇØ ±¸ºÐµÇ¸ç È£Ãâ ½ÃÁ¡ÀÌ ´Þ¶ó ¾Ö¸ÅÇÏÁö ¾Ê´Ù.

 

Human()               // µðÆúÆ® »ý¼ºÀÚ

static Human()          // Á¤Àû »ý¼ºÀÚ

 

Á¤Àû »ý¼ºÀÚ´Â µü ÇÑ ¹ø¸¸ È£ÃâµÇ´Âµ¥ ºñÇØ ÀνºÅϽº »ý¼ºÀÚ´Â °´Ã¼°¡ »ý¼ºµÉ ¶§¸¶´Ù È£ÃâµÈ´Ù. Á¤Àû »ý¼ºÀÚ¸¦ °¡Áö´Â Ŭ·¡½º°¡ ¿©·¯ °³ ÀÖÀ» ¶§ È£Ãâ ¼ø¼­´Â ¾Ë ¼ö ¾øÀ¸¸ç ¼ø¼­¸¦ ÁöÁ¤ÇÏ´Â ¹æ¹ýµµ ¾ø´Ù. ÇÁ·¹ÀÓ¿öÅ©°¡ ¾Ë¾Æ¼­ ¼ø¼­´ë·Î È£ÃâÇÒ »ÓÀ̾ ÃʱâÈ­ ¼ø¼­¿¡ ÀÇÁ¸ÀûÀÎ ÄÚµå´Â ÀÛ¼ºÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù.

Time Ŭ·¡½º¿¡ ½Ã°£ Ç¥½Ã ¹æ¹ýÀ» ÁöÁ¤ÇÏ´Â Çʵ带 Ãß°¡ÇØ º¸ÀÚ. ½Ã°£Àº 24½Ã°£Á¦·Î Ç¥½ÃÇÒ ¼öµµ ÀÖ°í ¿ÀÀü/¿ÀÈÄ·Î ³ª´©¾î Ç¥½ÃÇÒ ¼öµµ ÀÖ´Ù. ¿¹¸¦ µé¾î 12½Ã°£Á¦ÀÇ ¿ÀÈÄ 6½Ã´Â 24½Ã°£Á¦·Î 18½ÃÀÌ´Ù. ½Ã°£ Ç¥½Ã ¹æ¹ýÀº Àü¿ªÀûÀÎ ¿É¼ÇÀ̹ǷΠ°³º° Time °´Ã¼¸¶´Ù Àû¿ëÇÏ´Â °Íº¸´Ù Àüü °´Ã¼¿¡ ÀÏ°üµÇ°Ô Àû¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù. ÀÌ·² ¶§ Á¤Àû ¸â¹ö¸¦ »ç¿ëÇÑ´Ù.

 

AmPm

using System;

 

class Time {

     private int hour, min, sec;

     public Time(int h, int m, int s) { hour = h; min = m; sec = s; }

     private static bool UseAmPm;                               // Á¤Àû Çʵå

     static Time() { UseAmPm = false; }                              // Á¤Àû »ý¼ºÀÚ

     public static void SetAmPm(bool bAmPm) { UseAmPm = bAmPm; }      // Á¤Àû ¸Þ¼­µå

     public void OutTime() {

          int h;

          string AmPm;

          if (UseAmPm == true) {

              if (hour < 12) { AmPm = "¿ÀÀü"; h = hour; } else { AmPm = "¿ÀÈÄ"; h = hour - 12; }

              Console.WriteLine($"ÇöÀç ½Ã°£Àº {AmPm} {h}½Ã {min}ºÐ {sec}ÃÊÀÌ´Ù.");

          } else {

              Console.WriteLine($"ÇöÀç ½Ã°£Àº {hour}½Ã {min}ºÐ {sec}ÃÊÀÌ´Ù.");

          }

     }

}

 

class CSTest {

     static void Main() {

          Time Now = new Time(18, 25, 55);

          Time Then = new Time(20, 30, 10);

          Now.OutTime();

          Then.OutTime();

          Time.SetAmPm(true);

          Now.OutTime();

          Then.OutTime();

     }

}

½ÇÇà°á°ú

ÇöÀç ½Ã°£Àº 18½Ã 25ºÐ 55ÃÊÀÌ´Ù.

ÇöÀç ½Ã°£Àº 20½Ã 30ºÐ 10ÃÊÀÌ´Ù.

ÇöÀç ½Ã°£Àº ¿ÀÈÄ 6½Ã 25ºÐ 55ÃÊÀÌ´Ù.

ÇöÀç ½Ã°£Àº ¿ÀÈÄ 8½Ã 30ºÐ 10ÃÊÀÌ´Ù.

 

bool ŸÀÔÀÇ UseAmPm Çʵ尡 trueÀÌ¸é ¿ÀÀü/¿ÀÈÄ ÇüÅÂÀÇ 12½Ã°£Á¦¸¦ ¾²°í falseÀ̸é 24½Ã°£Á¦¸¦ ¾´´Ù. Time °´Ã¼¿¡ ÀÏ°üµÇ°Ô Àû¿ëÇϱâ À§ÇØ Á¤ÀûÀ¸·Î ¼±¾ðÇÏ¿© ¸ðµç °´Ã¼°¡ °øÀ¯ÇÑ´Ù. Á¤Àû »ý¼ºÀÚ¿¡¼­ UseAmPmÀ» false·Î ÃʱâÈ­Çϴµ¥ Çʵå Ãʱâ½ÄÀ¸·Î ÁöÁ¤ÇÒ ¼öµµ ÀÖ´Ù.

 

public static bool UseAmPm = false;

 

°ª ŸÀÔÀº Çʵå Ãʱâ½ÄÀÌ ´õ Æí¸®ÇØ Á¤Àû »ý¼ºÀÚ°¡ ÇÊ¿äÄ¡ ¾Ê´Ù. ÇÏÁö¸¸ ÂüÁ¶ ŸÀÔÀÇ Á¤Àû Çʵå´Â Ãʱâ½Ä¸¸À¸·Î´Â »ý¼ºµÇÁö ¾ÊÀ¸¸ç new ¿¬»êÀÚ¸¦ È£ÃâÇØ¾ß Çϴµ¥ À̶§´Â Á¤Àû »ý¼ºÀÚ°¡ ÇÊ¿äÇÏ´Ù. SetAmPm ¸Þ¼­µå´Â Ãâ·Â Çü½ÄÀ» º¯°æÇÑ´Ù. ƯÁ¤ °´Ã¼ÀÇ ¼Ó¼ºÀÌ ¾Æ´Ñ Ŭ·¡½º ¼Ò¼ÓÀÇ Á¤Àû Çʵ带 º¯°æÇϹǷΠ¿ª½Ã Á¤ÀûÀÌ´Ù. OutTime ¸Þ¼­µå´Â UseAmPm Çʵ忡 µû¶ó ½Ã°£À» 12½Ã°£Á¦³ª 24½Ã°£Á¦ Çü½ÄÀ¸·Î Ãâ·ÂÇÑ´Ù. Á¤Àû Çʵ带 º¯°æÇÏ¸é ¸ðµç °´Ã¼°¡ ¿µÇâÀ» ¹Þ´Â´Ù.

Á¤Àû ¸â¹ö´Â ƯÁ¤ °´Ã¼¿¡ ¼Ò¼ÓµÇÁö ¾Ê¾Æ Ŭ·¡½º·ÎºÎÅÍ È£ÃâÇÑ´Ù. SetAmPmÀº Time Ŭ·¡½º ¼Ò¼ÓÀÌÁö Now³ª Then °´Ã¼ ¼Ò¼ÓÀÌ ¾Æ´Ï´Ù. Now.SetAmPm ½ÄÀ¸·Î´Â È£ÃâÇÒ ¼ö ¾ø°í Time.SetAmPmÀ¸·Î È£ÃâÇØ¾ß ÇÑ´Ù.

¿ÏÀüÇÑ °´Ã¼ÁöÇâ ¾ð¾î¿¡¼­ ¸ðµç °ÍÀº Ŭ·¡½º¿¡ ¼Ò¼ÓµÇ¸ç Àü¿ª ÇÔ¼ö, Àü¿ª º¯¼öÀÇ °³³äÀÌ ¾ø´Ù. ÇÏÁö¸¸ ½ÇÁ¦·Î´Â Àü¿ªÀÌ ÇÊ¿äÇÒ ¶§µµ Àִµ¥ Á¤Àû ¸â¹ö°¡ ´ë½Å »ç¿ëµÈ´Ù. Çϳª¸¸ Á¸ÀçÇÏ°í ¼ö¸íÀÌ ±æ¸ç ¾ðÁ¦µçÁö ÂüÁ¶ÇÒ ¼ö ÀÖ´Ù´Â Á¡¿¡¼­ Á¤Àû ¸â¹ö´Â »ç½Ç»ó Àü¿ª°ú ºñ½ÁÇÑ °³³äÀÌ´Ù. ´Ù¸¸ ¼û±æ ¼ö ÀÖ°í Ŭ·¡½ºÀÇ ¹üÁÖ¿¡ Æ÷ÇԵȴٴ Â÷ÀÌ°¡ ÀÖ´Ù.

ÀÌ·± ½ÄÀ¸·Î »ç¿ëµÇ´Â ´ëÇ¥ÀûÀÎ ÇÔ¼ö°¡ ¹Ù·Î ÁøÀÔÁ¡ÀÎ MainÀÌ´Ù. ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÉ ¶§´Â ¾î¶°ÇÑ °´Ã¼µµ »ý¼ºµÇ¾î ÀÖÁö ¾Ê¾Æ ÁøÀÔÁ¡Àº °´Ã¼¿¡ ¼Ò¼ÓµÉ ¼ö ¾ø´Ù. °´Ã¼¸¦ ¸¸µé±â Àü¿¡ È£ÃâµÇ¾î¾ß ÇϹǷΠMainÀº Á¤Àû ¸Þ¼­µåÀÏ ¼ö¹Û¿¡ ¾ø´Ù. Console Ŭ·¡½ºÀÇ WriteLineµµ Á¤Àû ¸Þ¼­µåÀε¥ ÄÜ¼Ö °´Ã¼¸¦ ¸¸µéÁö ¾Ê¾Æµµ ÀÚÀ¯·Ó°Ô È£ÃâÇÒ ¼ö ÀÖ´Ù.

6-2-2.»ó¼ö ¸â¹ö

»ó¼ö ¸â¹ö´Â ÇÑ ¹ø ÃʱâÈ­µÇ¸é º¯°æÇÒ ¼ö ¾ø´Â ¸â¹öÀÌ´Ù. Ŭ·¡½º¿¡ ¼Ò¼ÓµÇ°í À̸§À» °¡Áø´Ù´Â ¸é¿¡¼­ ¼öÄ¡ »ó¼ö¿Í´Â ´Ù¸£´Ù. 123, "string", 3.14 °°Àº ÁøÂ¥ »ó¼ö´Â ¸®ÅÍ·²(Literal)À̶ó°í ºÎ¸¥´Ù. °ªÀÌ ÃʱâÈ­µÇ´Â ½ÃÁ¡¿¡ µû¶ó µÎ °¡Áö Á¾·ù°¡ ÀÖ´Ù.

const »ó¼ö´Â ÄÄÆÄÀÏÇÒ ¶§ ÃʱâÈ­µÇ¾î ½ÇÇàÁß¿¡ º¯°æÇÒ ¼ö ¾ø´Ù. ÇÊµå ¼±¾ð¹®¿¡ const Å°¿öµå¸¦ ºÙÀÌ°í = ´ÙÀ½¿¡ ÃʱⰪÀ» ÁöÁ¤ÇÑ´Ù. ¼±¾ðÇÒ ¶§ ¹Ýµå½Ã ÃʱⰪÀ» ÁöÁ¤ÇØ¾ß ÇÑ´Ù. °ªÀÌ ¾ø´Â »ó¼ö´Â Àǹ̰¡ ¾øÀ¸¸ç ÃʱⰪ ÁöÁ¤À» »ý·«ÇÏ¸é ¿¡·¯·Î 󸮵ȴÙ.

 

class Date {

     public const int DAY = 24;

}

 

Date Ŭ·¡½º´Â DAY »ó¼ö ¸â¹ö¸¦ 24·Î Á¤ÀÇÇÑ´Ù. ÇÏ·çÀÇ ½Ã°£À» ÀûÀ» ¶§ 24 ´ë½Å DAY »ó¼ö ¸â¹ö¸¦ »ç¿ëÇÑ´Ù. »ó¼ö ¸â¹ö´Â ¿ÜºÎ¿¡ °ø°³Çصµ ¾îÂ÷ÇÇ º¯°æÇÒ ¼ö ¾ø¾î ¾×¼¼½º ÁöÁ¤Àº Åë»ó publicÀÌ´Ù. ±×·¯³ª ÀÎÅÚ¸®¼¾½º ¸ñ·Ï¿¡ ³ª¿Ã ÇÊ¿äÁ¶Â÷µµ ¾ø´Ù¸é private·Î ¼û±â´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù.

»ó¼ö´Â static ÁöÁ¤ÀÚ¸¦ ¾²Áö ¾Ê¾Æµµ Ç×»ó Á¤ÀûÀ̸ç staticÀ» ºÙÀÌ¸é ¿Ö ¾µµ¥¾ø´Â ÁþÀ» ÇÏ´À³Ä¸ç ¿¡·¯·Î ó¸®ÇÑ´Ù. º¯ÇÏÁöµµ ¾Ê´Â °íÁ¤µÈ °ªÀ» °´Ã¼º°·Î °¡Áú ÇÊ¿ä´Â ¾ø´Ù. ±×·¡¼­ ¿ÜºÎ¿¡¼­ ÂüÁ¶ÇÒ ¶§ Date.DAY Çü½ÄÀ¸·Î °´Ã¼°¡ ¾Æ´Ñ Ŭ·¡½º ¼Ò¼ÓÀ¸·Î Àд´Ù.

»ó¼ö ¸â¹ö´Â ¼³¸íÀûÀÎ À̸§À» °¡Á® ÀÇ¹Ì ÆľÇÀÌ ½±´Ù. ¼ýÀÚ´Â °ª¸¸ º¸¿© Á¤È®ÇÑ Àǹ̸¦ ¾Ë±â ¾î·Æ´Ù. ¿¹¸¦ µé¾î 1609 ¼ýÀÚÀÇ Àǹ̸¦ ÁüÀÛÇϱâ´Â ¾î·ÆÁö¸¸ MILEÀ̶ó´Â À̸§À» ºÙ¿© ÁÖ¸é 1¸¶ÀÏÀ» ÀǹÌÇÏ´Â 1609¹ÌÅͶó´Â °ÍÀ» ÆľÇÇÒ ¼ö ÀÖ´Ù. ¼öÁ¤ÇÏ°í °ü¸®Çϱ⵵ ½±´Ù. Æò°¡ ±â°£ÀÌ 30ÀÏÀÎ ¼Î¾î¿þ¾î¸¦ ¸¸µé ¶§ ¼ýÀÚ¸¦ ¹Ù·Î ¾²´Â °Íº¸´Ù TRIAL »ó¼ö ¸â¹ö¸¦ »ç¿ëÇÑ´Ù. ¼ýÀÚ´Â ¸ðµÎ ã¾Æ ¼öÁ¤ÇØ¾ß ÇÏÁö¸¸ »ó¼ö´Â ÃʱⰪ¸¸ ¼öÁ¤ÇÏ¸é µÈ´Ù. ÀϺθ¸ °íÄ¡´Â »ç°í³ª ¾û¶×ÇÑ °ªÀ» °Çµå¸± À§Çèµµ ¾ø´Ù.

const Å°¿öµå´Â Áö¿ªº¯¼ö¿¡µµ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¼öÇÐÀû °è»êÀ» ÇÏ´Â ¸Þ¼­µå¿¡¼­ °íÁ¤µÈ ºñÀ²À» °è¼Ó »ç¿ëÇÑ´Ù¸é Áö¿ª »ó¼ö·Î Á¤ÀÇÇÑ ÈÄ »ç¿ëÇÑ´Ù.

 

void Calculate() {

    const double RATE = 0.85;

    ....

}

 

»ó¼ö ¸â¹öÀÇ µÎ ¹ø° Á¾·ù´Â readonly Å°¿öµå·Î ÁöÁ¤ÇÏ´Â Àбâ Àü¿ë ÇʵåÀÌ´Ù. »ó¼ö¿Í Àбâ Àü¿ëÀº º¯°æÇÒ ¼ö ¾ø´Â °ÍÀº °°Áö¸¸ ÃʱâÈ­ ½ÃÁ¡ÀÌ ´Þ¶ó ¿©·¯ °¡Áö Â÷ÀÌ°¡ ÀÖ´Ù.

 

l  »ó¼ö´Â ÄÄÆÄÀϽÿ¡ ÃʱâÈ­µÇÁö¸¸ Àбâ Àü¿ëÀº »ý¼ºÀÚ¿¡ ÀÇÇØ ÃʱâÈ­µÈ´Ù. »ý¼ºµÇ´Â µ¿¾È¿¡´Â º¯°æ °¡´ÉÇØ °è»êÀ» ÅëÇØ ÃʱâÈ­ÇÒ ¼ö ÀÖ´Ù. Àбâ Àü¿ë Çʵå´Â = Ãʱâ½Ä ¶Ç´Â »ý¼ºÀÚ¿¡¼­ ÃʱâÈ­Ç쵂 µÑ ´Ù »ý·«ÇÏ¸é µðÆúÆ® °ªÀ» °¡Áö¸ç ¿¡·¯´Â ¾Æ´Ï´Ù.

l  ÄÄÆÄÀÏÁß¿¡ ÃʱâÈ­µÇ´Â »ó¼ö´Â °ª ŸÀÔ¸¸ °¡´ÉÇϸç new ¿¬»êÀÚ·Î »ý¼ºÇÏ´Â ÂüÁ¶ ŸÀÔÀº ¾ÈµÈ´Ù. ´Ü ¿¹¿ÜÀûÀ¸·Î ¹®ÀÚ¿­Àº ÂüÁ¶ ŸÀÔÀÌÁö¸¸ = Ãʱâ½ÄÀ» »ç¿ëÇÒ ¼ö ÀÖ¾î »ó¼ö·Î ¼±¾ðÇÒ ¼ö ÀÖ´Ù. Àбâ Àü¿ëÀº ÂüÁ¶ ŸÀÔµµ °¡´ÉÇÏ´Ù.

l  Àбâ Àü¿ë Çʵå´Â °¢ °´Ã¼¸¶´Ù ´Ù¸¥ °ªÀ¸·Î ÃʱâÈ­ÇÒ ¼ö ÀÖ´Ù. °´Ã¼¸¶´Ù °¢°¢ÀÇ Çʵ带 °¡Áú ¼ö ÀÖ¾î Á¤Àû ¼ºÁúÀ» °¡ÁöÁö ¾Ê´Â´Ù. static ÁöÁ¤ÀÚ¸¦ ºÙ¿© Á¤ÀûÀ¸·Î ¼±¾ðÇÒ ¼ö ÀÖµÇ ÀÌ °æ¿ì Á¤Àû »ý¼ºÀÚ¿¡¼­ ÃʱâÈ­ÇÑ´Ù.

l  const´Â Áö¿ªº¯¼ö¿¡µµ Àû¿ëµÇÁö¸¸ readonly´Â Ŭ·¡½ºÀÇ Çʵ忡¸¸ Àû¿ëµÈ´Ù. ¸Þ¼­µå³»ÀÇ Áö¿ª »ó¼ö´Â const¸¸À¸·Îµµ ÃæºÐÇÏ´Ù.

 

const´Â ÇÑ ¹ø °áÁ¤µÇ¸é Àý´ë·Î ¹Ù²Ü ¼ö ¾øÁö¸¸ readonly´Â »ý¼ºÀÚ¿¡¼­ µü ÇÑ ¹ø °ªÀ» °áÁ¤ÇÒ ¼ö ÀÖ´Â ±âȸ°¡ Á¦°øµÈ´Ù. const°¡ °øÀå¿¡¼­ ±¸¿öÁ® ³ª¿À´Â CD-ROM ¹Ìµð¾î¶ó¸é readonly´Â ºñ¾î ÀÖµÇ ÇÑ ¹øÀº ±â·ÏÇÒ ¼ö ÀÖ´Â CD-R ¹Ìµð¾î¿¡ ºñÀ¯ÇÒ ¼ö ÀÖ´Ù.

µÎ Á¾·ùÀÇ »ó¼ö´Â ¿ëµµ°¡ ´Ù¸£´Ù. const´Â ±â¾ïÀÇ ¿ëÀÌÇÔÀ̳ª È¿À²ÀûÀÎ ¼Ò½º °ü¸®°¡ ¸ñÀûÀ̸ç readonly´Â ºÎÁÖÀÇÇÑ º¯°æ ¹æÁö°¡ ÁÖµÈ ¸ñÀûÀÌ´Ù. ´ÙÀ½ ¿¹Á¦´Â Á¶Æø Ŭ·¡½º¸¦ ¸ðÇüÈ­ÇÑ °ÍÀÌ´Ù.

 

Jopok

using System;

 

class CSTest {

     static void Main() {

          Jopok NalaliPa;

          NalaliPa = new Jopok("±è»óÇü", 25, 500);

          NalaliPa.Intro();

     }

}

 

class Human {

     private string Name;

     private int Age;

     public Human(string aName, int aAge) {

          Name = aName;

          Age = aAge;

     }

     public void Intro() {

          Console.WriteLine($"{Age}»ì {Name}ÀÔ´Ï´Ù.");

     }

}

 

class Jopok {

     readonly private Human Dumok;

     private int Jolgae;

     public Jopok(string aName, int aAge, int aJolgae) {

          Dumok = new Human(aName, aAge);

          Jolgae = aJolgae;

     }

     public void Intro() {

          Console.Write("´ë»§ : ");

          Dumok.Intro();

          Console.WriteLine($"Á¶Á÷¿ø : {Jolgae}¸í");

     }

}

½ÇÇà°á°ú

´ë»§ : 25»ì ±è»óÇüÀÔ´Ï´Ù.

Á¶Á÷¿ø : 500¸í

 

Á¶ÆøÀº µÎ¸ñ°ú ±×¸¦ µû¸£´Â Á¹°³µé·Î ±¸¼ºµÈ´Ù. Jopok Ŭ·¡½º´Â µÎ¸ñÀ» Ç¥ÇöÇÏ´Â Human °´Ã¼ Dumok Çʵå(¾î·µç µÎ¸ñµµ Àΰ£À̴ϱî)¿Í Á¹°³ÀÇ ¼ö¸¦ Ç¥ÇöÇÏ´Â Jolgae Çʵå·Î ±¸¼ºµÈ´Ù. Á¦´ë·Î Ç¥ÇöÇÏ·Á¸é Á¶Á÷ °­·É, ÁÖ ±Ù°ÅÁö, Çൿ ´ëÀå µîÀÌ ´õ ÇÊ¿äÇÏÁö¸¸ ¿¹Á¦ÀÏ »ÓÀÌ´Ï ´ëÃæ ÇÏÀÚ. ¸Þ¼­µå´Â »ý¼ºÀÚ¿Í Á¶Á÷À» ¼Ò°³ÇÏ´Â Intro ¸Þ¼­µå°¡ Æ÷ÇԵǾî ÀÖ´Ù.

Á¶ÆøÀÇ µÎ¸ñÀº Á¶Á÷ÀÌ ¸¸µé¾îÁú ¶§ ÇÑ ¹ø Á¤ÇØÁö¸é º¯ÇÏÁö ¾Ê¾Æ Dumok Çʵå´Â readonly·Î ÁöÁ¤µÇ¾úÀ¸¸ç »ý¼ºÀÚ¿¡¼­ ÃʱâÈ­µÈ´Ù. ÇϱػóÀÌ ¹ß»ýÇÏÁö ¾Ê´Â ÇÑ Á¶Á÷ÀÌ ÇØüµÉ ¶§±îÁö À¯ÁöµÇ¸ç µÎ¸ñÀÌ ¹Ù²î¸é »ç½Ç»ó ±× Á¶Á÷Àº ¿ÍÇØµÈ °ÍÀÌ´Ù. µÎ¸ñÀº °´Ã¼¿©¼­ °ª¸¸ °¡´ÉÇÑ const·Î ¼±¾ðÇÒ ¼ö´Â ¾ø´Ù. ´ÙÀ½ ¼±¾ð¹®À» ½ÇÇàÇØ º¸¸é ¿Ö ¾ÈµÇ´ÂÁö ÄÄÆÄÀÏ·¯°¡ °¡¸£ÃÄ ÁØ´Ù.

 

private const Human Dumok = new Human("±è»óÇü", 25);

 

const¸¦ ¾µ ¼ö ¾ø´Â ¶Ç ´Ù¸¥ ÀÌÀ¯´Â ÇÑ Á¶Á÷ÀÇ µÎ¸ñÀº ¹Ù²îÁö ¾ÊÁö¸¸ Á¶Á÷º°·Î µÎ¸ñÀº ´Ù¸£±â ¶§¹®ÀÌ´Ù. ³¯¶ó¸®ÆÄ µÎ¸ñÀº ±è»óÇü´ÔÀÌÁö¸¸ ´Ù¸¥ ÆÄÀÇ µÎ¸ñÀº ´Ù¸¥ ³ðÀÏ ¼öµµ ÀÖ´Ù. ´Ù¸¥ Á¶ÆøÀ» »ý¼ºÇÏ´Â Äڵ带 ÀÛ¼ºÇØ º¸ÀÚ.

 

Jopok JebiPa = new Jopok("°­Á¦ºñ", 45, 99);

JebiPa.Intro();

 

ÀÌ·¸°Ô µÇ¸é Á¦ºñÆÄÀÇ µÎ¸ñÀº °­Á¦ºñ°¡ µÈ´Ù. ¹°·Ð Á¦ºñÆĵµ ÀÏÁ¾ÀÇ Á¶Á÷À̹ǷΠÇÑ ¹ø Á¤ÇØÁø µÎ¸ñÀº ¹Ù²Ü ¼ö ¾ø´Ù. ¸¸¾à Çൿ´ëÀå ±æ¿ëÀÌ°¡ °­Á¦ºñ¸¦ ¼÷ûÇÏ°í »õ µÎ¸ñÀÌ µÇ¾ú´Ù¸é Á¦ºñÆÄ´Â ±æ¿ëÀÌÆÄ°¡ µÈ °ÍÀÌÁö ´õ ÀÌ»ó Á¦ºñÆÄ°¡ ¾Æ´Ï´Ù.

6-2-3.³»ºÎ ŸÀÔ

Ŭ·¡½º´Â °ÅÀÇ ¸ðµç °ÍÀ» ´ã´Â ÅëÀ̸ç ÁÖ·Î Çʵå, ¸Þ¼­µå·Î ±¸¼ºµÇÁö¸¸ °®°¡Áö Á¾·ùÀÇ ¸â¹ö¸¦ ´Ù Æ÷ÇÔÇÑ´Ù. ½ÉÁö¾î Ŭ·¡½º°¡ Ŭ·¡½º¸¦ Æ÷ÇÔÇÏ´Â Áßøµµ °¡´ÉÇÏ´Ù. ³»ºÎÀûÀ¸·Î¸¸ »ç¿ëÇÒ Å¸ÀÔÀÌ ÇÊ¿äÇÏ´Ù¸é Ŭ·¡½º ¾È¿¡ Ŭ·¡½º ¼±¾ð¹®À» ÀÛ¼ºÇÑ´Ù.

Æ÷ÇÔµÈ Å¬·¡½º¸¦ ³»ºÎ ŸÀÔ(Nested Type)À̶ó°í ÇÑ´Ù. Ŭ·¡½º »Ó¸¸ ¾Æ´Ï¶ó ±¸Á¶Ã¼³ª ¿­°ÅÇüµµ ³»ºÎ ŸÀÔÀ¸·Î Æ÷Ç﵃ ¼ö ÀÖ´Ù. ¹Ý´ë °³³äÀº ¿ÜºÎ ŸÀÔ(Non Nested Type)ÀÌ¸ç ³×ÀÓ½ºÆäÀ̽º¿¡ ¼Ò¼ÓµÈ´Ù. Áö±Ý±îÁö ÀÛ¼ºÇÑ Human, Time Ŭ·¡½º´Â ¸ðµÎ ¿ÜºÎ ŸÀÔÀÌ´Ù.

 

NestedType

using System;

 

class Time {

     private class Int60 {

          private int Integer;

          public Int60(int avalue) { Value = avalue; }

          public int Value {

              get { return Integer; }

              set { if (value >= 0 && value < 60) Integer = value; }

          }

     }

 

     private int hour;

     private Int60 min, sec;

     public Time(int aHour, int aMin, int aSec) {

          hour = aHour;

          min = new Int60(aMin);

          sec = new Int60(aSec);

     }

     public void OutTime() {

          Console.WriteLine($"{hour}½Ã {min.Value}ºÐ {sec.Value}ÃÊ");

     }

}

 

class CSTest {

     static void Main() {

          Time Now = new Time(12, 34, 56);

          Now.OutTime();

     }

}

½ÇÇà°á°ú

12½Ã 34ºÐ 56ÃÊ

 

Time Ŭ·¡½ºÀÇ min, sec Çʵå´Â 0ÀÌ»ó 60 ¹Ì¸¸ÀÇ Á¤¼ö¿©¾ß ³í¸®ÀûÀ¸·Î ¹®Á¦°¡ ¾ø´Ù. ¹üÀ§¸¦ ÁöÅ°±â À§ÇØ ÇÁ·ÎÆÛƼ³ª ¾×¼¼¼­ ¸Þ¼­µå¸¦ ÁÖ·Î »ç¿ëÇÏÁö¸¸ ¾Æ¿¹ ¹üÀ§°¡ °íÁ¤µÈ ŸÀÔÀ» ¾²¸é ¹®Á¦°¡ ¿øõ Â÷´ÜµÈ´Ù. ÀÌ ¿¹Á¦ÀÇ Int60 Ŭ·¡½º´Â 0 ~ 59·Î Á¦ÇÑµÈ Á¤¼öÇüÀ» Ç¥ÇöÇÑ´Ù.

Int60ÀÇ ¼±¾ð¹®ÀÌ Time Ŭ·¡½º ¼±¾ð¹® ¾È¿¡ Æ÷ÇԵǾî ÀÖ´Ù. ¿ÜºÎ¿¡ ¼±¾ðÇصµ µ¿ÀÛ¿¡´Â ÀÌ»óÀÌ ¾øÁö¸¸ Time ³»ºÎ¿¡¼­¸¸ »ç¿ëµÈ´Ù¸é ±»ÀÌ ¹ÛÀ¸·Î ²ôÁý¾î ³¾ ÇÊ¿ä°¡ ¾ø´Ù. ÇÊ¿äÇÑ Å¸ÀÔÀ» Ŭ·¡½º ³»ºÎ¿¡ ĸ½¶È­ÇÏ¸é ±âµ¿¼ºÀÌ ÁÁ¾ÆÁö´Â ÀåÁ¡ÀÌ ÀÖ´Ù. µµ¿ì¹Ì Ŭ·¡½º¶ó¸é ¾Æ¿¹ Æ÷ÇÔ½ÃÅ°´Â °ÍÀÌ ÁÁ´Ù.

³»ºÎ ŸÀÔµµ ÀÏÁ¾ÀÇ ¸â¹ö¿©¼­ ¾×¼¼½º ÁöÁ¤ÀÚ¸¦ ºÙÀδÙ. private·Î ¼û±â¸é ¾ÈÁ¤¼º°ú ¾÷±×·¹À̵å ÆíÀǼºÀÌ º¸ÀåµÈ´Ù. publicÀ¸·Î ÁöÁ¤ÇÏ¸é ¿ÜºÎ¿¡¼­µµ ³»ºÎ ŸÀÔÀ» »ç¿ëÇÒ ¼ö Àִµ¥ À̶§ ¼Ò¼Ó Ŭ·¡½º¸¦ ¹àÇô Time.Int60 ½ÄÀ¸·Î ĪÇÑ´Ù.

 

Time.Int60 A = new Time.Int60(12);

 

´ÙÀ½Àº Human Ŭ·¡½º¿¡ ³»ºÎ ŸÀÔÀ» Á¤ÀÇÇØ º¸ÀÚ. ³ªÀ̸¦ Ç¥ÇöÇÏ´Â Age Çʵå´Â ³âµµ°¡ ¹Ù²î¸é ¹«È¿ÇØÁö´Â ¹®Á¦°¡ ÀÖ´Ù. ³ªÀ̺¸´Ù´Â »ý³â¿ùÀÏÀ» ÀúÀåÇÏ´Â °ÍÀÌ ´õ ÀϹÝÀûÀÌ°í ½Ç¿ëÀûÀÌ´Ù. ´ÙÀ½ ¿¹Á¦´Â Human Ŭ·¡½º¿¡ ³¯Â¥¸¦ Ç¥ÇöÇÏ´Â Date ³»ºÎ ŸÀÔÀ» ¼±¾ðÇÑ´Ù.

 

Birth

using System;

 

class CSTest {

     static void Main() {

          Human Kim;

          Kim = new Human("±è»óÇü", 1980, 6, 29);

          Kim.Intro();

     }

}

 

class Human {

     private class Date {

          int y, m, d;

          public Date(int ay, int am, int ad) {

              y = ay;

              m = am;

              d = ad;

          }

          public void OutDate() {

              Console.WriteLine($"{y}³â {m}¿ù {d}ÀÏ");

          }

     }

     private string Name;

     private Date Birth;

     public Human(string aName, int ay, int am, int ad) {

          Name = aName;

          Birth = new Date(ay, am, ad);

     }

     public void Intro() {

          Console.Write("À̸§:" + Name);

          Console.Write(", »ý³â¿ùÀÏ:");

          Birth.OutDate();

     }

}

½ÇÇà°á°ú

À̸§:±è»óÇü, »ý³â¿ùÀÏ:1980³â 6¿ù 29ÀÏ

 

Human Ŭ·¡½º´Â À̸§À» ±â¾ïÇÏ´Â Name Çʵå¿Í »ý³â¿ùÀÏÀ» ±â¾ïÇÏ´Â Birth Çʵå·Î ±¸¼ºµÇ¸ç Birth´Â ³»ºÎ ŸÀÔÀÎ Date ŸÀÔÀÌ´Ù. ³ªÀ̸¦ ±â¾ïÇÏ´Â ¹æ½Ä¿¡ ºñÇØ ÇöÀç ³âµµ·ÎºÎÅÍ Á¤È®ÇÑ ³ªÀ̸¦ °è»êÇÒ ¼ö ÀÖ¾î ¹ü¿ëÀûÀÌ´Ù. Date ³»ºÎ ŸÀÔ¿¡´Â º°´Ù¸¥ ±â´ÉÀ» ³ÖÁö ¾Ê¾Ò´Âµ¥ ÇÊ¿äÇÏ´Ù¸é À½¾ç·Â º¯È¯, ³¯Â¥ÀÇ À¯È¿ ¹üÀ§ °Ë»ç µîÀÇ ±â´ÉÀ» ´õ ³ÖÀ» ¼ö ÀÖ´Ù. ³»ºÎ ŸÀÔÀÇ ±â´ÉÀÌ ¸¹¾ÆÁö¸é ¿ÜºÎ ŸÀÔÀÌ ÇÒ ÀÏÀº ÁÙ¾îµç´Ù. Ŭ·¡½ºÀÇ Áßø Ƚ¼ö¿¡´Â Á¦ÇÑÀÌ ¾ø´Ù. ¿©±â¼­ ¸¸µç Human Ŭ·¡½º¸¦ Jopok Ŭ·¡½º ³»ºÎ¿¡ Æ÷ÇÔ½ÃÅ°¸é 3Áß ÁßøÀÌ´Ù.