4. 진행 예정 내용 ¶
- 다소 중요하다고 생각된 내용은 보라색 볼드(굵게) 처리하였습니다.
- #4. 클래스와 객체지향 Part.#2 (5월 25일부터 아직 진행중)
- System.Object와 System.ValueType
- 배열과 System.Array
- enum 클래스 타입
- enum과 Flag 특성
- this 예약어와 base 예약어
- 인덱서 구문
- virtual 예약어와 가상 함수
- 메서드 오버라이딩과 new 예약어를 통한 메서드 정의
- 클래스 간의 형변환
- 추상 메서드와 추상 클래스
- System.Object와 System.ValueType
- #5. 클래스와 객체지향 Part.#3
- 델리게이트(delegate)의 정의
- 델리게이트의 특성, C#과 1급 함수
- System.MulticastDelegate
- 델리게이트 인스턴스와 산술 연산자
- 콜백 메서드
- 인터페이스, 추상 클래스와 인터페이스
- 인터페이스의 구현
- 열거자와 IEnumerator, IEnumerable
- 강력한 결합과 느슨한 결합
- 구조체(Struct), 구조체와 클래스
- 깊은 복사와 얕은 복사, PBV(CBV)와 PBR(CBR)
- ref와 out 예약어를 통한 PBR
- 이벤트
- 델리게이트(delegate)의 정의
역시 모두 진행 가능할 지는 진행해야 알 것 같습니다.
5.1.1. 4. 클래스와 객체지향 Part.#2 (이어서) ¶
- Enum : 정수형 상수로 지정
- 선언
- 선언
Enum Day{ Monday, Tuesday = 2, Wednesday, Thursday, Friday, Saturday, Sunday } //Monday = 0, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5, Saturday = 6, Sunday = 7
- 사용
Day working = Day.Monday; Console.WriteLine(workingdays);//Monday Console.WriteLine((int)workingdays);//0
- 기준이 int -> 만약 크기를 키우려면 선언에서 Enum 이름 : 자료형
- Enum은 숫자다. -> Bit 연산자 사용 가능
- Flags를 붙이면 Bit 연산자로 연결하면 Monday, Tuesday 이런 식으로 출력해줌
- this와 base
- 자기자신의 인스턴스의 변수 사용 : this.변수명
- 상속한 클래스의 변수 사용 : java에서 super, C#에서는 base
- 자기자신의 인스턴스의 변수 사용 : this.변수명
- 인덱서 구문 : []구문을 재정의
- 사용
- 사용
private int[] arr; public int this[int index]{ get { return this.arr[index]; } set { this.arr[index]=value; } }
- 정의만 한다면 String이나 다른 변수도 가능
- virtual과 override
- 다형성을 위한 키워드
- virtual : 부모 클래스에 붙임(붙여도 override 안할 수도)
- override : 자식 클래스에 붙임(재정의를 확실히 하기 위해)
- new : 이름만 같고 재정의 아님
- 다형성을 위한 키워드
- 클래스 형변환
- 명시적 형변환 : explicit
- 암시적 암시적 : implicit
- 명시적 형변환 : explicit
- abstract : 틀만 제공하는 클래스
- 역시나 override를 붙여서 구현해야 함.
- 역시나 override를 붙여서 구현해야 함.
- 생성자 위임 : C++ 스타일로(: 이용)