프로그래밍언어활용
Object Oriented 객체지향 프로그래밍 언어의 개념
- 구조적 방식의 문제점을 극복하고 인간이 사고하는 방식대로 프로그램을 개발하려는 노력으로 탄생
- 현실 세계의 개체 Entity 를 기계의 부품처럼 하나의 객체 Object 로 만들어 객체들을 조립해서 프로그램을 작성할 수 있도록 한 프로그래밍 기법
- 프로시저보다는 명령과 데이터로 구성된 객체를 중심으로 하는 프로그래밍 기법
객체지향 프로그래밍 언어의 장/단점
- 장점
- 상속을 통함 재사용과 시스템 확장이 용이
- 코드의 재활용성이 높음
- 현실 세계를 모형화하여 사용자와 개발자가 쉽게 이해
- 대형 프로그램의 작성이 용이
- 소프트웨어 개발 및 유지보수가 용이
- 단점
- 프로그래밍 구현을 지원해 주는 정형화된 분석 및 설계방법이 없음
- 구현 시 처리 시간이 지연
객체지향 프로그래밍의 특징
- Encapsulation 캡슐화
- 데이터(속성)와 데이터를 처리하는 함수를 하나로 묶는 것
- 캡슐화된 객체의 세부 내용이 외부에 은폐되어 변경이 발생할 때 오류의 파급 효과가 적음
- 캡슐화된 객체들은 재사용이 용이
- Information Hiding 정보은닉
- 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통하여 접근을 허용하는 것
- Abstraction 추상화
- 불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두어 모델화하는 것
- 공통 성질을 추출하여 슈퍼클래스를 설정하는 것
- Inheritance 상속성
- 상위 클래스의 모든 속성과 메소드를 하위 클래스가 물려 받는 것
- Polymorphism 다형성
- 동일한 이름의 메소드가 각 클래스마다 다른 사양으로 정의될 수 있음
- 다형성의 종류는 메소드 오버라이딩과 오버로딩이 있음
객체지향 프로그래밍의 구성요소
- Class 클래스
- 객체의 타입을 정의하고 객체를 생성하는 틀
- Object 객체
- 개체, 속성, 메소드로 구성된 클래스이 인스턴스
- Message 메시지
- 객체간의 통신
객체의 구성요소
- Entity 개체
- 현실 세계에 보이는 본질을 의미
- Attribute 속성
- 자료 저장소 역할을 하며, 절차 지향 프로그래밍의 변수와 대응
- Method 메소드
- 호출 단위를 의미하며, 절차지향 프로그래밍의 함수와 대응
객체지향 프로그래밍 언어의 종류
- C#
- 마이크로소프트에서 개발한 객체지향 프로그래밍 언어로, 닷넷 프레임워크의 한 부분으로 만들어짐
- JAVA
- 분산 네트워크 환경에서 적용이 가능하며, 멀티스레드 기능을 제공하여 여러 작업 동시 처리 가능
- 운영체제 및 하드웨어 독립적이며 이식성이 강함
- 캡슐화가 가능하고 재사용성이 높음
- C++
- C언어에 객체지향 개념을 적용한 언어
- 모든 문제를 객체로 모델링하여 표현