본문 바로가기
카테고리 없음

클래스 관련 핵심이론

by ByteBridge 2013. 2. 23.
반응형

객체:

인스턴스와 메소드를 포함 한 개념->클래스로부터 만들어진 실체 or 변수


클래스는 타입이다.--> 클래스는 타입이기때문에 int 와 같다


사용할 준비가 완료된 하나의 물건 또는 인스턴스다.


클래스를 만들어 놓으면 그냥 타입이다 라고 알려만 주는것이다.


Class A --> A a --> a 는 객체이다. 즉 클래스에의하여 만들어진 객체 a 이다.


만들어지기전 인스턴스화가 일어난다. 


타입을 사용하려면 만들어줘야한다. 즉 a 라는 객체를 만들어야한다. 이때 일어나는것이 인스턴스화가 일어났다 라고 한다.


인스턴스화:

--> 메모리 공간에 구체화 또는 실체화 시키는것이다.


--> 클래스가 객체는 아니다 왜? 아직 인스턴스화가 되지않았기때문이다. 


--> 같은 클래스 타입의 객체를 여러개의 객체를 만들수있다. 만들어진 주소는 다르다.


클래스의 정의 및 정의와 특성 :

--> 데이터와 기능 동작으로 이루어진 사용자 정의 타입이다.

특성:

정보 은닉

--> 데이터를 숨기는것 : 외부에서 보지못하도록 하는것, 정보를 숨기는것

--> 클래스의 독립성을 유지시킬수있다. 외부에서는 이용만 가능하다.

캡슐화

--> 정보은닉때문에 캡슐화가 된다.외부에 공개할것은 공개하고 , 공개하지않을것은 숨기는것, 비슷한 것 들 끼리 감싸놓은 상태에서,  

인터페이스: 

--> 사용자와의 약속(함수의 프로토타입과 같은것,) 이러한 인터페이스만 공개하는것,

다형성

--> 전구에서 소켓부분과 동일함, 소켓만 동일하다면 모양은 상관없는것처럼 

--> 오버라이드,순가상,추상화, 등등 과같다.

--> 동일한부모에서 태어난 자식들과같은것,

재사용성

--> 동일한 부품에 하나의 또다른 부품을 맞춤으로써 새로운 부품을 만들어 내는것

--> 하나의 타입을 이용하여 새로운 타입으로 만드는것

추상화

--> 효율적으로 클래스를 만들기 위하여 공통된 성질이나 특성들을 구조나 설계를 일반화시키면서 구체화 시키는 키는것이다. 

인터페이스란: 

--> 리모컨의 버튼같은것, 리모컨에서 버튼같은것들, 사용자와 실질적으로 맞닿는 접점들이다.

--> 사용자와의 약속된 부분, 리모컨에서 전원버튼은 꺼진다 와같은것,


접근권한 지정자 종류:


public: 쉬운 걸이나 보이 (열린 좌물쇠)


private: 도도한 걸이나 보이 (잠긴 자물쇠)


protected: 부모자식간 접근을 허용함 ,외부에는 private 이다.


인스턴스와 객체의 차이점:


생성자란:


--> 클래스가 인스턴스화 될때 호출되는 특별한 함수이며, 반환값은 없으며, 클래스와 동일한 이름을 가지며 시스템 내부에서 자동으로, 함수 오버로딩 가능, 객체 생성시 동일한 타입이 존재하여야한다.

하나이상의 생성자가 존재한다면 디폴트 생성자를 제공하지않는다.


소멸자


--> 객체가 소멸되기전 호출되는 함수, 반환값이 존재하지않고, 클래스 이름과 동일함


복사생성자란: 


--> 동일한  객체를 복사해서 생성하는 생성자이다.

클래스에서 기본적으로 제공되는것:


--> 일반 생성자,대입연산자,디폴트생성자 소멸자, 캐스팅 연산자, 복사 생성자, 


virtual :

--> 가상함수 테이블이 만들어진다. 4바이트의 가상함수 테이블이 존재한다.

--> 오버라이딩을 하기위한 하나의 기술이다.


가상함수:

--> 오버라이딩을 해도되고 안해도 되는것

--> 키워드는 존재하지만 자식에서 재정의 , 오버라이딩 할수있도록 한것


순가상 함수:


--> 자식에서 무조건 재정의 하도록 하는것

--> 이것을 포함한 클래스는 절대로 인스턴스화 할수없다


함수 오버라이딩


--> 함수오버라이딩: 버츄얼 키워드가 존재하고 반환값과 시그니쳐 함수이름 이 동일하여야한다.
























반응형