<23.01.17. (화)> - 나만의 타입 만들기 Class, Struct

김도익·2023년 1월 17일
0

C#

목록 보기
17/29

사용자 정의 타입

  • 현실 세계는 복잡하기에 내장 타입만으로 모든 데이터를 표현하가엔 한계가 있습니다.

  • 모든 프로그래밍 언어에서는 사용자 정의 타입(User Defined Type)을 지원합니다.

  • C#은 구조체(Structure) 혹은 클래스(Class)를 사용할 수 있습니다.

    • 구조체는 값 타입
    • 클래스는 참조 타입
  • 구조체 혹은 클래스를 구성하는 요소를 멤버(Member)라고 합니다.

  • 구조체 보단 클래스를 많이 사용하는데 구조체를 사용하는 경우는 성능 향상의 목적을 두고 사용한다고 합니다. 이 부분은 좀 더 확인해봐야합니다.

  • 클래스는 붕어빵 틀, 인스턴스는 붕어빵 틀을 통해 만들어진 붕어빵이라고 생각하면 됩니다.

    • 객체와 인스턴스는 엄밀히 말하면 다릅니다.
    • 객체(object)는 - 상위개념, 인스턴스는 하위개념으로 볼 수 있습니다.

접근 한정자

  • C#에서 모든 타입과 타입 멤버는 접근 수준을 갖습니다.

  • 접근 수준은 해당 코드를 사용할 수 있는지를 결정합니다.

  • 접근 한정자(Access Modifier)를 아용해 타입 혹은 멤버의 접근 수준을 달리할 수 있습니다.

  • 적절한 접근 한정자를 사용하면 설계자 입장에서는 외부에서의 의도치 않은 멤버 수정을 막을 수 있고, 사용자 입장에서는 파악해야 할 문맥이 줄어들기 때문에 사용하기 편해집니다.

  • 접근 한정자에는 6가지가 있고 그 중 3가지만 알아보겠습니다.

  • public

    어디서든 접근 가능하며, 심지어 다른 어셈블리에서도 접근할 수 있습니다. 사실상 제약이 없습니다.

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


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

  • internal

    public과 비슷하게 어디서든 접근 가능하지만, 같은 어셈블리에서만 접근 할 수 있습니다. 구조체 및 클래스 타입의 기본 접근 한정자입니다.
  • private

    외부에서 절대 접근 불가능하며, 오직 타입 내부에서만 접근이 가능합니다. 멤버의 기본 접근 한정자입니다.


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

profile
고급 개발자가 되고 싶어요!

0개의 댓글