C#에서 클래스를 인스턴스화(객체 생성)하려면 new 연산자를 사용합니다. new 연산자는 클래스의 새로운 객체를 메모리에 할당하고, 해당 클래스의 생성자를 호출하여 객체를 초기화하는 역할을 합니다.
기본 문법
예를 들어 Line이라는 클래스가 있다고 가정해 보겠습니다. 다음과 같이 new 연산자를 사용하면 새로운 객체가 생성됩니다.
Line line = new Line();
생성된 객체를 통해 클래스 내부에 정의된 메서드를 호출할 수 있습니다.
line.setLength(6.0);
전체 예제 코드
아래 예제는 Line 클래스를 정의하고, 이를 인스턴스화한 후 길이를 설정하고 출력하는 전체 과정을 보여줍니다.
using System;
namespace LineApplication {
class Line {
private double length; // 선의 길이
// 생성자: 객체가 생성될 때 자동으로 호출됨
public Line() {
Console.WriteLine("Object is being created");
}
public void setLength(double len) {
length = len;
}
public double getLength() {
return length;
}
static void Main(string[] args) {
// new 연산자로 Line 클래스 인스턴스화
Line line = new Line();
// 선의 길이 설정
line.setLength(6.0);
Console.WriteLine("Length of line : {0}", line.getLength());
}
}
}실행 결과
Object is being created Length of line : 6
코드 설명
new Line()이 실행되는 순간 다음과 같은 일이 발생합니다.
첫째, 힙(heap) 메모리에 Line 타입의 새로운 객체가 할당됩니다. 둘째, 클래스의 생성자 public Line()이 자동으로 호출되어 "Object is being created"라는 메시지가 콘솔에 출력됩니다. 셋째, 생성된 객체의 참조가 변수 line에 저장됩니다.
이후 setLength() 메서드를 호출해 객체의 상태(길이 값)를 변경할 수 있으며, getLength() 메서드로 설정된 값을 다시 읽어올 수 있습니다.
핵심 정리
C#에서 클래스 인스턴스화는 항상 new 연산자를 통해 이루어지며, 이 과정에서 해당 클래스의 생성자가 함께 실행됩니다. 생성자를 활용하면 객체가 만들어지는 시점에 필요한 초기화 작업을 수행할 수 있어 더 안전하고 체계적인 코드 작성이 가능합니다.