현실 세계는 복잡하기에 내장 타입만으로 모든 데이터를 표현하가엔 한계가 있습니다.
모든 프로그래밍 언어에서는 사용자 정의 타입(User Defined Type)을 지원합니다.
C#은 구조체(Structure) 혹은 클래스(Class)를 사용할 수 있습니다.

구조체 혹은 클래스를 구성하는 요소를 멤버(Member)라고 합니다.
구조체 보단 클래스를 많이 사용하는데 구조체를 사용하는 경우는 성능 향상의 목적을 두고 사용한다고 합니다. 이 부분은 좀 더 확인해봐야합니다.
클래스는 붕어빵 틀, 인스턴스는 붕어빵 틀을 통해 만들어진 붕어빵이라고 생각하면 됩니다.
C#에서 모든 타입과 타입 멤버는 접근 수준을 갖습니다.
접근 수준은 해당 코드를 사용할 수 있는지를 결정합니다.
접근 한정자(Access Modifier)를 아용해 타입 혹은 멤버의 접근 수준을 달리할 수 있습니다.
적절한 접근 한정자를 사용하면 설계자 입장에서는 외부에서의 의도치 않은 멤버 수정을 막을 수 있고, 사용자 입장에서는 파악해야 할 문맥이 줄어들기 때문에 사용하기 편해집니다.
접근 한정자에는 6가지가 있고 그 중 3가지만 알아보겠습니다.
어디서든 접근 가능하며, 심지어 다른 어셈블리에서도 접근할 수 있습니다. 사실상 제약이 없습니다.

// character를 초기화 해줬습니다 그래서 Hp, Mp, Atk의 값은 0으로 초기화 됐습니다.
// 그리고 Hp, Mp, Atk의 값을 위 코드처럼 값을 바꿔 줬습니다.

// Hp, Mp, Atk를 100, 200, 50으로 초기값을 설정해줬습니다.

// 멤버의 기본 접근자는 private이기 때문에 사용이 불가능합니다.