Ŭ·¡½º¸¦ ÀÌ¿ëÇÏ¿© ¸Þ¸ð¸®¸¦ °¡Áø ÀνºÅϽº(Instance) Áï, °´Ã¼¸¦ »ý¼ºÇÒ ¶§ Á¦ÀÏ ¸ÕÀú È£ÃâµÇ´Â ¸Þ¼µå¸¦ »ý¼ºÀÚÀÔ´Ï´Ù. ¿©·¯ºÐÀº ÀÌ¹Ì »ý¼ºÀÚ¸¦ »ç¿ëÇϰí ÀÖ¾ú½À´Ï´Ù. »ý¼ºÀÚ¸¦ µû·Î ¸¸µéÁö ¾Ê´Â´Ù¸é ¿©·¯ºÐÀÌ ¸¸µç Ŭ·¡½º¿¡¼ ÀÚµ¿À¸·Î µðÆúÆ® »ý¼ºÀÚ(Default Constructor)°¡ ¸¸µé¾îÁö°Ô µË´Ï´Ù. ¾Õ ÀýÀÇ ¿¹Á¦¿¡¼ ¿ì¸®´Â ´ÙÀ½°ú °°Àº ±¸¹®À» »ç¿ëÇß½À´Ï´Ù.
|
& |
MainTest.cs |
Ü µðÆúÆ®»ý¼ºÀÚ¸¦ À§ÇÑ ¿¹Á¦ |
|
using System; public class MainTest { public void SayHello() { Console.WriteLine("Hello World!"); } public static void Main() { MainTest m = new MainTest();//µðÆúÆ®»ý¼ºÀÚ È£Ãâ m.SayHello(); } } | ||
|
MainTest()¶ó´Â ¸Þ¼µå´Â ¾ø½À´Ï´Ù. ¸¸µéÁöµµ ¾Ê¾ÒÁÒ. ÀÌ ¶§ ¿©·¯ºÐÀÌ Å¬·¡½ºÀÇ À̸§°ú °°Àº »ý¼ºÀÚ¸¦ ¸¸µéÁö ¾Ê´Â´Ù¸é C#¿¡¼´Â ±âº»ÀûÀ¸·Î µðÆúÆ®»ý¼ºÀÚ(Default Consturctor)¶ó´Â °ÍÀÌ ¸¸µé¾îÁö´Âµ¥ ÀÌ µðÆúÆ®»ý¼ºÀÚ°¡ ¹Ù·Î MainTest()ÀÔ´Ï´Ù. ¸Þ¸ð¸®°¡ »ý¼ºµÈ Á÷ÈÄ °¡Àå ¸ÕÀú È£ÃâµÇ´Â ¸Þ¼µåÀÔ´Ï´Ù. ¹°·Ð ÇöÀçÀÇ µðÆúÆ® »ý¼ºÀÚ´Â ÇÏ´Â ÀÏÀÌ ¾ø½À´Ï´Ù. ´ÜÁö »ý¼ºÀÚ¶ó°í Ç¥½Ã¸¸ ÇÒ »ÓÀÔ´Ï´Ù. | ||
Áï, Ŭ·¡½º¸¦ ¸¸µé ¶§ »ç¿ëÀÚ°¡ µû·Î »ý¼ºÀÚ¸¦ ¸¸µéÁö ¾Ê´Â´Ù¸é ¸Å°³º¯¼ö°¡ ¾ø´Â µðÆúÆ®»ý¼ºÀÚ ¡®MainTest()¡¯°¡ ¸¸µé¾îÁ®¼ »ç¿ëµÇ¸ç, µðÆúÆ® »ý¼ºÀÚ¸¦ ¿©·¯ºÐÀÌ ¾à°£ º¯ÇüÇÏ¿© ¸¸µé°Å³ª ¾Æ´Ï¸é ¸Å°³º¯¼ö°¡ ÀÖ´Â »ý¼ºÀÚ¸¦ ´Ù½Ã ¸¸µç´Ù¸é ±âÁ¸ÀÇ µðÆúÆ® »ý¼ºÀÚ´Â ¾ø¾îÁö°í »õ·Î¿î »ý¼ºÀÚ°¡ ¸¸µé¾îÁö´Â °ÍÀÔ´Ï´Ù.
|
¢Ã »ý¼ºÀÚÀÇ Æ¯Â¡ |
|
q »ý¼ºÀÚ´Â ¸®ÅÏŸÀÔ(Return Type)ÀÌ ¾ø´Ù. q »ý¼ºÀÚÀÇ À̸§Àº Ŭ·¡½ºÀÇ À̸§°ú µ¿ÀÏÇÏ´Ù. q new¿¬»êÀÚ°¡ Èü(Heap)¿µ¿ª¿¡ ¸Þ¸ð¸®¸¦ »ý¼ºÇÑ Á÷ÈÄ È£ÃâµÈ´Ù. |
»ý¼ºÀÚ´Â À¯ÀÏÇÏ°Ô ¸®ÅÏŸÀÔÀÌ ¾ø´Â ¸Þ¼µåÀÔ´Ï´Ù. ±×¸®°í »ý¼ºÀÚÀÇ À̸§Àº Ŭ·¡½ºÀÇ À̸§°ú µ¿ÀÏÇϸç ÀϹÝÀûÀ¸·Î Ãʱâȳª ¸â¹öÀÇ ±âº»°ª ÇÒ´çÀ» À§ÇØ »ç¿ëµË´Ï´Ù. º¸ÅëÀÇ °æ¿ì Ŭ·¡½º ÀÛ¾÷À» ÇÒ ¶§ Á¦ÀÏ ¸ÕÀú ÇÁ·Î±×·¥ ÇØ¾ß ÇÏ´Â °ÍµéÀ» »ý¼ºÀÚ ³»¿¡ ÇÁ·Î±×·¥ ÇÏ°Ô µË´Ï´Ù.
»ý¼ºÀÚ´Â new ¿¬»êÀÚ¿Í ÇÔ²² »ç¿ëµÇ´Âµ¥ new ¿¬»êÀÚ°¡ ¸Þ¸ð¸®¸¦ »ý¼ºÇÏ°í ³ª¸é ¸â¹öÇʵåµéÀÌ ¸Þ¸ð¸®¸¦ ÇÒ´ç ¹Þ°Ô µË´Ï´Ù. ¸â¹öÇʵåµéÀÌ ¸Þ¸ð¸®°¡ Á¸ÀçÇϱ⠶§¹®¿¡ ¸â¹öÇʵ忡 °ªÀ» ÇÒ´çÇϰųª Ãʱâȸ¦ ÇÒ ¼ö ÀÖ½À´Ï´Ù. À̶§ »ý¼ºÀÚ°¡ Ȱµ¿À» ÇÏ´Â °ÍÀÔ´Ï´Ù. º¸ÅëÀº ¸â¹öÇʵåÀÇ Ãʱâȸ¦ ÁÖ·Î ÇÏÁö¸¸ ÇÊ¿äÇÏ´Ù¸é °´Ã¼ÀÇ »ý¼º°ú µ¿½Ã¿¡ ÇØ ÁÖ¾î¾ß ÇÏ´Â ÀÛ¾÷µéÀ» ÀÌ »ý¼ºÀÚ¿¡¼ ÇÏ°Ô µË´Ï´Ù.
»ý¼ºÀÚ°¡ ¾ø´Â Ŭ·¡½º¿¡ ´ëÇÏ¿© ÄÄÆÄÀÏ·¯´Â ¸Å°³º¯¼ö¸¦ °¡ÁöÁö ¾Ê´Â »ý¼ºÀÚ¸¦ ÀÚµ¿À¸·Î Á¦°øÇÕ´Ï´Ù. ÀÌ »ý¼ºÀÚ¸¦ ¿ì¸®´Â µðÆúÆ®»ý¼ºÀÚ(Default Constructor)¶ó°í ºÎ¸¨´Ï´Ù. »ý¼ºÀÚÀÇ ¿ªÇÒÀº ÃʱâÈ ÀÛ¾÷À̶ó°í Çß½À´Ï´Ù. »ý¼ºÀÚ¿¡ °ü·ÃµÈ ¿¹Á¦¸¦ Çϳª ¸¸µé¾î º¸µµ·Ï ÇÏÁÒ.
|
& |
ConstructTest.cs |
Ü »ý¼ºÀÚ¸¦ Å×½ºÆ®Çϱâ À§ÇÑ ¿¹Á¦ |
|
using System; public class ConstructTest { private String name = null; private String address = null; private int age = 0; public ConstructTest() { this.name = "À̸§¾øÀ½"; this.address = "ÁÖ¼Ò¾øÀ½"; this.age = 0; } public void SetList(String sname, String saddress, int sage) { this.name = sname; this.address = saddress; this.age = sage; } public String GetList() { String str = name + " " + address + " " + age; return str; } public static void Main() { ConstructTest ct = new ConstructTest(); String s; s = ct.GetList(); Console.WriteLine(s); ct.SetList("È«±æµ¿", "¼¿ï½Ã Áß±¸", 25); s = ct.GetList(); Console.WriteLine(s); } } | ||
|
C:\C#Example\04csc ConstructTest.cs C:\C#Example\04ConstructTest À̸§¾øÀ½ ÁÖ¼Ò¾øÀ½ 0 È«±æµ¿ ¼¿ï½Ã Áß±¸ 25 | ||
»ý¼ºÀÚ¿¡¼ °ªÀ» name, address, age ¸â¹öÇʵ忡 ÇÒ´çÇϰí ÀÖ½À´Ï´Ù. ±×·¸±â ¶§¹®¿¡ °´Ã¼¸¦ »ý¼ºÇÑ Á÷ÈÄ ¹Ù·Î GetList() ¸â¹ö¸Þ¼µå¸¦ È£Ãâ ÇßÀ» ¶§ »ý¼ºÀÚ¿¡¼ ÃʱâÈÇÑ °ªÀ» ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ´Ù½Ã SetList() ¸Þ¼µå¸¦ ÅëÇØ¼ °ªÀ» ÇÒ´çÇÑ ÀÌÈÄ¿¡´Â ¹Ù²î°ÚÁÒ. ÀÌ·¸°Ô »ý¼ºÀÚ¿¡¼ ¿ì¼±ÀûÀ¸·Î °ªÀ» ÇÒ´çÇØ¾ß ÇÒ °æ¿ì°¡ ÀÖ´Ù¸é »ý¼ºÀÚ¸¦ ÀÌ¿ëÇÏ¸é ¾ÆÁÖ ÆíÇÏ°Ô ÇØ°áÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×¸®°í, À§ÀÇ ¿¹Á¦¿¡¼ this´Â ¾ÕÀ¸·Î ³ª¿Ã Àýµé¿¡¼ ¼³¸íÇϵµ·Ï ÇÏÁÒ.
»ý¼ºÀÚµµ ¸Å°³º¯¼ö¸¦ ÀÌ¿ëÇÏ¿© ¿ÜºÎ·ÎºÎÅÍ Á÷Á¢ »ý¼ºÀÚ¿¡ °ªÀ» ÇÒ´çÇÏ´Â ¹æ¹ýÀ¸·Î ¸â¹öÇʵ带 ÃʱâÈ ÇÒ ¼ö µµ ÀÖ½À´Ï´Ù. ±× ¿¹¸¦ »ìÆì º¸±â·Î ÇÏÁÒ.
|
& |
ConstructDirect.cs |
Ü »ý¼ºÀÚ¸¦ Å×½ºÆ®Çϱâ À§ÇÑ ¿¹Á¦ |
|
using System; public class ConstructDirect { private String name = null; private String address = null; private int age = 0; public ConstructDirect(String sname, String saddress, int sage) { this.name = sname; this.address = saddress; this.age = sage; } public void SetList(String sname, String saddress, int sage) { this.name = sname; this.address = saddress; this.age = sage; } public String GetList(){ String str = name + " " + address + " " + age; return str; } public static void Main() { ConstructDirect ct = new ConstructDirect("È«±æµ¿", "¼¿ï½Ã Áß±¸", 25); String s; s = ct.GetList(); Console.WriteLine(s); } } | ||
|
C:\C#Example\04>csc ConstructDirect.cs C:\C#Example\04>ConstructDirect È«±æµ¿ ¼¿ï½Ã Áß±¸ 25 | ||
¿ì¸®´Â ÀÌ ¿¹Á¦¿¡¼ »ý¼ºÀÚ¿¡¼ ¸Å°³º¯¼ö¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀ» ½±°Ô º¼ ¼ö ÀÖ½À´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÌ ÀÌ ¿¹Á¦Ã³·³ ¸Å°³º¯¼ö°¡ ÀÖ´Â »ý¼ºÀÚ¸¦ ¸¸µé¾ú´Ù¸é µðÆúÆ® »ý¼ºÀÚ´Â ´õ ÀÌ»ó »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.
|
¸Å°³º¯¼ö ÀÖ´Â »ý¼ºÀÚ¸¦ ¸¸µé¸é µðÆúÆ® »ý¼ºÀÚ´Â »ç¿ëÇÒ ¼ö ¾ø´Ù. |
|
public class Test { public Test(int a){ // } public static void Main(){ Test t = new Test();// ¿¡·¯ ¹ß»ý } };//class |
±×¸®°í ¹Ýµå½Ã »ý¼ºÀÚ¸¦ »ç¿ëÇÒ ¶§ ¸Å°³º¯¼öÀÇ °³¼ö¿Í