반응형
생성자를 통해 기본값 설정, 인스턴스화를 제한하여 쉽게 코드를 작성가능합니다.
클래스나 구조체의 인스턴스를 생성, 멤버 초기화하며, 사용자가 개체에 대해
생성자를 제공하지 않으면 C#에서는 기본적으로 개체를 인스턴스화하고 모든
멤버 변수에 기본값을 설정하는 생성자를 만듭니다. [MSDN]
Car.cs
using System;
public class Car //[1] Class
{
//[2] Field
private string name; //이름
//[3] Constructor : 생성자
//public 이름()가로가 있으면 무조껀 생성자 매개변수가 없는 디폴트 생성자
public Car() // 클래스이름과 동일한 메서드를 생성자라 한다.
{
name = "홍길동"; //초기화
}
public Car(string name) //클래스 이름과 동일한 매개변수가 있는생성자
{
this.name = name; //this가 자기 자신 Field의 name을 가르킴
}
//마지막순서 1
static Car()
{
Console.WriteLine("언제??");
}
//[4] Method
public void Print()
{
Console.WriteLine("이름 {0}", name);
}
//마지막순서 2
public static void Show()
{
Console.WriteLine("정적"); ;
}
}
Programe.cs
using System;
public class 생성자
{
public static void Main(string[] args)
{
Car car = new Car(); // 필드2
car.Print();
// 생성자 부분 //매개변수가 있는 생성자로 넘어간다.
Car sonata = new Car("소나타"); //소나타라는 이름으로 기본값을 줌
sonata.Print(); //소나타 생성
Car sanatafe = new Car("산타페");
sanatafe.Print();
//마지막순서 3
Car.Show(); //정적 생성자 호출
//정적인 맴버 static Car 이 가장 먼저 호출된다.
}
}
클래스나 구조체의 인스턴스를 생성, 멤버 초기화하며, 사용자가 개체에 대해
생성자를 제공하지 않으면 C#에서는 기본적으로 개체를 인스턴스화하고 모든
멤버 변수에 기본값을 설정하는 생성자를 만듭니다. [MSDN]
using System;
public class Car //[1] Class
{
//[2] Field
private string name; //이름
//[3] Constructor : 생성자
//public 이름()가로가 있으면 무조껀 생성자 매개변수가 없는 디폴트 생성자
public Car() // 클래스이름과 동일한 메서드를 생성자라 한다.
{
name = "홍길동"; //초기화
}
public Car(string name) //클래스 이름과 동일한 매개변수가 있는생성자
{
this.name = name; //this가 자기 자신 Field의 name을 가르킴
}
//마지막순서 1
static Car()
{
Console.WriteLine("언제??");
}
//[4] Method
public void Print()
{
Console.WriteLine("이름 {0}", name);
}
//마지막순서 2
public static void Show()
{
Console.WriteLine("정적"); ;
}
}
using System;
public class 생성자
{
public static void Main(string[] args)
{
Car car = new Car(); // 필드2
car.Print();
// 생성자 부분 //매개변수가 있는 생성자로 넘어간다.
Car sonata = new Car("소나타"); //소나타라는 이름으로 기본값을 줌
sonata.Print(); //소나타 생성
Car sanatafe = new Car("산타페");
sanatafe.Print();
//마지막순서 3
Car.Show(); //정적 생성자 호출
//정적인 맴버 static Car 이 가장 먼저 호출된다.
}
}
반응형
'C#' 카테고리의 다른 글
45.C# - Method (메서드 : 함수) (0) | 2009.08.12 |
---|---|
44.C# - Destructor (소멸자/파괴자) (0) | 2009.08.11 |
42.C# - Field (필드) (0) | 2009.08.11 |
41.C# - Class (클래스) (1) | 2009.08.11 |
40.C# - List<T> (리스트 제네릭 클래스) (0) | 2009.08.10 |
Comments