Ŭ·¡½º ³»ºÎ¿¡´Â ¸¹Àº µ¥ÀÌÅ͵éÀÌ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ µ¥ÀÌÅ͵éÀº °ªÀÇ ÇÒ´çÀ» ±âº»À¸·Î Çϰí ÀÖÀ¸¸ç ±× °ªÀ» ´Ù½Ã »ç¿ëÇÏ´Â °ÍÀ» ¸ñÀûÀ¸·Î Çϰí ÀÖ½À´Ï´Ù. 2.3Àý¿¡ ³ª¿À´Â ¿¹¿¡¼ publicÀ̶ó´Â Ű¿öµå¸¦ »ç¿ëÇß½À´Ï´Ù. ÀÌ Å°¿öµåÀÇ °³³äÀº °ªÇÒ´çÀ» Á÷Á¢ÀûÀ¸·Î ÇÒ ¼ö ÀÖ´À³Ä ¾ø´À³Ä¿¡ ÁÖ¸ñÀûÀÌ ÀÖ½À´Ï´Ù. ¡®°ªÇÒ´çÀ» ÇÒ ¼ö ÀÖ´Ù¡¯ ¶ó°í Ç¥½ÃÇϱâ À§Çؼ publicÀ̶ó´Â Ű¿öµå¸¦ »ç¿ëÇÕ´Ï´Ù. ´ÙÀ½ÀÇ ¿¹Á¦´Â °ªÇÒ´çÀ» À§ÇÑ ¿¹Á¦ÀÔ´Ï´Ù.
|
& |
AccessTest.cs |
Ü Á¢±ÙÁöÁ¤¿¡ µû¸¥ °ªÇÒ´çÀ» À§ÇÑ ¿¹Á¦ |
|
using System; public class Family { public int age; public long height; private float weight; } public class AccessTest { public static void Main() { Family sister = new Family(); sister.age =100; sister.height = 170L; sister.weight = 67.0F;//¿¡·¯¹ß»ý Console.WriteLine("age : {0}" , sister.age); Console.WriteLine("height : {0}" , sister.height); Console.WriteLine("weight : {0}" , sister.weight);//¿¡·¯¹ß»ý }//main }//class | ||
|
C:\C#Example\02>csc AccessTest.cs AccessTest.cs(12,3): error CS0122: º¸È£ ¼öÁØ ¶§¹®¿¡ 'Family.weight'¿¡ ¾×¼¼½ºÇÒ ¾ø½À´Ï´Ù. AccessTest.cs(15,38): error CS0122: º¸È£ ¼öÁØ ¶§¹®¿¡ 'Family.weight'¿¡ ¾×¼¼½ºÇÒ ¼ö ¾ø½À´Ï´Ù. | ||
Family¶ó´Â Ŭ·¡½º¸¦ ÀÌ¿ëÇÏ¿© sister º¯¼ö¸¦ ¼±¾ðÇÑ ÈÄ new ¿¬»êÀÚ¸¦ ÀÌ¿ëÇÏ¿© ¸Þ¸ð¸®¸¦ »ý¼ºÇÑ »óÅ¿¡¼ sister.age¶ó´Â Ç¥ÇöÀ» »ç¿ëÇϰí ÀÖ½À´Ï´Ù. À̰ÍÀº publicÀ¸·Î Á¡(.)À» Âï°í ÇÒ´çÇØµµ µÈ´Ù´Â Çã¶ôÀÎ °ÍÀÔ´Ï´Ù. ÀÌ·¯ÇÑ Çã¶ôÀ» ÇØ Áִ Ű¿öµå¸¦ ¿ì¸®´Â Á¢±ÙÁöÁ¤ÀÚ(Access Identifier)À̶ó°í ÇÕ´Ï´Ù. Á¢±ÙÁöÁ¤Àº ¸Þ¸ð¸®°¡ »ý¼ºµÈ »óÅ¿¡¼ ÀÌ·ç¾îÁö´Â Á¢±ÙÁöÁ¤ÀÔ´Ï´Ù. publicÀÇ ¹Ý´ëµÇ´Â °³³äÀº ¹Ù·Î privateÀÔ´Ï´Ù. privateÀÏ °æ¿ì¿¡ public°ú °°Àº ¹æ¹ýÀ¸·Î È£ÃâÇÑ´Ù¸é ¿¡·¯¸¦ ¸¸³ª°Ô µÉ °ÍÀÔ´Ï´Ù. À§ÀÇ ¿¹Á¦¿¡¼ weight´Â privateÀÔ´Ï´Ù. ÇÏÁö¸¸ À̰ÍÀ» ¹«½ÃÇϰí Á÷Á¢Á¢±ÙÀ» ½ÃµµÇϰí Àֱ⠶§¹®¿¡ ÄÄÆÄÀϴܰ迡¼ ¿¡·¯¸¦ ¹ß»ýÇÏ°Ô µÇ´Â °ÍÀÔ´Ï´Ù.
´ç¿¬È÷ Á¢±ÙÀ» ¸øÇÏ°Ô ¸·¾Æ ³õ¾Ò±â ¶§¹®ÀÔ´Ï´Ù. ÀÌ¿Í °°Àº °æ¿ì¿¡ privateÀÇ ¸ñÀûÀº µÎ °¡Áö·Î ³ª´©¾î¼ »ý°¢ÇØ º¼ ¼ö ÀÖ½À´Ï´Ù.
1 privateÀ» »ç¿ëÇÏ´Â ÀÌÀ¯
n Ŭ·¡½º ³»ºÎ¿¡¼¸¸ »ç¿ëÇϱâ À§Çؼ
n ¿ÜºÎ¿¡¼ µé¾î¿À´Â µ¥ÀÌÅͶó ÇÒÁö¶óµµ Á÷Á¢ÀûÀÎ ÇҴ纸´Ù´Â °£Á¢ÀûÀ¸·Î ÇÒ´çÇϱâ À§Çؼ
Ŭ·¡½º ³»ºÎ¿¡¼ »ç¿ëÇϱâ À§ÇÑ ¸ñÀûÀ¸·Î ¿ÜºÎ¿¡¼ Á¢±Ù ¸øÇÑ´Ù´Â °ÍÀº ¾î´À Á¤µµ ÀÌÇØ ÇÒ ¼ö ÀÖ´Â ÀÏÀÔ´Ï´Ù¸¸ °£Á¢ÀûÀ¸·Î ÇÒ´çÇϱâ À§ÇÑ °ÍÀº ¾à°£ ¾Ö¸ÅÇÏÁö ¾Ê½À´Ï±î? ÀÌ ¸»Àº private¿¡ µ¥ÀÌÅ͸¦ ÇÒ´çÇϱâ À§Çؼ ¸Þ¼µå¸¦ ÀÌ¿ëÇÑ´Ù´Â ¶æÀÔ´Ï´Ù. Áï, Ŭ·¡½º ³»ºÎ¿¡ °ªÀ» Á÷Á¢ÇÒ´çÇϱ⠺¸´Ù´Â ¸Þ¼µå¸¦ ÅëÇØ¼ Á¤Á¦ÀÇ °úÁ¤À» °ÅÄ£ ÈÄ Á¤Á¦µÈ µ¥ÀÌÅ͸¦ ³»ºÎÀÇ º¯¼ö¿¡ ÇÒ´çÇϰڴٴ ¶æÀÔ´Ï´Ù. ÇÊ¿ä ¾ø´Â ºÎºÐ°ú À߸øµÈ ºÎºÐÀ» °É·¯³»°í Á¤Á¦Çؼ ²À ÇÊ¿äÇÑ µ¥ÀÌÅ͸¸À» ³»ºÎÀÇ º¯¼ö¿¡ º¸°üÇϰڴٴ ¶æÀÔ´Ï´Ù.
|
¢Ã public ¸Þ¼µå¸¦ ÀÌ¿ëÇÑ private ¸â¹öÀÇ Á¢±Ù |
|
q ¿ÜºÎ·ÎºÎÅÍ µé¾î¿À´Â µ¥ÀÌÅ͸¦ ¸Å°³º¯¼ö(Parameter)¸¦ ÅëÇØ ¹Þ¾Æ¼ ³»ºÎÀÇ ¸â¹öÇʵ忡 Àü´ÞÇØ ÁÖ´Â ¹æ¹ýÀ» »ç¿ë. q ¹ÛÀ¸·Î ³»º¸³¾ ¶§´Â ¸Þ¼µåÀÇ ¸®ÅÏ(Return)À» ÅëÇØ¼ ¿ÜºÎ·Î Àü´ÞÇϰí ÀÖ´Ù. |
¸Þ¼µå´Â ³»ºÎ¿¡ Àֱ⠶§¹®¿¡ privateÀ̵ç publicÀÌµç ¸ðµç ³»ºÎÀÇ ¸â¹öÇʵåµéÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×¸®°í ¸Þ¼µå¶õ ³ðÀº ¿ÜºÎ¿¡¼ ³»ºÎ·Î ¿¬°áµÇ´Â Åë·Î¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. ÀÌ Åë·Î°¡ ¹Ù·Î ¸Å°³º¯¼öÀÔ´Ï´Ù. ±×¸®°í ¸Þ¼µå´Â privateÀÇ µ¥ÀÌÅ͸¦ ³»ºÎ¿¡¼ ¿ÜºÎ·Î ³»º¸³»±â À§ÇÑ Åë·Î ¶ÇÇÑ °¡Áö°í ÀÖ½À´Ï´Ù. ÀÌ ¶§´Â ¸®ÅÏÀ̶ó´Â °ÍÀ» ÀÌ¿ëÇÕ´Ï´Ù. ´ÙÀ½ÀÇ ¿¹Á¦´Â ¸Þ¼µå¸¦ ÀÌ¿ëÇÏ¿© private¿¡ Á¢±ÙÇÏ´Â ¹æ¹ýÀ» º¸¿© ÁÖ°í ÀÖ½À´Ï´Ù.
|
& |
TestPrivate.cs |
Ü private¿¡ Á¢±ÙÇϱâ À§ÇÑ ¿¹Á¦ |
|
using System; public class TestPrivate{ private int top_secret; public void SetWeight(int my_weight){ top_secret = my_weight; } public int GetWeight(){ return top_secret; } }//class public class TestMain { public static void Main() { int s; TestPrivate we = new TestPrivate(); we.SetWeight(70); s = we.GetWeight(); Console.WriteLine("private¸â¹öÀÇ °ªÀº: " + we.GetWeight()); Console.WriteLine("private¸â¹öÀÇ °ªÀº: " +s); }//main }//class | ||
|
C:\C#Example\01>csc TestPrivate.cs C:\C#Example\01> TestPrivate age : 100 height : 170 weight : 67 | ||
private ¸â¹öÇʵ忡 Á÷Á¢ Á¢±ÙÀ» ÇÒ ¼ö ¾ø±â ¶§¹®¿¡ ¿ÜºÎ·ÎºÎÅÍ µé¾î¿À´Â µ¥ÀÌÅ͸¦ ¸Å°³º¯¼ö¸¦ ÅëÇØ¼ ³»ºÎÀÇ ¸â¹öÇʵ忡 Àü´ÞÇØ ÁÖ¾ú½À´Ï´Ù. ¿ÜºÎ·Î ³»º¸³¾ ¶§´Â ¸Þ¼µåÀÇ ¸®ÅÏÀ» ÅëÇØ¼ Àü´ÞÇÏ¿´½À´Ï´Ù. ÀÌ·¸°Ô ÇÑ´Ù¸é private ¸â¹öÇʵåÀÇ Á¢±ÙÀº ¾ÆÁÖ ¿ì¾ÆÇÏ°Ô ÇØ°á µÇ´Â °ÍÀÔ´Ï´Ù.
| jabookÀúÀÚ¸íÇÔ |
|
Á¦¸ñ:¼Ò¼³°°ÀºC# Á¦2°ÀÇ ÀúÀÚ:ÃÖ¿µ°ü |