반응형
객체지향 개요
절차지향 프로그래밍
- 객제지향 언어 개념이 나오면서 기존 프로그래밍 방식을 표현하기 위해서 사용
- 큰 틀은 일련의 동작(모듈, 함수)를 순서에 맞게 단계적으로 실행
- 데이터와 속성보다는 명령어의 순서와 흐름에 포커싱
- 소프트웨어 규모가 커짐과 동시에 기능들이 복잡해지면서 추가 개발이나 유지보수의 어려움과 한계를 느낌
- 절차적 프로그래밍 / 구조적 프로그래밍
객체지향 프로그래밍
- 클래스를 생성하고 클래스로부터 객체를 만들어 객체 간의 상호작용을 이용하여 주어진 문제를 해결하는 프로그래밍 방식
- 데이터인 필드와 절차인 메소드를 하나로 묶은 클래스 단위의 프로그램
- 현실 시계를 객체 단위로 프로그래밍하여, 객체는 필드(데이터)와 메서드(코드)를 하나의 블록으로 묶어서 표현
객체지향 프로그래밍 언어
- 원조는 시뮬라(simula)라는 프로그램 언어
- 1960년에 조한 달과 크리스틴이 시뮬라67 발표
- 클래스라는 개념을 처음으로 도입
객체의 구성
객체
- 현실 세계의 사물이나 개념을 시스템에서 이용하기 위해 현실 세계를 자연스럽게 표현하여 손쉽게 이용할 수 있도록 만든 소프트웨어 모델
객체 = 속성 (attributes, properties) + 행동 (messages, behaviors)
속성
- 객체의 특성을 표현하는 정적인 성질
- 프로그래밍에서 속성은 필드(field)라 함
- 객체를 구별시키는 특성 (외모, 상태 등)
행동
- 객체 내부의 일을 처리하거나 객체들 간의 영향을 주고받는 동적인 일을 처리하는 단위
- 행동은 메소드(method)라 함
- 동작을 기술
객체와 클래스
클래스
- 객체를 만들기 위한 모형이자 틀(template)
- 객체를 만들기 위해서는 반드시 객체의 다양한 특성을 표현할 수 있는 모형인 클래스가 필요
객체
- 클래스와 구체적인 하나의 실체(instance)
- 객체와 클래스의 예 (붕어빵 틀과 붕어빵, 설계도와 실물 집)
반응형
'cs > java-spring-boot' 카테고리의 다른 글
[Zero-base] 2-3. 클래스와 객체의 생성 (0) | 2022.01.18 |
---|---|
[Zero-base] 2-2. 객체지향 언어의 4가지 특징 (0) | 2022.01.18 |
[Zero-base] 1주차 과제 - 3번 과제 (AlphabetFinder.java) (0) | 2022.01.16 |
[Zero-base] 1주차 과제 - 2번 과제 (ClassManagement.java) (0) | 2022.01.14 |
[Zero-base] 1주차 과제 - 1번 과제 (FindName.java) (0) | 2022.01.14 |