JAVA 09. Object Oriented Programming
Chapter | 1 | ~ | 4 | ||
---|---|---|---|---|---|
Ch 1 | 01 | ||||
Ch 2 | 02 | 03 | 04 | 05 | |
Ch 3 | 06 | 07 | 08 | ||
Ch 4 | 09 | 10 | 11 | 12 | 13 |
Next Section |
---|
Object Oriented Programming : 객체 지향 프로그래밍
객체지향 언어의 특성
- 캡슐화 : 객체를 캡슐로 싸서 내부를 볼 수 없게 하는 것
- 객체의 가장 본질적인 특성 : 외부의 접근으로부터 객체를 보호
- 자바에서의 캡슐화 : class & object
- class : 객체 모양을 선언한 틀 (캡슐화 하는 틀)
- object : 생성된 실체 (인스턴스)
class Animal { //객체 필드 (object field) String name; int age; //객체 메소드 (object method) void eat() { ... } void speak() { ... } }
- 상속
- 상위 개체의 속성이 하위 개체에 물려짐
- 하위 개체가 상위 개체의 속성을 모두 가지는 관계
- 나무는 식물의 속성과 생물의 속성을 모두 가짐
-
사람은 생물의 속성을 갖지만, 식물의 속성을 갖지는 않음
- 자바에서의 상속 : extends
- 상위 클래스의 멤버를 하위 클래스가 물려받음
- 상위 클래스(부모 클래스, 슈퍼 클래스)
- 하위 클래스(자식 클래스, 서브 클래스) : 수퍼 클래스의 코드 재사용, 새로운 특성 추가 가능
class Human extends Animal { String hobby; String job; void work() { ... } void coding() { ... } }
- 다형성
- 같은 이름의 메소드가 클래스 혹은 객체에 따라 다르게 구현되는 것
- method overloading : 한 클래스 내에서 같은 이름이지만 다르게 작동하는 여러 메소드
- method overriding : 슈퍼 클래스의 메소드를 동일한 이름으로 서브 클래스마다 다르게 구현
객체지향 언어의 목적
- 소프트웨어의 생산성 향상
- 컴퓨터 산업 발전에 따라 소프트웨어의 생산 주기 단축
- 소프트웨어를 빠른 속도로 생산할 필요성 증대
- 객체 지향 언어
- 상속, 다향성, 객체, 캡슐화 등 소프트웨어 재사용을 위한 여러 장치
- 소프트웨어 재사용과 부분 수정 가능
- 소프트웨어를 다시 만드는 부담 줄임
- 소프트웨어 생산성 향상
- 컴퓨터 산업 발전에 따라 소프트웨어의 생산 주기 단축
- 실세계에 대한 쉬운 모델링
- 초기 프로그래밍 : 수학 계산/통계 처리 등 처리과정, 계산절차 중요
- 현대 프로그래밍
- 컴퓨터가 산업 전반에 활용
- 실세계에서 발생하는 일을 프로그래밍
- 실세계에서는 절차나 과정보다 객체간의 상호작용으로 묘사하는 것이 용이
- 객체 지향 언어
- 실세계의 일을 보다 쉽게 프로그래밍하기 위한 객체 중심적 언어
절차지향 프로그래밍 vs 객체지향 프로그래밍
- 절차 지향 프로그래밍
- 작업 순서를 표현하는 컴퓨터 명령 집합
- 함수들의 집합으로 프로그램 작성
- 객체 지향 프로그래밍
- 컴퓨터가 수행하는 작업을 객체 간의 상호작용으로 표현
- 클래스 혹은 객체의 집합으로 프로그램 작성
Thanks for watching my post!
Comments