U E D R , A S I H C RSS

Hardcore Cpp Study/두번째숙제/Characteristic OfOOP/변준원

(encapsulation)


개념관되 다. 관된 또는 기능 나로 묶는 것 런 과다. 를 들 관리 , , , 공 들 보를 가능 , 변경, 과목 기능들 다. , 기능들 모두 므로 라는 두리로 묶두는 것 다. 렇게 관된 나로 묶는 것 (encapsulation)라고 다.
로그램 미는 로그램 를 데 개발 고, 객라는 덩리 단로 문 는 데 다.

(inheritance)


라는 개념 는 개념 로그램 다. 떤 객 류, 는데 렇게 류나 subtype subclass라고 다.
로그래밍 " " 때 모든 것 는 것 를 바 는 경 방법 다. 기는 를 subclass라 고 그 바 되는 를 superclass라 다. 렇게 로 가, 라, superclass 만 고면 그 subclass들 변경된 게 되므로 매 다.



(Polymorphism)


로그램 러 목 는 다(Polymorphism) 다. 객 란, 복 가 가는 고 방법 는 능력다. , 개로 로 가 각기 다른 방법로 그 메 는 것 다. 를 들, 러 가 (file)들 . (text file), 문 기로 만든 (format file), 그래 (file with graphics) 러 가다. 들 각각 는 방법 모두 다르다, 객 럼 각 고, 각각 로 Print라는 맞게 구다.
~cpp 
Text file -> Print();
Formatted file -> Print();
File with graphics -> Print();

렇게 모두 Print라는 메며, 각 맞게 다. 렇듯 다 가 각 맞게 달리 고 같 다.




(infomation hiding)


보를 는 것 다. , 려는 데 고리 내부 들만 게 된다. 객 나 논문 두가 개념 개되는 것 바로 객라는 것 리를 로그래밍 기때문다.
보 교 공개 보를 public interface로 Interface를 그 객 보를 교다. , Public Interface를 그 객가 "무 다. 보는 공개 다."라고 는 것다.
Public Interface는 따라 다른데, C++는 "public" 구문 "public"란 목들만 공개된다. Effel는 "export"라는 란 목들만 공개된다. POINT라는 객 를 보면 move setcolor 는 public interface 다. move setcolor라는 라는 것며 각 가 가드나 고리는 것 라는 것다. 는 부 signature라고 signature는 , 력 매개변(input parameter) 력 매개변(output parameter)로 구 다.
내부 된 데가 변더라 변 객 는다는 것다. , 떤 변를 배(array)구(list) 구로 바꾸더라 로그램 다른 부 는다. 또 고리 바꾸더라 signature만 바꾸 부 객 는다. 를 들, sorting 된 sequence sorting 고리 quick sorting 고리로 바뀔때 는다. (maintainability) (extendability)다.



(Abstract Class)


(instance)를 만들 낼 목 라 subclass들 는데, (Abstract class, Virtual class)라 다. 변 부는 고, Signature만 것들 다. (Abstract function)라 부르며, subclass를 맞게 된다. subclass가 모든 때, (Concrete class)라고 부른다. 를 만들 다.
. 모든 로 가 "Printer"가 다고 다면, 를 나내는 변, 로는 는 Print 다. 그러나 다(Dot matrix printer, Laser printer, Ink jet printer) 는 방법 다르므로 는 Print라는 다. 다만, 는 Print Signature만 가며, 러 subclass 맞게 면 된다.
"Printer"라는 기능 고, dot matrix printer나 laser printer 므로, 그 를 만드는 것다. 개발 방법(Incremental Development) 며, 공 (attribute) 므로 문를 모델링는데 다.
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:21
Processing time 0.0204 sec