View

클래스

sm_amoled 2018. 12. 29. 19:16
300x250

클래스 Class

단순히 기본 자료형만으로는 모델링을 하기에 제약이 너무 크다. 따라서 원하는 객체의 타입을 새롭게 정의하여 사용할 수 있게 해주는 것이 클래스의 역할.
클래스 내에서는 속성과 행위를 개발자가 정의하여 사용할 수 있다. 

클래스로 타입이 정의되면 참조형으로 분류되기 때문에 메모리 할당이 필요하다. ( C에서의 malloc과 같은 작업이 필요 = new )


Book guliver = new Book("guliver");



Book : "Book"이라는 클래스를 자료형으로 가지는
guliver : gulliver 라는 식별자를 가지도록 선언
new Book : Book의 크기만큼 메모리를 할당
("guliver") : 인자로 guliver를 전달해 Book에 값을 초기화


필드 Field

클래스 정의에서 '속성'에 해당하는 것. ( 변수의 개념 )
접근연산자 ( . ) 을 통해 사용.
멤버 변수 ( member variable ) 이라고도 부른다.

메서드 Method

클래스 정의에서 '행위'에 해당하는 것. ( 함수의 개념 )
C에서 함수를 정의하는 방식과 거의 비슷하다.
접근연산자 ( . ) 을 통해 사용.

코드의 반복을 회피하고, 에러 수정이나 유지보수에 용이하다.

메서드 내부구조를 모르더라도 Input Output의 의미를 안다면 사용할 수 있다. <- Black Box 라는 이름이 붙은 이유


생성자 Constructor

생성자를 추가해두면 클래스에서 객체가 생성되는 시점에 생성자 메서드가 자동으로 호출된다.
new -> 객체의 생성자 호출 + 초기화

class A

{

string B;

public A ( string C )

{

B = C;

}

}


클래스와 같은 이름을 가지는 것이 특징.


생성자를 명시한다면 기본 생성자가 작동하지 않기 때문에 오류가 발생할 수 있다.

여러개의 생성자 정의 또한 가능하다.


소멸자 destructor

~클래스명 으로 선언할 수 있다.
가비지콜렉터에 의해 메모리를 free 할 때 호출된다. ... 불확실한 시점에 작동한다.

현재 시점에서는 사용하지 않는 기능이라고 봐도 무방할 듯 하다.

인스턴스 멤버와 정적 멤버 instance member & static member

인스턴스 : 타입을 실체화한 객체, new를 통해 메모리에 할당된 객체
정적 : 해당 타입에 전역적으로 작용하는 멤버, static 예약어를 통해 사용, new로 객체 생성과 무관하게 사용 가능하다.

정적 생성자 : static member 를 초기화 하는 기능, 매개변수는 포함불가능하며, 단 한 번만 실행된다.

네임스페이스 namespace

중복되는 class의 이름 구분하는 역할     -> 같은 이름의 클래스라도 다른 네임스페이스에 들어있으면 다른 클래스.
많은 클래스를 분류하는 역할                 -> Header와 비슷한 역할을 하는 것으로 보인다.

같은 네임스페이스 내에서는 namespace를 명시할 필요가 없지만, 다른 namespace에서 원하는 클래스를 쓰고싶다면 namespace.class.member를 통해 접근할 수 있다.

Using 예약어를 코드 맨 위에 선언하여 객체가 속한 네임스페이스를 자동으로 찾아 적용시켜 개발에 편리하게 이용할 수 있다.

FQDN

Fully Qualified Domain Name
네임스페이스까지 명시해달라는 말 ( Console -> System.Console )





320x100

'Develop > C# 과 객체지향' 카테고리의 다른 글

상속 (2)  (0) 2019.01.02
상속 (1)  (0) 2019.01.01
캡슐화  (0) 2018.12.30
객체지향 프로그래밍  (0) 2018.12.27
C# 공부를 시작하며  (0) 2018.12.27
Share Link
reply
반응형
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31