본문 바로가기
C# 공부

class 01

by Dev_Hugh 2021. 8. 22.
728x90
반응형

Study about class

class

  • 객체를 만들기위해 사용하는것
  • Data - 속성
  • Method - 기능

생성자와 종료자(소멸자)

  • 생성자는 클래스와 같은 이름으로 반환형식이 없다.
  • 기본생성자와 사용자 지정 생성자가있다
  • 종료자는 매개변수도없고 한정자도 사용하지 않으며 오버로딩 불가능하고 직접 호출할 수 없다.
  • 종료자는 CLR의 가비지 컬렉터가 객체 소멸시점을 판단해 호출한다.
  • 종료자는 가급적 구현안하는걸 추천
class JinHyung
{
    public JinHyung() {} // 기본 생성자
    public JinHyung(int age, float weight) {} // 사용자 지정 생성자
    ~JinHyung() {} // 종료자
}

Shallow copy & Deep copy

  • 얕은 복사는 객체 복사시 참조만 살짝 복사
  • 깊은 복사는 별도의 힙 공간에 객체 자체 복사

this

  • 객체가 자신을 지칭할때 사용하는 키워드
  • 객체 내부에서 자신의 필드나 메소드에 접근시 사용
  • 아래 두 예제코드로 비교하기
class MyClass
{
    int a, b, c;
    public MyClass()
    {
        this.a = 1;
    }
    public MyClass(int b)
    {
        this.a = 1;
        this.b = b;
    }
    public MyClass(int b, int c)
    {
        this.a = 1;
        this.b = b;
        this.c = c;
    }
}
  • 만약 사용자 지정생정자를 이와같이 생성하고 a값에는 늘 고정된 값을 부르고 싶을때 this를 이용하면 좋다
class MyClass
{
    int a, b, c;
    public MyClass()
    {
        this.a = 1;
    }
    public MyClass(int b) : this()
    {
        this.b = b;
    }
    public MyClass(int b, int c) : this(b)
    {
        this.c = c;
    }
}
  • this(b)를 통해 MyClass(int b)를 호출 this()를 통해 기본생성자를 호출하여 위 클래스 예제보다 더 간결해진다.

접근한정자

  • 은닉성(캡슐화)의 구현할때 이용한다.
728x90
반응형

'C# 공부' 카테고리의 다른 글

interface  (0) 2021.08.25
tuple  (0) 2021.08.22
static  (0) 2021.08.22
inheritance  (0) 2021.08.22
class 02  (0) 2021.08.22