클래스는 참조형 변수이기 때문에 new로 메모리에 등록한후 사용해야한다. (객체화)


인스턴스 vs 객체 : 인스턴스는 본질, 객체(object)는 실물인 현상


구조체선언은 값형 클래스 선언은 참조형

접근 한정자: public(명시적)

internal(암시적,생략):같은어셈블리(exe,dll) 내부안에서만 멤버접근가능.

보통 class앞에 생략 되어있다.


Class 기본 변수,함수 선언하면 private;


객체 생성과 멤버접근:

생성:New, 해제: 가비지컬렉터 

포인터가 없어짐에따라 함수호출도 -> .으로바뀜.


생성자와 소멸자: 메서드

기본생성자: 클래스명과같은 이름, 리턴형x 매개변수x 접근한정자는 public;

소멸자 형식: 클래스명과같음 ~, 리턴형업음 접근 한정자 없음.


언어에 따른 static 역할 비교 (정적 멤버 선언과 사용)

c:변수 유지

c++ : 객체 안에서 변수 공유 //싱글톤

c#: 객체를 생성하지 않고 멤버 사용. Ex) Console.WriteLine(); CLR Main호출.


클래스 참조. This 자기자신의 객체 가리킬때


속성(ProPerty)

 private 선언된 멤버변수에 읽기 또는 저장


get ;  :

Set;   : =연산자를 통해 온다.


인덱서

인덱스: 색인 , 별도로 배열하여 놓은 목록.

키워드: 속성(프로퍼티) + 배열형식

[접근한정자]데이터형 this[int index]

{

  set{ }

 Get{ }
}

델리게이트

위임하다(대리자) 복수 또는 단일 *메서드를 대신하여 호출한다.


멀티캐스트 델리게이트: 데이터를 여러 사용자에게 동시에 보내다.

델리게이트 조합: 다수 또는 단일 메서드 호출  += -= 로 추가제거



이벤트

이벤트 핸드러를 포함하는 객체 안의 메서드를 통해 다른 객체또는 객체 메서드를 호출하는것.


델리게이트 기반(메서드 호출). 이벤트는 *메서드 안에서만 사용가능

+=,-= 

객체.이벤트 핸들러 += new 델리게이트형(객체.메서드);

객체.이벤트 핸들러 += 객체.메서드1;

 


상속 OOP: 코드양 줄이기.

대상: 클래스

목적: 클래스의 재사용.


base: 상위클래스의 생성자 또는 멤버변수 메서드 호출.

활용: 멤버 이름의 중복, 하위에서 상위 설정등(주로 생성자).   this와 비슷

Sealed : 봉인을

사용의미: 상속 불가에 대한 명시 (멤버변수,메서드) , 하위에서 접근할수없다.

 

Override: 무시하다.

C#에서의 override 의미: *상위 메서드를 무시하고 하위에서 재정의 하는것.

오버라이드 대상: 클래스 메서드 ->속성, 인덱서, 이벤트

 

상위 Virtual 명시, 하위 override 명시

Abstarct 사용시 사용.


출력: B B;

Overload: 과적하다 과부하 , 역할: 하나의 메서드명에 다양한 매개변수 적용.


추상 클래스:  abstact사용시 해당 함수에 override 써줘야한다.




인터페이스: 단일클래스만 상속되는것을 보완. 다중상속으로 꾸미기좋음.

의미: 접점,접속하다.

역할: 모든 구현은 하위에서      형식+구현 = 상속관계

특징: 구현 없이 형식만 포함( 추상클래스와 차이점: 다중상속가능)

상속으로만 사용하고 생성불가능, *이벤트,인덱서,메서드,속성을 포함, 기본권한 public 하위에서구현.

Interface Itest

{

Void Print();

}


+ Recent posts