728x90
반응형
SMALL
학습순서
- 객체지향과 절차지향
- 객체지향 기법의 구성요소
- 객체지향의 원리
- 객체지향의 개념과 객체지향 프로그래밍 언어(JAVA)
객체지향의 배경
- 객체지향 기법은 절차지향 기법의 문제점으로 인한 소프트웨어 위기의 해결책으로 채택되어 사용되었다.
- 컴퓨팅 환경에 대한 보다 많은 기능, 단순성, 재사용성, 사용 편의성 등에 대한 사용자 요구가 증가됨
객체지향 vs 절차지향
절차지향이란?
- 하나의 커다란 작업을 여러개 작은 작업으로 분할하고, 분할된 각각의 소작업을 수행하는 함수를 작성하여, 프로그램의 절차에 따라 함수를 호출하는 형태로 진행하는 기법
- 데이터와 그 데이터를 변화시키는 함수로 구성되어있다.
구성 : 데이터와 그 데이터를 변화시키는 함수
절차지향 : 프로그램 = 데이터 + 함수
객체지향이란?
- 현실 세계의 객체를 기계의 부품처럼 하나의 객체로 만들어, 기계적인 부품들을 조립하여 제품을 만들 듯이 소프트웨어를 개발할 때에도 객체들을 조립해서 작성할 수 있도록 하는 기법이다.
- 실세계의 개체를 속성과 메소드가 결합된 형태의 객체로 표현하는 개념이다.
- 실세계의 문제영역에 대한 표현을 소프트웨어 해결영역으로 매핑하는 방법으로 객체 간에 메시지를 주고 받는 형태로 시스템 구성된다.
- 각 객체는 고유 데이터와 데이터를 처리할 수 있는 메소드로 구성된다.
구성 : [객체 = 데이터 + 메소드 ( 함수 ) ] [ 프로그램 = 객체 + 객체 ]
장점 | - 현실 세계를 모형화하여 사용자와 개발자가 쉽게 이해 할 수 있다. (데이터를 원활하게 주고받으니 쉽게 이해할 수 있고 구조적으로 되니까!) - 자연적인 모델링이 가능하다 - 소프트웨어 재사용률이 높아진다. - 소프트웨어 유지보수성이 향샹된다. |
객체지향 기법의 구성요소
객체
객체 | 실세계에서 어떤 구체적 의미를 구성하는 하나의 실체 단위로 특정사물 및 개념이다. 필요로 하는 데이터와 그 위에 수행되는 메소드가 수행할 수 있는 기능들을 묶어 놓은 소프트웨어 모듈 |
데이터 | 객체가 가지고있는 정보로 속성이나 상태, 분류등을 나타낸다. 속성, 상태, 변수, 상수 자료구조라고도 한다. |
메소드(함수) | 객체가 수행하는 기능으로 객체가 갖는 데이터를 처리하는 알고리즘 객체의 상태를 참조하거나 변경하는 수단이 되는 것으로, 메소드, 서비스, 동작, 연산이라고도 한다. 기존의 구조적 기법에서의 함수, 프로시저에 해당하는 연산 |
객체의 특성 | 객체는 속성과 행동을 가지고있으며, 객체의 행동은 자신이 수행하는 오퍼레이션으로 구성된다. 객체는 상태를 유지할 수 있어야 하며, 기능을 가져야 한다. 객체는 다른 객체와 구별할 수 있는 식별자를 가지고 있으며, 일정한 기억장소를 가지고있다. 객체의 메소드는 다른객체로 부터 메시지를 받았을 때 수행된다. |
클래스 ( = 붕어빵을 만드는 형판, 테두리) 즉 이거먼저만들어야함 ㅋ
클래스 | 객체는 항상 클래스로부터 생성된다. 즉, 클래스는 객체를 생성하는 형판이다. |
클래스는 2개의 구성요소인 자료구조와 연산을 가진다. | |
클래스로 부터 생성된 객체를 인스턴스라 하며, 클래스로부터 새로운 객체를 생성하는 것을 인스턴스라 하며, 클래스로 부터 새로운 객체를 생성하는 것을 인스턴스화 라고 한다. | |
정보처리의 주체는 클래스가 아니라 객체이다. | |
객체지향 프로그래밍의 시작은 클래스의 생성이다. | |
최상위 클래스는 상위 클래스를 갖지 않는 유일한 클래스를 의미한다. | |
슈퍼(super)클래스는 특정 클래스의 상위(부모) 클래스이고, 서브클래스는 특정 클래스의 하위(자식) 클래스를 의미한다. |
클래스로부터 객체의 생성 예 (JAVA언어)
STUDENT student = new STUDENT("김은호","남자","응용소프트웨어공학과","2학년");
//객체이름 : student
//객체생성 명령 = new STUDENT
//클래스이름 : STUDENT
//매개변수 데티어 : 김은호, 남자, 응용소프트웨어공학과, 2학년
메시지
메시지 | 메시지는 객체들 간에 상호작용을 하는데 사용되는 수단으로, 객체의 메소드를 호출하는 외부의 요구사항이다. |
메시지 구성요소 | - 메시지를 받을 객체의 이름 - 송신객체가 실행을 원하는 수신객체의 메소드이름 - 실행을 원하는 메소드에 전달할 매개변수(인자, 필요할 때만 사용) |
최초 메시지가 도착을 하면
메소드와 객체고유데이터에서 상위 클래스로 타고타고 올라간다. 그리고 탐색이후 상속을 통해 하위클래스로 메소드를 내려주어 처리할 수 있도록 한다.
728x90
반응형
LIST
댓글