클래스 멤버

클래스 멤버는 두 가지로 나뉩니다: 데이터 멤버와 함수 멤버

앞서 배운 int, long, short 같은 타입들은 단순 타입으로 .NET 기본 내장 타입입니다. 마이크로소프트 개발자들이 미리 코딩해서 .NET 프레임워크에 포함시켜놓았고, VS2022 설치할 때 .NET도 함께 설치되면서 이 내장 타입들을 쓸 수 있게 됩니다. 이 타입들은 단 하나의 데이터만 저장할 수 있습니다.

뒤에서 배울 다른 타입들은 여러 데이터를 보관할 수 있는데 배열이 대표적입니다. 배열은 동일한 타입의 데이터 여러 개를 담을 수 있으며 여러 int 값을 묶는 식으로 사용합니다. 배열 안의 개별 데이터를 요소라고 부르고 인덱스로 요소에 접근합니다. 배열 자세한 내용은 후속 강의에서 다룹니다.

서로 다른 타입의 데이터 여러 개를 한 곳에 저장하는 복합 타입도 존재하며 각 데이터 단위를 멤버라고 부릅니다. 멤버에 접근하려면 지정한 멤버 이름을 사용해야 합니다.

멤버는 크게 두 분류로 나뉘어요: 데이터 멤버, 함수 멤버.

데이터 멤버: 클래스 인스턴스 객체 혹은 클래스 자체와 연관된 데이터를 저장하는 역할

함수 멤버: 코드 로직을 실행하며 해당 타입이 가질 수 있는 행동을 정의하는 역할

아래 Person 클래스 안에 데이터 멤버가 두 개 선언되어 있습니다

class Person
{
    private string name;
    private int age;

    public void SayHi() 
    {

    }

    public void SetMyName(string name)
    {
        this.name = name;
    }
}Code language: PHP (php)

데이터 멤버 (필드 / 속성): 상태 값을 보관합니다. 예를 들어 사용자 클래스 안의 이름, 나이 등이 해당합니다

함수 멤버 (메서드): 행동 기능을 정의합니다. 사용자 이름 수정, 인사 메시지 출력 같은 기능을 담당합니다

배열은 숫자 인덱스로 접근하고 클래스 멤버는 직접 정의한 이름으로 접근합니다


class Program
{
    static void Main(string[] args)
    {
        // This is a int array
        int[] array = new int[5] { 1,2,3,4,5 };
        Console.WriteLine(array[0]); // 1

        Person person = new Person();
        person.SetMyName("John");
        person.SetMyAge(30);
        person.SayHi(); // Hi, my name is John and I am 30 years old.
    }
}

class Person
{
    private string name;
    private int age;

    public void SayHi() 
    {
        Console.WriteLine($"Hi, my name is {name} and I am {age} years old.");
    }

    public void SetMyName(string name)
    {
        this.name = name;
    }

    public void SetMyAge(int age)
    {
        this.age = age;
    }
}Code language: PHP (php)

위 예시는 정수 배열을 생성한 뒤 다섯 개 요소에 1,2,3,4,5를 초기화한 모습입니다. 첫 번째 요소를 불러오려면 인덱스 0을 써야 하는데 배열 인덱스는 0부터 시작한다는 점을 유의하세요.

반면 클래스 멤버는 객체 이름 뒤에 점(.)을 붙이고 직접 지은 이름으로 접근하며 예시에서는 person. 형식을 사용합니다.

Class Person { } 구문은 단순한 클래스 정의일 뿐 내부 코드는 다른 곳에서 호출하지 않으면 실행되지 않습니다. 호출 코드가 없으면 그냥 설계도, 템플릿으로만 남아 아무런 동작도 하지 않습니다.

프로그램 진입점인 Main 함수는 정적 함수로 (뒤에서 설명) 객체 생성 없이 쓸 수 있으며 클래스 자체에 속합니다. 사용자가 exe 실행 파일을 더블클릭해 프로그램을 열면 운영체제가 자동으로 Main 함수를 호출합니다.

클래스 멤버

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다