본문 바로가기

CS/C#

[ C# ] 객체와 한정자

1. 객체, 클래스

객체는 클래스의 인스턴스이고, 각 객체는 필드와 메서드를 가지고 있다.

여기서 필드는 상태, 메서드는 행동을 표현한다.

 

클래스는 객체를 생성하기 위한 틀이라고 생각하면 된다. 이를 기반으로 생성된 인스턴스가 객체이다.

 

2. 생성자

생성자는 객체를 생성할 때 호출되어 객체를 초기화해주는 역할을 가지고 있다.

 

C#은 기본적으로 생성자를 구현하지 않아도 사용 가능한 매개변수가 없는 생성자를 지원한다.

public class Test
{
    int n;
}

class Program
{
    static void Main(string[] args)
    {
        Test test = new Test();
    }
}

 

만약 생성자를 하나라도 구현한다면 기본 생성자의 지원이 중단된다.

 

오버로딩을 통해 매개변수를 달리 하여 여러 생성자를 구현할 수 있다.

public class Test
{
    int n;

    public Test()
    {
        n = 0;
    }

    public Test(int n)
    {
        this.n = n;
    }
}

class Program
{
    static void Main(string[] args)
    {
        Test test1 = new Test();
        Test test2 = new Test(10);
    }
}

 

3. 접근제한자

크게 public, private, protected 3가지가 존재한다.

 

public은 모든 곳에서 접근 가능하다.

private는 같은 클래스 내에서만 접근 가능하다.

protected는 같은 클래스 및 파생 클래스 내에서만 접근 가능하다.

 

private와 protected를 통해 객체를 캡슐화 및 은닉화 시킨다.

 

4. static 한정자

static 한정자는 클래스 자체 멤버에 속하도록 지정해준다.

 

인스턴스와 독립적이기에, 인스턴스가 여러개라도 static 멤버를 위한 메모리는 한 공간만 필요하다.

'CS > C#' 카테고리의 다른 글

[ C# ] 상속, 인터페이스, 추상 클래스  (1) 2024.11.05
[ C# ] 값 형식, 참조 형식  (0) 2024.09.26
[ C# ] Callback, Delegate, Event  (0) 2024.08.09
[ C# ] 객체지향 프로그래밍  (0) 2024.07.26