MY MEMO
[C#] C# 기본 문법 - 2 본문
<Class>
- 접근 한정자
public / protected / private
protected : 상속된 객체에서는 사용이 가능하나 외부에서는 접근이 불가능
internal : 한 프로젝트 안에서만 사용
protected internal : 어셈블리 내의 상속 클래스에서만 접근 가능
- 생성자 & 소멸자
ex)
MyClass{}
~MyClass{}
MyClass temp = new MyClass()
MyClass RefClass = temp; // class reference
- 인덱서
+) delegate & event
: Winform에서 가장 많이 쓰임
- delegate
복수 또는 단일 메서드를 대신하여 호출 -> 같은 형식
메서드만 호출 가능
외부에서 호출 가능 (private, protected 메서드 호출 불가)
- MultiCast Delegate
: 데이터를 여러 사용자에게 동시에 보내다
- Event (**)
특정한 상황이 발생했을 때 알리고자 하는 용도 (호출을 의미 + 데이터)
게시자 : 이벤트를 발생시키는 클래스
구독자 : 이벤트를 받거나 처리하는 클래스
델리게이트 기반 (Method 호출)
- 상속 (Object Oriented Class의 꽃!)
: 단일 상속만 가능함 (다중 상속은 불가능)
: 상속 문법
A : private protected public 변수 정의
B : A의 protected, public 사용 가능
Main : A의 public 사용 가능
생성자 호출 : 상위 -> 하위
소멸자 호출 : 하위 -> 상위
- base
: 변수명이 같을 때 제일 많이 쓰임
- sealed
: 상속불가 (멤버변수, 메서드)
- Override & Overloading
Override : 상위 클래스의 메서드를 무시하고 하위 클래스에서 메서드를 재정의
상위 클래스 : virtual
하위 클래스 : override
Overload : 같은 이름의 메서드에 다양한 parameter 사용
public void Print(){}
public void Print(int number){}
-> 매개 변수가 다름
- Abstract
: 구현하려는 메서드의 형태만 존재하는 클래스
실제 구현은 상속을 받는 하위 클래스에서 구현
new를 통해서 생성이 불가능
abstract가 있는 상위 메서드만 하위에서 모두 구현 (모두가 abstract이 아니어도 괜찮음)
- 다형성! -> 클래스의 특징 중 하나! yeah~
- Boxing & UnBoxing
Boxing : 값 형식을 object 형 변환 (int, double, float ...)
ex)
int a = 7;
object obj = a;
UnBoxing
: object 형을 다시 값 형식으로 변환
cast를 사용하여 형을 명시
ex)
int result = (int)obj;
+) UpCasting
DownCasting
- 인터페이스
구현 없이 형식만 포함 (추상 클래스)
다중 상속 가능
상속으로만 사용하고 생성은 불가
이벤트, 인덱서, 메서드 속성을 포함 할 수 없음
기본 권한은 public
'STUDYING > C#' 카테고리의 다른 글
[C#] .NET FRAMEWORK - Code First (0) | 2018.03.27 |
---|---|
[C#] .NET FRAMEWORK - .net core (0) | 2018.03.23 |
[C#] C# 기본 문법 - 1 (0) | 2018.03.22 |
[WPF] 기능 모음 (0) | 2017.09.01 |
[WPF] Web Scraping (0) | 2017.09.01 |