[TIL] 생성자와 프로퍼티

백성은·2025년 4월 18일

TIL

목록 보기
16/34

✅ 들어가기 앞서

C#에서 클래스를 정의할 때 자주 사용하는 기능 중 생성자와 프로퍼티는 객체 초기화와 데이터 캡슐화를 간편하게 해주는 중요한 요소이다
이 두 개념을 간단하게 정리해서 이해해보자.

✅ 생성자 (Constructor)

정의

생성자는 클래스의 인스턴스를 생성할 때 자동으로 호출되는 메서드로 주로 멤버 변수를 초기화할 때 사용한다

생성자의 특징

  • 클래스와 이름이 동일하다
  • 반환형이 없다
  • 오버로딩이 가능하다

생성자 예시

	public class Player
	{
    	public string name;
    	public int level;
        
        public Player()
        {
        	name = "철수";
            level = 1;
        }

    	public Player(string name)
    	{
        	this.name = name;
        	this.level = 1;
    	}
	}

클래스와 동일한 이름이며, 반환형(void 도 안붙는다)이 없고 오버로딩까지 가능한 것을 볼 수 있다.

생성자 사용 이유

  • 필드 초기화 : 객체가 만들어질 때 자동으로 값 세팅한다
  • 유효성 검사 : 잘못된 값이 들어오는 것을 방지한다
  • 의존성 : 필요한 데이터나 객체를 생성과 동시에 전달한다

✅ 프로퍼티 (Property)

정의

멤버 변수를 외부에 노출하지 않으면서, 값을 안전하게 읽거나 쓸 수 있도록 도와준다.
필드를 직접 노출하지 않고 간접적으로 접근하게 함.

프로퍼티 예시

	private string name;

	public string Name // 프로퍼티
	{
    	get { return name; }
    	set { name = value; }
	}	

자동 프로퍼티

	public string Name { get; set; }
    public int Level { get; private set;}

자동 프로퍼티는 내부 로직이 없을 때 간단하게 읽고 쓰기할 때 유용하게 쓰인다

프로퍼티 사용 이유

  • 필드를 외부에서 직접 접근하지 못하게 막고, 제어된 방식으로 접근
  • 값을 설정하거나 가져올 때 조건문 등 로직을 추가할 수 있다.
  • 코드 가독성이 올라가고, 유지보수에 용이하다

생성자와 프로퍼티 사용 예시

만약에 생성자가 외부에서 접근 불가능한 상태라고 가정해보면

	public class Player
	{
    	private string name; // 외부에서 직접 접근 불가능

    public string Name // 프로퍼티
	{
    	get { return name; }
    	set { name = value; }
	}	

    	public Player(string name)
    	{
        	this.name = name;
    	}
	}

이렇게 외부에서 접근 불가능한 상태일때 프로퍼티를 사용하면 접근이 가능해진다.

	Player player = new Player("철수");
    // 접근 불가능 (private 이므로)
    
    player.Name = "영희"; // 프로퍼티를 통해 설정
    Console.WriteLine(player.Name); // 프로퍼티를 통해 읽기

✅ 결론

  • 생성자는 객체가 만들어질 때 필요한 값을 미리 넣어줄 수 있다
  • 프로퍼티는 외부에서 안전하게 접근할 수 있도록 돕는다
  • 두 기능을 함께 활용하면 코드의 안정성, 가독성, 유지보수 면에서 아주 좋을거 같다
profile
게임 개발일지

0개의 댓글