¼Ò¼³°°ÀºC#  Á¦3°­ÀÇ C# ½ÃÀÛÇϱ⠠06. static Ű¿öµå  

 

3.6 static Ű¿öµå

 

Main() ¸Þ¼­µå ¾Õ¿¡ Áö±Ý±îÁö ¼³¸í µå¸®Áö ¾ÊÀº Ű¿öµå°¡ Çϳª ÀÖ½À´Ï´Ù. ÀÌ ½ºÅÂÆ½(static) ¶§¹®¿¡ Main() ¸Þ¼­µå´Â ¿ÜºÎ¿¡ ÀÖ´Ù°í »ý°¢Ç϶ó°í Çß½À´Ï´Ù. óÀ½ ÇÁ·Î±×·¡¹ÖÀ» ÇÏ´Â »ç¶÷µé¿¡°Ô ½ºÅÂÆ½(static)Àº Ãʱ⿡ ¾ÆÁÖ ¸¹Àº È¥µ¿À» À¯¹ßÇÕ´Ï´Ù. ÀÌ Àý¿¡¼­´Â ½ºÅÂÆ½¿¡ ´ëÇØ¼­ »ìÆì º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

¢Ã static Ű¿öµå

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

 

½ºÅÂÆ½ ¸â¹öÇʵå

static Ű¿öµå´Â ½ºÅÂÆ½ ¸â¹öÇʵåÀÇ °³³äÀ» ³íÇÏÁö ¾Ê°í¼­´Â ¼³¸íÀÌ ºÒ°¡´ÉÇÕ´Ï´Ù. 6°³ÀÇ ¸â¹öÇʵ带 °¡Áö°í Àִ Ŭ·¡½º°¡ ÀÖ´Ù°í °¡Á¤Çϰí ÀÌ Å¬·¡½º ŸÀÔÀÇ °´Ã¼¸¦ new ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿© 10°³ »ý¼ºÇÑ´Ù¸é ³»ºÎÀÇ ¸â¹ö 6°³°¡ ÇÑ ¼¼Æ®¾¿ 10¼¼Æ®°¡ ¸¸µé¾îÁý´Ï´Ù. ÇÏÁö¸¸ ¸â¹öÇʵå Áß¿¡ static Ű¿öµå¸¦ ´Þ°í ÀÖ´Â ³ðÀÌ Çϳª ÀÖ´Ù°í ÇÑ´Ù¸é ¸â¹ö 6°³Áß¿¡ 5°³°¡ ÇϳªÀÇ ¹­À½À¸·Î 10¼¼Æ® ¸¸µé¾îÁö¸ç ¸â¹öÇÊµå ¾Õ¿¡ staticÀÌ ºÙ¾î ÀÖ´Ù¸é °´Ã¼µéÀÌ °øÀ¯¸¦ ÇÏ´Â Çü½ÄÀ» »ç¿ëÇÕ´Ï´Ù. ÀÌ·¯ÇÑ °³³äµéÀ» ±×¸²À¸·Î ³ªÅ¸³»¸é ¾Æ·¡¿Í °°½À´Ï´Ù.

 

 

 

 

±×¸² 3-2 ½ºÅÂÆ½ ¸Þ¸ð¸® »ý¼º

                 

 

¢Ñ staticÀÇ ½ÇÁ¦ ¿¹

¿©·¯ºÐµéÀÌ Çб³ÀÇ ÄÄÇ»Åͽǿ¡ °¡º¸¸é, ¸ðµç ÄÄÇ»ÅÍ´Â ÇϳªÀÇ ÆÐŰÁöó·³ ¸ðµç ¿ä¼Ò¸¦ Çϳª¾¿ ÀüºÎ °¡Áö°í ÀÖ½À´Ï´Ù. ±×¸®°í ÄÄÇ»ÅÍ ³»¿¡ ÇÁ¸°ÅͱîÁö ´Þ·Á ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ ÇÁ¸°ÅÍ´Â ÇϳªÁÒ. ¸ðµç ÄÄÇ»ÅÍ¿¡¼­ ÇÁ¸°Å͸¦ »ç¿ëÇÒ ¼ö ÀÖÁö¸¸, ÇÁ¸°ÅÍ Çϳª¸¦ ´Ù¸¥ °÷¿¡¼­ °øÀ¯¸¦ ÇÏ´Â Çü½ÄÀÔ´Ï´Ù. ÀÌ ¶§ ÇÁ¸°ÅÍ´Â staticÀ¸·Î ÀâÇô ÀÖ´Â °ÍÀÔ´Ï´Ù.

 

°´Ã¼°¡ ¾Æ¹«¸® ¸¹ÀÌ »ý¼ºµÇ´õ¶óµµ static ¸â¹öÇʵå·Î ¼±¾ðµÇ¾î ÀÖÀ¸¸é ÇÁ·Î±×·¥ ³»¿¡¼­ À¯ÀϹ«ÀÌ(êæìéÙíì£)ÇÑ ¸Þ¸ð¸®¸¦ Â÷ÁöÇÏ°Ô µË´Ï´Ù. ¸ðµç °´Ã¼¿¡¼­ °øÅëÀ¸·Î »ç¿ëÇÏ´Â Àü¿ªº¯¼öÀÇ °³³äÀ¸·Î »ç¿ëÇÒ ¶§ ÀÌ ½ºÅÂÆ½À» »ç¿ëÇÕ´Ï´Ù. ½ºÅÂÆ½¿¡ °üÇÑ °£´ÜÇÑ ¿¹¸¦ Çϳª »ìÆì º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

&

StaticTest.cs

Ü static¸â¹öÇʵ带 Å×½ºÆ®Çϱâ À§ÇÑ ¿¹Á¦

using System;

public class StaticTest {

           private static int sint = 0;

           private int nint = 0;        

           public StaticTest() {

                     sint = sint +1;

                     nint = nint +1;

         }

               public void SayMember() {

                     Console.WriteLine("sint:{0}, nint:{1}", sint, nint);

         }

               public static void Main() {

                     for(int i=0; i<10; i++) {

                             StaticTest s = new StaticTest();

                             s.SayMember();

                     }

         }//main

}//class

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

C:\C#Example\03>StaticTest

sint:1, nint:1

sint:2, nint:1

sint:3, nint:1

sint:4, nint:1

sint:5, nint:1

sint:6, nint:1

sint:7, nint:1

sint:8, nint:1

sint:9, nint:1

sint:10, nint:1

 

½ºÅÂÆ½(static)ÀÇ Àǹ̴ À§¿¡¼­ ¼³¸íÇÏ¿´Áö¸¸, ½ºÅÂÆ½ ¶§¹®¿¡ ³ªÅ¸³ª´Â Çö»óÀº Á¶±Ý ´Ù¸¥ ´À³¦ÀÏ ¼ö ÀÖ½À´Ï´Ù. ½ºÅÂÆ½Àº ´Ü ÇϳªÀÇ ¸Þ¸ð¸®¸¸ »ý¼ºÀ» ÇÕ´Ï´Ù. ±×·¸±â ¶§¹®¿¡ ÇÑÂÊ °´Ã¼¿¡¼­ °ªÀ» ¹Ù²Ùµç ´Ù¸¥ ÂÊ °´Ã¼¿¡¼­ °ªÀ» ¹Ù²Ùµç ÇϳªÀÇ ±×¸©À» Ÿ°ÙÀ¸·Î Çϱ⠶§¹®¿¡ ¹Ù²Ù´Â Á·Á· ¹Ù²ð ¼ö ¹Û¿¡ ¾ø½À´Ï´Ù.

 

À§ÀÇ ¿¹Á¦¿¡¼­´Â staticÀ¸·Î ¼±¾ðÇÑ sint¿Í ±×·¸Áö ¾ÊÀº nintÀÇ Â÷ÀÌÁ¡À» °¡Áö°í staticÀÇ Àǹ̸¦ ÆÄ¾ÇÇÏ·Á Çϰí ÀÖ½À´Ï´Ù. Äڵ带 º¸¸é StaticTestÀÇ °´Ã¼°¡ »ý¼ºµÇ´Â ¼ø°£, »ý¼ºÀÚ°¡ È£Ã⠵Ǹ鼭 ¹Ù·Î °ªÀ» ¹Ù²Ù°í ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ nint´Â newÇÒ ¶§¸¶´Ù Çϳª¾¿ ¸¸µé¾îÁö¸ç sint´Â Çϳª ¸¸µé¾îÁö¸é ¸ðµç °´Ã¼°¡ °øÀ¯ÇÕ´Ï´Ù. Áï, nint´Â ±×¸©ÀÌ Ç×»ó »õ·Î ¸¸µé¾îÁö±â ¶§¹®¿¡ °ªÀ» ¾Æ¹«¸® Áõ°¡½ÃÄѵµ 1 ¹Û¿¡´Â ¾ÈµË´Ï´Ù. ±×·±µ¥ sint¶ó´Â ¸â¹öÇʵå´Â ¸Þ¸ð¸®°¡ ÇϳªÀ̱⠶§¹®¿¡ °´Ã¼°¡ »ý¼ºµÉ ¶§ ¸¶´Ù 1¾¿ Áõ°¡ÇÏ´Â Çö»óÀÌ ³ªÅ¸³³´Ï´Ù.

 

 

 

±×¸² 3-3 static ¸â¹öÇʵå¿Í ÀÏ¹Ý ¸â¹öÇʵåÀÇ ºñ±³

 

½ºÅÂÆ½ ¸â¹öÇʵå´Â Ŭ·¡½º ³»ÀÇ ¸â¹öÇʵåÀÔ´Ï´Ù. ±×¸®°í ½ºÅÂÆ½ ¸â¹öÇʵ嵵 private°ú publicÀÇ ¹ýÄ¢Àº ¿Ïº®ÇÏ°Ô Áöŵ´Ï´Ù. ½ºÅÂÆ½ÀÇ Á¢±ÙÀÇ ¹®Á¦´Â ´ÙÀ½ Àý¿¡¼­ ´Ù·çµµ·Ï ÇϰڽÀ´Ï´Ù.

 

¢Ñ  static¿¡¼­ ¾Ë¾Æ µÎ¾î¾ß ÇÏ´Â »çÇ×

ÀÌ·¯ÇÑ ½ºÅÂÆ½(static)À» »ç¿ëÇÒ ¶§ °¡Àå Å« ¹®Á¦Á¡À¸·Î ´ëµÎµÇ´Â °ÍÀº ¿©·¯ °÷¿¡¼­ µ¿½Ã¿¡ µ¥ÀÌÅ͸¦ ¿øÇÒ ¶§ µ¿±âÈ­ÀÇ ¹®Á¦ÀÔ´Ï´Ù. ¿¹¸¦ µé¾î ¿©·¯ºÐÀÌ °øÀ¯µÇ¾î ÀÖ´Â ÇÁ¸°ÅÍ·Î ¸ðµç »ç¶÷µéÀÌ ÇÁ¸°Æ®ÇÒ ³»¿ëÀ» º¸³½´Ù¸é ¾î¶°ÇÑ ¿øÄ¢ ¾Æ·¡ ÇÁ¸°Æ®°¡ ÀÌ·ç¾îÁ®¾ß ÇÕ´Ï´Ù. ±×·¸Áö¾ÊÀ¸¸é Ãâ·ÂÀº ¾û¸ÁÀÌ µÇ°í ¸» °ÍÀÔ´Ï´Ù. ÀÌ·¯ÇÑ ¹®Á¦¸¦ µ¿±âÈ­(ÁÙ¼­±â)¶ó°í Çϴµ¥ ÀÌ ¹®Á¦¿¡ ´ëÇØ¼­´Â µ¿±âÈ­ ¹®Á¦¸¦ ´Ù·ê ¶§ ÀÚ¼¼È÷ ¾Ë¾Æº¸µµ·Ï ÇϰڽÀ´Ï´Ù.



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