클래스 멤버는 두 가지로 나뉩니다: 데이터 멤버와 함수 멤버
앞서 배운 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 함수를 호출합니다.
클래스 멤버