본문 바로가기

정리 카테고리/Memo

클래스 종류와 멤버 객체 소멸자와 관련된

출처::https://docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/classes-and-structs/abstract-and-sealed-classes-and-class-members



추상 클래스는 인스턴스화할 수 없습니다.

추상 클래스의 목적은 여러 파생 클래스에서 공유할 수 있는 기본 클래스의 공통적인 정의를 제공하는 것입니다.



봉인 클래스는 기본 클래스로 사용할 수 없습니다. 그러므로 추상 클래스가 될 수도 없습니다. 봉인 클래스는 상속할 수 없습니다. 

봉인 클래스는 기본 클래스로 사용될 수 없으므로 일부 런타임 최적화에서는 봉인 클래스 멤버 호출이 약간 더 빨라집니다.



정적 클래스는 기본적으로 비정적 클래스와 동일하지만, 정적 클래스는 인스턴스화할 수 없다는 한 가지 차이점이 있습니다.

즉, new 키워드를 사용하여 클래스 형식의 변수를 만들 수 없습니다. 

인스턴스 변수가 없기 때문에 클래스 이름 자체를 사용하여 정적 클래스의 멤버에 액세스합니다. 






출처::https://docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/classes-and-structs/members


멤버설명
필드필드는 클래스 범위에서 선언된 변수입니다. 필드는 기본 제공 숫자 형식 또는 다른 클래스의 인스턴스일 수 있습니다.
예를 들어 달력 클래스에는 현재 날짜를 포함하는 필드가 있을 수 있습니다.
상수상수는 해당 값이 컴파일 시간에 설정되며 변경할 수 없는 필드 또는 속성입니다.
속성속성은 해당 클래스의 필드처럼 액세스되는 클래스의 메서드입니다.
속성은 클래스 필드에 대한 보호를 제공하여 개체 모르게 필드가 변경되지 않도록 할 수 있습니다.
메서드메서드는 클래스가 수행할 수 있는 작업을 정의합니다. 메서드는 입력 데이터를 제공하는 매개 변수를 사용할 수 있으며,
 매개 변수를 통해 출력 데이터를 반환할 수 있습니다.
 메서드가 매개 변수를 사용하지 않고 직접 값을 반환할 수도 있습니다.
이벤트이벤트는 단추 클릭, 성공적인 메서드 완료 등의 발생에 대한 알림을 다른 개체에 제공합니다. 이벤트는 대리자를 사용하여 정의 및 트리거됩니다.
연산자오버로드된 연산자는 클래스 멤버로 간주됩니다. 연산자를 오버로드하는 경우 클래스에서 공용 정적 메서드로 정의합니다.
미리 정의된 연산자(+*<등)는 멤버로 간주되지 않습니다. 자세한 내용은 오버로드할 수 있는 연산자를 참조하세요.
인덱서인덱서를 사용하면 배열과 유사한 방식으로 개체를 인덱싱할 수 있습니다.
생성자생성자는 개체를 처음 만들 때 호출되는 메서드입니다. 대체로 개체의 데이터를 초기화하는 데 사용됩니다.
종료자종료자는 C#에서 매우 드물게 사용됩니다. 메모리에서 개체를 제거할 때 런타임 실행 엔진이 호출하는 메서드입니다.
일반적으로 해제해야 하는 리소스가 적절하게 처리되도록 하는 데 사용됩니다.
중첩 형식중첩 형식은 다른 형식 내에서 선언된 형식입니다. 중첩 형식은 대체로 개체를 포함하는 형식에서만 사용되는 개체를 설명하는 데 사용됩니다.




http://www.oraclejavanew.kr/bbs/board.php?bo_table=LecCsharp&wr_id=135 ::객체 소멸자 관련 출처



객체의 존속기는 new를 이용하여 메모리를 할당받는 순간부터 메모리를 Heap에 반환 할 때 까지이다.