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
반응형