¼Ò¼³°°ÀºC#  Á¦3°­ÀÇ C# ½ÃÀÛÇϱ⠠07. ½ºÅÂÆ½ ¸Þ¸ð¸® »ý¼º°ú Á¢±ÙÀÇ ¹®Á¦  

 

 

3.7 ½ºÅÂÆ½ ¸Þ¸ð¸® »ý¼º°ú Á¢±ÙÀÇ ¹®Á¦

 

ÀÌÂë¿¡¼­ ¿©·¯ºÐµéÀº ½ºÅÂÆ½(static)ÀÇ ¸Þ¸ð¸®´Â ¾ðÁ¦ »ý±â¸ç ¾î¶»°Ô Á¢±ÙÇÒ ¼ö ÀÖÀ»±î? ÇÏ´Â Àǹ®À» °¡Áú ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. Á¤´äÀº ½ºÅÂÆ½ÀÌ ¼±¾ð µÇ¾î ÀÖ´Ù¸é °´Ã¼¸¦ »ý¼ºÇϱâ Àü¿¡ Ŭ·¡½ºÀÇ À̸§À¸·Î ½ºÅÂÆ½¿¡ Á¢±ÙÇÏ´Â ¼ø°£ ½ºÅÂÆ½ ¸Þ¸ð¸®´Â »ý¼ºµË´Ï´Ù. ±×·³ °´Ã¼°¡ »ý¼ºµÇ±âµµ Àü¿¡ ½ºÅÂÆ½(static) ¸Þ¸ð¸®°¡ »ý¼ºµÈ´Ù¸é °´Ã¼ »ý¼º ÀÌÀü¿¡ Á¢±ÙÀ» ÇÒ ¼ö ÀÖÁö ¾ÊÀº°¡? ¶ó°í Áú¹®ÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ÀÌ Áú¹®ÀÇ ´äÀº YesÀÔ´Ï´Ù. °´Ã¼ »ý¼º ÀÌÀü¿¡ ¸Þ¸ð¸®¿¡ Á¢±ÙÇÏ´Â ½ºÅÂÆ½ÀÇ ¹«·ÊÇÔÀ» °æÇèÇØ º¸µµ·Ï ÇÏÁÒ.

 

&

StaticAccess.cs

Ü static ¸â¹öÇʵ忡 ´ëÇÑ Á¢±ÙÀÇ ¿¹Á¦

using System;

public class StaticAccess  {

         public static int sint = 0;

         public int nint = 0;

         public static void Main()  {

                    StaticAccess.sint = 3333;

                           Console.WriteLine("staticÁ÷Á¢Á¢±Ù:" + StaticAccess.sint);

       }//main

}//class

C:\C#Example\03>csc StaticAccess.cs

C:\C#Example\03>StaticAccess

staticÁ÷Á¢Á¢±Ù:3333

 

¡®StaticAccess.sint=3333;¡¯ ÀÌ·± Àϵµ ÀÖ½À´Ï´Ù. Ŭ·¡½ºÀÇ À̸§À¸·Î ¸â¹öÇʵ忡 Á¢±ÙÇϰí ÀÖ½À´Ï´Ù. ÇϳªÀÇ µ¥ÀÌÅÍŸÀÔÀ¸·Î °´Ã¼º¯¼ö¸¦ ¼±¾ðÇϰí new ¿¬»êÀÚ¸¦ ÀÌ¿ëÇÏ¿© ¸Þ¸ð¸®¸¦ »ý¼ºÇÑ ÈÄ »ý¼ºÀÚ¿¡¼­ ÃʱâÈ­ ÀÛ¾÷À» ÇÏ¸é ¿ÏÀüÇÑ °´Ã¼°¡ ¿Ï¼ºµË´Ï´Ù. °´Ã¼°¡ ¿Ï¼ºµÈ ÈÄ ¸â¹ö¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Ù°í ÇßÁö¸¸ ½ºÅÂÆ½Àº ´Ù¸¨´Ï´Ù. ½ºÅÂÆ½Àº Ŭ·¡½ºÀÇ À̸§À¸·Î ¹Ù·Î Á¢±ÙÇϰí ÀÖ½À´Ï´Ù. ±× ÀÌÀ¯´Â °´Ã¼°¡ ¸Þ¸ð¸®¸¦ ÇÒ´ç ¹Þ±â Àü¿¡ ½ºÅÂÆ½ ¸â¹öÇʵå´Â ¸Þ¸ð¸®¸¦ ÇÒ´ç¹Þ°í ÃʱâÈ­ µÇ±â ¶§¹®ÀÔ´Ï´Ù. °ÅÀÇ ¿¹¿Ü¿Í °°Àº ±âÀÌÇÑ Çö»óÀÌÁÒ.

 

½ºÅÂÆ½ÀÇ Á¢±ÙÀº ±Ùº»ÀûÀ¸·Î Ŭ·¡½ºÀÇ À̸§À¸·Î¸¸ Á¢±ÙÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÌ °´Ã¼¸¦ »ý¼ºÇÏ°í °´Ã¼¿¡¼­ Á¡(.)À» Âï°í ½ºÅÂÆ½¿¡ Á¢±ÙÇÑ´Ù¸é ¸Å¿ì ÁïÈïÀûÀÎ ¿¡·¯¸¦ ¸¸³ª°Ô µË´Ï´Ù.

 

 

&

StaticAccess2.cs

Ü staticÀÇ Á¢±ÙÇÒ ¶§ÀÇ ¿À·ù

using System;

public class StaticAccess2  {

       public static int sint = 0;

            public int nint = 0;

         public static void Main()  {

                   StaticAccess2 sa = new StaticAccess2();

                          sa.sint =555;//Ʋ¸° ±¸¹®

                          StaticAccess2.sint = 3333;// ¸Â´Â ±¸¹®

         }//main

}//class

C:\C#Example\03>csc StaticAccess2.cs

StaticAccess2.cs(7,3): error CS0176: 'StaticAccess2.sint' Á¤Àû ¸â¹ö´Â ÀνºÅϽº

        ÂüÁ¶¸¦ »ç¿ëÇÏ¿© ¾×¼¼½ºÇÒ ¼ö ¾ø½À´Ï´Ù. ´ë½Å Çü½Ä À̸§À» »ç¿ëÇÏ¿©

        ÇÑÁ¤ÇϽʽÿÀ.

 

½ºÅÂÆ½À» »ç¿ëÇÒ ¶§ À§ÀÇ °æ¿ì´Â ¾ÆÁÖ Á¶½ÉÇØ¾ß ÇÕ´Ï´Ù. ÄÄÆÄÀÏÁ¶Â÷ µÇÁö ¾Ê´Â °ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù. ±×¸®°í ¶Ç ÇѰ¡Áö ÁÖÀÇ ÇØ¾ß ÇÏ´Â »çÇ×Àº ¾Æ¹«¸® ½ºÅÂÆ½À̶ó°í ÇÏ´õ¶óµµ private°ú publicÀº ÁöÄÑ¾ß ÇÕ´Ï´Ù. ±×·¡¼­ Ŭ·¡½ºÀÇ À̸§, Áï µ¥ÀÌÅÍŸÀÔÀ¸·Î Á÷Á¢Á¢±Ù ÇÒ ¼ö ÀÖ´Â °ÍÀº public static ¸â¹öÇʵåÀÔ´Ï´Ù.

 

¢Ã ½ºÅÂÆ½(static) ¸â¹öÇʵå

q                ¸ðµç Ŭ·¡½º¿¡¼­ °øÀ¯Çϱâ À§ÇÑ ¸â¹ö¸¦ ¼±¾ðÇÏ´Â µ¥ »ç¿ë

q                º¯¼ö, ¸Þ¼­µå, ¼Ó¼º, ¿¬»êÀÚ ¹× »ý¼ºÀÚ¿¡ »ç¿ëÇÒ ¼ö ÀÖÀ½

q                Àε¦¼­, ¼Ò¸êÀÚ¿¡´Â »ç¿ëÇÒ ¼ö´Â ¾øÀ½

q                Ŭ·¡½º³»ÀÇ ¸ðµç °÷¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â °øÀ¯º¯¼ö

 



jabookÀúÀÚ¸íÇÔ
Á¦¸ñ:¼Ò¼³°°ÀºC# Á¦3°­ÀÇ
ÀúÀÚ:ÃÖ¿µ°ü