728x90
클래스 란?
객체를 만들기 위한 설계도를 이야기함
객체화, Instance화 한다는 것은 추상화 시킨걸 실제 환경에 불러오는 과정을 뜻한다.
클래스 선언
class 클래스 이름
{
데이터, 메소드
}
클래스 메모리 영역
메모리 공간(RAM)에는 코드(Code), 데이터(Data), 스택(Stack), 힙(Heap) 영역으로 나뉜다. 이때 클래스는 스택 영역과 힙 영역에서 관리하는데 메모리에 선언되는 부분을 확인해보고자 한다.
우선 변수 선언할 때와 클래스를 선언할 때를 비교를 할 때
변수 선언의 경우 값 형식으로 Stack 영역에 int num의 선언문과 1의 값이 저장이 된다.
클래스 선언의 경우 참조 형식으로 Stack 영역과 Heap 영역을 모두 사용하는데 Apple apple의 선언문은 Stack 영역 생성한 객체는 Heap 영역에 저장되며 Stack 영역는 힙에 저장된 주소값를 가르킨다.
Apple apple1 = new Apple();
Apple apple2 = apple1;
위의 같이 클래스를 선언하고 해당 객체를 apple2와 참조할 경우 동일한 주소값을 참조하는 것을 확인 할 수 있으며 apple1 클래스의 값을 변경한다면 주소0에 있는 데이터가 변경되어 apple2의 값도 변경이 된다.
객체 생성
객체는 new 연산자와 생성자를 이용해여 객체를 생성하고 생성된 객체는 참조로써 힘에 생성한 객체를 가르킨다.
생성자, 소멸자
생성자 : 객체가 생성될 때 호출
소멸자: 객체가 소멸될 때 호출
- 생성자와 소멸자의 명시적 구현은 선택사항
728x90
'C# > 개념 공부' 카테고리의 다른 글
[ 내일배움캠프 ] TIL.13 - 얕은 복사 & 깊은 복사 (0) | 2024.05.01 |
---|---|
[ 내일배움캠프 ] TIL.13 - 인터페이스 ( Interface ) (0) | 2024.05.01 |
[ 내일배움캠프 ] TIL.11 - 자료구조 ( 배열 & 리스트 ) (1) | 2024.04.29 |
[ 내일배움캠프 ] TIL.09 - 조건문 & 반복문 (0) | 2024.04.25 |
[ 내일배움캠프 ] TIL.09 - 연산자 (0) | 2024.04.25 |