[[TableOfContents]]

== 개요 ==
 * 객체 지향에 조금 더 가깝게!

== 참가자 ==
 * [신형철], [강민승], [이승현], [홍성현], [박인서], [김상렬]

== 진행 시간 ==
 * 19시 ~ 

== 진행 예정 내용 ==
 * 다소 중요하다고 생각된 내용은 [[HTML(<font color="#9933ff"><b>보라색 볼드(굵게)</b></font>)]] 처리하였습니다.

 * #4. 클래스와 객체지향 Part.#2 [[HTML(<font color="#287a63"><b>(5월 25일부터 아직 진행중)</b></font>)]]
  * System.Object와 System.ValueType
  * ë°°ì—´ê³¼ System.Array
  * [[HTML(<font color="#9933ff"><b>enum 클래스 타입</b></font>)]]
  * enum과 Flag 특성
  * [[HTML(<font color="#9933ff"><b>this 예약어와 base 예약어</b></font>)]]
  * [[HTML(<font color="#9933ff"><b>인덱서 구문</b></font>)]]
  * [[HTML(<font color="#9933ff"><b>virtual 예약어와 가상 함수</b></font>)]]
  * [[HTML(<font color="#9933ff"><b>메서드 오버라이딩과 new 예약어를 통한 메서드 정의</b></font>)]]
  * [[HTML(<font color="#9933ff"><b>클래스 간의 형변환</b></font>)]]
  * [[HTML(<font color="#9933ff"><b>추상 메서드와 추상 클래스</b></font>)]]

 * #5. 클래스와 객체지향 Part.#3
  * [[HTML(<font color="#9933ff"><b>델리게이트(delegate)의 정의</b></font>)]]
  * [[HTML(<font color="#9933ff"><b>델리게이트의 특성, C#과 1급 함수</b></font>)]]
  * System.MulticastDelegate
  * [[HTML(<font color="#9933ff"><b>델리게이트 인스턴스와 산술 연산자</b></font>)]]
  * [[HTML(<font color="#9933ff"><b>콜백 메서드</b></font>)]]
  * [[HTML(<font color="#9933ff"><b>인터페이스, 추상 클래스와 인터페이스</b></font>)]]
  * [[HTML(<font color="#9933ff"><b>인터페이스의 구현</b></font>)]]
  * [[HTML(<font color="#9933ff"><b>열거자와 IEnumerator, IEnumerable</b></font>)]]
  * 강력한 결합과 느슨한 결합
  * [[HTML(<font color="#9933ff"><b>구조체(Struct), 구조체와 클래스</b></font>)]]
  * [[HTML(<font color="#9933ff"><b>깊은 복사와 얕은 복사, PBV(CBV)와 PBR(CBR)</b></font>)]]
  * [[HTML(<font color="#9933ff"><b>ref와 out 예약어를 통한 PBR</b></font>)]]
  * [[HTML(<font color="#9933ff"><b>이벤트</b></font>)]]

 * ~~역시 모두 진행 가능할 지는 진행해야 알 것 같습니다.~~
== ì§„í–‰ ==
=== 내용 요약 ===
==== 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
 * 인덱서 구문 : []구문을 재정의
  * 사용
{{{
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
 * abstract : 틀만 제공하는 클래스
  * 역시나 override를 붙여서 구현해야 함.
 * 생성자 위임 : C++ 스타일로(: 이용)

==== 5. 클래스와 객체지향 Part.#3 ====


=== 그 외 ===
== 덧글 ==
--------------------------------
[CS]