1. 개체와 클래스의 관계
- 클래스 : 변수(필드)의 모음
- 메서드 : 변수와 특정 코드의 모음
접근 한정자(정보은닉)
- 접근 한정자로 필요한 부분만 표시하여 사용할 수 있도록 함(static)
개체의 내부
- 스택 <-> 힙의 관계
- 스택 : 저장소
- 힙 : 저장(메모리 정리)
개체를 사용한다는 것
- 개체를 사용하는 것은 힙이라는 저장소를 사용
- 개체는 선언하면 메모리에 힙이라는 저장소를 사용하여 저장
- 스택이란 공간도 같이 활용
- 스택은 힙의 주소만 갖고 있음(안내의 역할 : 실제 데이터가 어디에 있는지 알고 있음)
- 데이터를 요청 시 실제 데이터의 위치를 안내함
개체를 사용하기 위해 하는 것
- 인스턴스를 한다고 하면 개체를 선언함(사용하기 위한 작업 : 신고)
- 즉, 인스턴스는 클래스를 변수화 하는 과정
- new 키워드를 사용함
개체와 클래스의 관계
- 클래스를 인스턴스 한 결과가 개체
클래스
- 메서드와 필드의 집합체
- 클래스 안에는 메서드가 n개 이상 있음
- 클래스 안에 필드(전역변수)가 n개 이상 있을 수 있음(없어도 됨)
- 선언할 때, class를 사용
개체를 선언(인스턴스)
- 개체 : 클래스의 변수
- New 키워드 사용
- ex MyClass m = new MyClass();
- 인스턴스 결과물 m(m이 개체임)
개체에서 주의할 키워드
- this 예약어 : 개체가 자기 자신을 가리키는 키워드
- 상속 및 외부에서 호출할 때 이름이 같을 경우 구분할 경우 사용
클래스도 접근 한정자를 사용
- 은닉성(Encapsulation)
- 최소한의 기능만을 노출하고 내부는 모두 감추는 것
- 상속성과 다형성과 함꼐 OPP의 3대 특성
- 대체로 필드는 모두 감추고 메서드는 꼭 노출이 필요한 것만 공개
2. 클래스의 이해 - 개체지향의 상속
상속이란
- 이미 만들어진 클래스를 새롭게 만든 클래스에서 상속을 받는 것
- 부모 클래스의 모든 기능은 자식(파생) 클래스에서 사용할 수 있음
- '파생 클래스 : 기반클래스' 입력하여 사용
개체도 변수이므로 형변환이 가능함
- is 연산자 : 객체가 해당 형식에 해다하는지를 검사하여 그 결과를 bool값으로 반환
- as 연산자 : 형식 변환 연산자와 같은 역할
- 다만, 형변환 연산자가 변환에 실패하는 경우 예외를 던지는 반면에 as 연산자는 객체 참조를 null로 만든다는 것이 다름
3. 오버라이드와 다형성
개체 지향에서의 다형성(Polymorphism)
- 개체 지향에서 다형성은 개체가 여러 형태를 가지다는 의미
- 즉 상속 받은 클래스내에 같은 이름의 메서드를 구현하면서 기능을 추 가하거나 그대로 사용할 수 있음
- 쉽게 말해 부모 클래스의 메서드를 다시 재 정의 할 수 있는 기능 : Overriding (오버라이딩)
오버라이딩(Overriding) & 오버라이드
- 부모 클래스에 있는 메서드를 내가 다시 만드는 것
- 다시 만들기 위해서는 부모 클래스에 특정 키워드가 있는 것을 재 정의 할 수 있음
- 키워드 : virtual
Sealed 한정자
- 메서드에 사용하면 손자까지 상속 불가
- 클래스에서 사용하면 상속 불가 클래스
- 실제 이를 이용하여 상용 컴포넌트 개발회사들이 만든 기능을 숨김 및 상속 불가 등으로 구성하여 제품을 판매함
Namespace
- 클래스들의 묶음
- 네임스페이스는 비슷한 기능의 클래스들을 묶어서 관리할 때 사용
- 실무에서는 하나의 .exe파일에 하나의 네임스페이스를 사용(여러개 쓰기도 함)
- 네임스페이스는 비슷한 기능을 하는 클래스들을 폴더로 구분하여 관리하는 것이 더 유리함
'프로그래밍 > C#' 카테고리의 다른 글
7. C# 기초 4일차 실습 (0) | 2021.11.04 |
---|---|
6. C# 기초 - 3일차 개체 지향 프로그래밍(메서드 및 클래스) (0) | 2021.11.03 |
4. C# 기초 -2일차(실습) (0) | 2021.11.02 |
3. C# 기초 -2일차(이론) (0) | 2021.11.02 |
2. C# 기초 -1일차(실습) (0) | 2021.11.01 |