ÀºÆóÈ(Encapsulation)¸¦ ¼³¸íÇÒ ¶§ private ¸â¹öÇʵ忡 Á¢±ÙÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æ º¸±â À§Çؼ public ¸Þ¼µå¸¦ ÀÌ¿ëÇÑ´Ù°í ¹è¿ü½À´Ï´Ù. private ¸â¹öÇʵå Çϳª¿¡ µÎ °³ÀÇ Set, Get ¸Þ¼µå¸¦ ¸¸µç °ÍÀº private ¸â¹öÇʵ忡 Á¢±ÙÇÒ ¼ö ¾ø±â ¶§¹®¿¡ public ¸Þ¼µå¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ý·ÐÀûÀÎ Ãø¸éÀ̾ú½À´Ï´Ù. ÇÏÁö¸¸ ÀÌ·¯ÇÑ °ÍÀ» C#¿¡¼´Â ÀϹÝÈ(ìéÚõûù)½ÃÄѼ ¼Ó¼º(Property)À̶ó´Â °ÍÀ» ¼Ò°³Çϰí ÀÖ½À´Ï´Ù. ¸Þ¼µå Çü½ÄÀ̳ª ¼Ó¼ºÇü½ÄÀº ±â´É¿¡ À־ ¿ÏÀüÇÏ°Ô °°½À´Ï´Ù. ÇÏÁö¸¸ ¼Ó¼ºÀº ¸Þ¼µå Çü½ÄÀÇ Set, GetÀ» ´Ü¼øÈ ½ÃÄѵξú´Ù´Âµ¥ ±× Àǹ̰¡ ÀÖ½À´Ï´Ù.
Ŭ·¡½º ³»ºÎ ¸Þ¼µåÀÇ ±¸ÇöÀ» ¼û±â°í ¸â¹öÇʵ忡 ´ëÇÑ Á÷Á¢ÀûÀÎ Á¢±ÙÀ» Çã¿ëÇÏÁö ¾Ê´Â Àº´ÐÈ ¶Ç´Â ĸ½¶ÈÀÇ ¹æ¹ýÀ¸·Î ¸Þ¼µå¸¦ ÀÌ¿ëÇØ ¿Ô½À´Ï´Ù. Áï, privateÇʵåÀÇ °ªÀ» ¾ò¾î³»°Å³ª ÇÒ´çÇÏ´Â ¸ñÀûÀÇ Á¢±Ù ¸Þ¼µå¸¦ ¸¸µé¾î »ç¿ëÇß½À´Ï´Ù. ±× Äڵ带 º¸´Ù ¸íÄèÇÏ°Ô ¸¸µé¾î ÁÖ±â À§ÇÑ Á¦°øÇÏ´Â ¹æ¹ýÀÌ ¼Ó¼º(Property)ÀÔ´Ï´Ù.
|
¢Ã ¼Ó¼º(Properties) |
|
q ¸â¹öÇʵ忡 °ªÀ» ÇÒ´çÇÏ´Â ¹æ¹ý q Set°ú Get ¸Þ¼µåÀÇ Á¤ÇüÈµÈ ÇüÅ |
¼Ó¼ºÀº set/get Á¢±ÙÀÚ¸¦ °¡Áö´Â µî, ¾à°£ ƯÀÌÇÑ ¼ºÁúÀ» °¡Áö°í ÀÖÁö¸¸ ¸Þ¼µåµµ º¯¼ö¶ó°í »ý°¢ÇßµíÀÌ ÀÏ´ÜÀº Çʵå(field) Áï, º¯¼ö¶ó°í »ý°¢ÇϽøé ÀÌÇØÇϴµ¥ µµ¿òÀÌ µÉ °ÍÀÔ´Ï´Ù. ±×¸®°í ¼Ó¼ºÀº »ç¿ëÀÚ Ãø¸é¿¡¼ º¸¸é ¸Þ¼µå º¸´Ù´Â Çʵ忡 ´õ °¡±õ½À´Ï´Ù. ±×·¡¼ À̰ÍÀ» ½º¸¶Æ®Çʵå(smart field)¶ó°í ºÎ¸¨´Ï´Ù. ±×·³ ¸ÕÀú ¼Ó¼ºÀÇ ÀϹÝÀû ±¸¹®À» º¸°Ú½À´Ï´Ù.
|
¼Ó¼º(Propertiy) Çü½Ä |
|
private µ¥ÀÌÅÍŸÀÔ ¼Ó¼º¸í; public µ¥ÀÌÅÍŸÀÔ ¼Ó¼º¸í{ //¼Ó¼º¸â¹ö set { //¼Ó¼º ¼³Á¤ ±¸Çö } get { //¼Ó¼º ¹Ýȯ ±¸Çö } }//¼Ó¼º |
Ç¥ 2-6 ¼Ó¼º(Property)ÀÇ Çü½Ä
¿©±â¼ ¿ì¸®°¡ ´«¿©°Ü º¸¾Æ¾ß ÇÒ Á¡ÀÌ set Á¢±ÙÀÚ¿Í get Á¢±ÙÀÚÀÔ´Ï´Ù. À̸§¿¡¼µµ ÃæºÐÈ÷ ÁüÀÛÇÒ ¼ö ÀÖµí set Á¢±ÙÀÚ´Â ¸â¹ö¿¡ ¾²±â(Write access)¸¦ Á¦°øÇØ ÁÖ¸ç, get Á¢±ÙÀÚ´Â Àбâ(Read Access)¸¦ Á¦°øÇØ ÁÝ´Ï´Ù. ÀÌ´Â ¿ì¸®°¡ ¾Õ¼ »ìÆìº», private µ¥ÀÌÅÍ¿¡ Á¢±ÙÇϱâ À§ÇÏ¿© public ¸Þ¼µå 2°³¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ý·Ð°ú µ¿ÀÏÇÑ ¿ø¸®ÀÔ´Ï´Ù. ¸Þ¼µå 2°³¸¦ ÀÌ¿ëÇÏ¿© private ¸â¹öÇʵ忡 Á¢±ÙÇÏ´Â °ÍÀ» °£´ÜÇÏ°Ô Çß´Ù°í º¼ ¼ö ÀÖ½À´Ï´Ù.
set°ú getÀÇ ¸Þ¼µåÀÔÀå¿¡¼ º»´Ù¸é getÀº ³»ºÎÀÇ °ÍÀ» ¿ÜºÎ·Î ³»º¸³¾ ¶§ ¸®ÅÏ(return)À» »ç¿ëÇÏ¸é µË´Ï´Ù. ÇÏÁö¸¸ setÇÒ ¶§ ¿ÜºÎ·ÎºÎÅÍ µé¾î ¿À´Â µ¥ÀÌÅÍ´Â ¸Å°³º¯¼ö°¡ ÀÖ¾î¾ß ÇÏÁö ¾Ê°Ú½À´Ï±î? Áï, set ¸Þ¼µå ÀÔÀå¿¡¼ º»´Ù¸é ¸Þ¼µåÀÇ ¸Å°³º¯¼ö¸¦ ÅëÇØ¼ °ªÀ» ¼ÂÆÃ ÇÒ ¼ö ÀÖÀ¸´Ï±î¿ä. ÀÌ·¯ÇÑ ¸Å°³º¯¼öÀÇ ¿ªÇÒÀ» ´ë½ÅÇØ ÁÖ´Â °ÍÀÌ value¶ó´Â °ÍÀÔ´Ï´Ù. ¼Ó¼ºÀ» ¸¸µé ¶§ set ³»¿¡¼ value¶ó´Â ¸Å°³º¯¼ö °ªÀ» µðÆúÆ®·Î ¿ÜºÎ¿¡¼ µé¾î ¿À´Â °ªÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
|
¢Ã setÀÇ value |
|
q set ³»¿¡¼ value¶ó´Â ¸Å°³º¯¼ö °ªÀ» µðÆúÆ®·Î ¿ÜºÎ¿¡¼ µé¾î ¿À´Â °ªÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. q ¡®value¡¯´Â set Á¢±ÙÀÚ°¡ °®´Â µðÆúÆ® ÀμöÀÔ´Ï´Ù. |
¼Ó¼ºÀº set°ú getÀÇ µÎ Á¢±ÙÀÚ°¡ ¹Ýµå½Ã °°ÀÌ ¾²ÀÏ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. Àбâ Àü¿ëÀÇ ¼Ó¼ºÀ» ±¸ÇöÇÑ´Ù¸é get Á¢±ÙÀÚ¸¸ ¾²¸é µÇ°í, ¹Ý´ë·Î ¾²±â Àü¿ëÀÇ ¼Ó¼ºÀ» ±¸ÇöÇÑ´Ù¸é set Á¢±ÙÀÚ¸¸ ÀÌ¿ëÇÏ¸é µÇ´Â °ÍÀÔ´Ï´Ù. ±×·³ ¿¹Á¦¸¦ º¸¸ç ´õ »ý°¢ÇØ º¸±â·Î ÇÏÁÒ. ÀÌ ¿¹Á¦´Â ´Ü¼øÈ÷ ¼Ó¼ºÀ» ÀÌ¿ëÇÏ¿© À̸§À» private ¸â¹öÇʵ忡 ÀúÀå½ÃŰ°í ´Ù½Ã ¹ÝȯÇÏ´Â °£´ÜÇÑ ÇÁ·Î±×·¥ÀÔ´Ï´Ù.
|
& |
Proptest.cs |
Ü ¼Ó¼º »ç¿ë¿¡ ´ëÇÑ ¿¹Á¦ |
|
using System; class PropTest{ private string name; // ¼Ò¹®ÀÚÀ̸§ public string Name{ // ´ë¹®ÀÚÀ̸§ get { return name; } set { name = value+" ´Ô ¹Ý°©½À´Ï´Ù."; } } } public class PropMain{ public static void Main(){ PropTest pt = new PropTest(); pt.Name = "È«±æµ¿"; string na = pt.Name; Console.WriteLine("À̸§ : {0}", na); }//main }//class | ||
|
C:\C#Example\02>csc PropTest.cs C:\C#Example\02>PropTest À̸§ : È«±æµ¿ ´Ô ¹Ý°©½À´Ï´Ù. | ||
¼Ò½º¸¦ º¸½Ã¸é ¸ø º¸´ø °ÍÀÌ ÀÖ½À´Ï´Ù. set Á¢±ÙÀÚÀÇ ³»ºÎ¿¡ ÀÖ´Â ¡®value¡¯¶ó´Â °ÍÀÔ´Ï´Ù.
n name = value+" ´Ô ¹Ý°©½À´Ï´Ù.";
¡®value¡¯´Â set Á¢±ÙÀÚ°¡ °®´Â µðÆúÆ® ÀμöÀÔ´Ï´Ù. À̰ÍÀº ¿ÜºÎ·ÎºÎÅÍ °ªÀ» ¹Þ¾Æ ³Ñ°ÜÁÖ´Â ¿ªÇÒÀ» Çϰí ÀÖ½À´Ï´Ù. ±×¸®°í ÀÌ·¸°Ô ¸¸µç Name ¼Ó¼ºÀ» ¾Æ·¡ PropMain Ŭ·¡½ºÀÇ Main() ¸Þ¼µå¿¡¼ »ç¿ëÇϰí ÀÖ´Â °ÍÀ» º¸¸é public Çʵ忡 Á¢±Ù ÇÏ´Â °Í°ú °°Àº ¹æ½ÄÀ¸·Î Á¢±ÙÇÏ´Â °ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù.
n pt.Name = "È«±æµ¿";
n string na = pt.Name;
¼±¾ðÇÏ´Â ÇüÅÂ¿Í ´õºÒ¾î ¿Ö À̰͵µ ÇʵåÀÇ ÇÑ Á¾·ù¶ó°í Çß´ÂÁö ÀÌÇØ°¡ µÉ °ÍÀÔ´Ï´Ù. °ªÀÌ ³Ñ¾î°¡´Â ¼ø¼¸¦ º¸¸é, ¿ÜºÎ Ŭ·¡½º¿¡¼ Á¡ Âï°í È£ÃâÇÏ¸é µ¥ÀÌÅ͸¦ ÀúÀå½ÃŰ°Å³ª Àб⿡ µû¶ó ¼Ó¼ºÀÇ set/get Á¢±ÙÀÚ°¡ Á¤ÀÇÇϰí ÀÖ´Â °ÍÀÌ ½ÇÇàµÇ´Â °ÍÀÔ´Ï´Ù. Áï, pt.NameÀ¸·Î Çʵ忡 ¡°È«±æµ¿¡±À̶õ À̸§À» ÀúÀå½ÃÄÑÁÖ°í, ´Ù½Ã pt.NameÀ¸·Î ºÒ·¯¿À´Â °ÍÀÔ´Ï´Ù.
ÀÌ·¸µí ¼Ó¼ºÀº private Çʵ忡 Á¢±ÙÇϱâ À§ÇØ »ç¿ëÇÏ´Â ¸Þ¼µå¿Í °°Àº ¿ªÇÒÀ» ÇÏÁö¸¸, ±×¿Í ´Ù¸¥ Á¡Àº ¿ÜºÎ Ŭ·¡½º¿¡¼ Çʵ忡 º¸´Ù Á÷°üÀûÀ¸·Î Á¢±ÙÇÒ ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù. Áï, ±× Çʵ尡 publicÀÎÁö ¾Æ´ÑÁö, ¾Æ´Ï¶ó¸é Á¢±Ù ¸Þ¼µåÀÇ À̸§Àº ¾î¶»°Ô µÉ±î ÇÏ´Â ÃßÃøÀ̳ª ¹®¼¸¦ ã¾Æº¸´Â ¼ö°í¸¦ ´ú°Ô µÇ´Â °ÍÀÔ´Ï´Ù. Àå¼Ò¿¡ µû¶ó Àß »ç¿ëÇÑ´Ù¸é, ÄÚµåÀÇ °£°á¼º°ú ¸íÈ®¼ºÀ» ¾òÀ» ¼ö ÀÖ´Â ¾µ¸¸ÇÑ °ÍÀ¸·Î ½ÇÁ¦·Îµµ ´å³Ý ¶óÀ̺귯¸®ÀÇ ¸¹Àº Ŭ·¡½º³ª ±¸Á¶Ã¼¿¡¼µµ °ªÀ» ¼³Á¤ÇÏ°í ¾ò±â À§ÇÑ ¹æ¹ýÀ¸·Î ¼Ó¼ºÀÌ ¸¹ÀÌ