객체지향프로그램이란?
Object Oriented Programming (OOP)
실제 세계의 많은 것들을 객체화해서 소프트웨어를 설계하는 프로그래밍 방법론.
절차지향프그래밍 (Procedural Programming)
- 절차지향 프로그래밍 : 위에서 아래로 한 줄씩의 순차적인 처리를 기대하고 프로그램 전체를 유기적으로 설계하는 프로그래밍 방법론.
- 컴퓨터의 처리방식과 유사해 속도가 빠르다.
- 유지보수가 어렵다
OOP의 5가지 특징
- 추상화(abstraction)
- 객체들의 공통적인 특징(기능, 속성)을 도출하는 것
- 객체지향적 관점에서는 클래스를 정의하는 것을 추상화라고 할 수 있다.(클래스가 없는 객체지향 언어도 존재 ex.JavaScript)
- ex) 사람은 이름이 있고, 음식을 먹는 행위를 한다. ->
class Person() { String name; void earFood(); }
- 캡슐화(encapsulation)
- 객체의 필드(속성), 메소드를 하나로 묶어 실제 구현 내용을 외부에 감추는 것
- 외부로부터 데이터를 보호하기 위해 외부에는 불필요하거나 내부적으로만 사용되는 부분을 감추기 위해 특정 속성이나 메소드를 사용자가 사용할 수 없도록 은닉화한 것
- 상속성(inheritance)
- 하나의 클래스가 가진 특징(함수, 데이터)을 다른 클래스가 그대로 물려받는 것
- 이미 작성된 클래스를 받아서 새로운 클래스를 생성하는 것
- 기존 코드를 재활용해서 사용함으로써 객체지향 방법의 중요한 기능 중 하나에 속한다.
- 다형성(polymorphism)
- 동일한 이름의 함수를 호출해도, 기능은 다를 수 있게 하는
- 오버라이딩(Overriding), 오버로딩(Overloading)
-
오버라이딩(Overriding)
이름이 같나요? O, 매개변수가 같나요? O , 기능 재정의
-
오버로딩(Overloading)
이름이 같나요? O, 매개변수가 같나요? X
-
- 동적바인딩(Dynamic Binding)
- 바인딩 (Binding)
- 프로그램 구성 요소의 성격을 결정해주는 것
ex) 변수의 데이터 타입이 무엇인지 정해지는 것
- 프로그램 구성 요소의 성격을 결정해주는 것
- 정적 바인딩 vs 동적 바인딩
- 정적 바인딩
컴파일 시에 요소의 성격이 결정되는 것 - 동적 바인딩
런타임 시간에 요소의 성격이 결정되는 것
- 정적 바인딩
- 바인딩 (Binding)
[참고자료]
https://secretroute.tistory.com/entry/140819
http://wiki.hash.kr/index.php/캡슐화
Author And Source
이 문제에 관하여(객체지향프로그램이란?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hibeen1/객체지향프로그램이란저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)