쿄쿄 IT
객체지향 프로그래밍(OOP, Object Oriented Programing) 본문
* 객체지향 프로그래밍(OOP, Object Oriented Programing)
공통된 속성과 기능을 가지고 있는 클래스만들고 해당 클래스를 필요한 곳에서 객체 생성하여 사용하여 재사용성을 높이고, 유지보수를 용이하게 하는 프로그래밍 방식이다.
* 객체지향 구성요소
* 클래스(Class)
- 같은 종류의 집단에 속하는 속성과 행위를 의미
- 속성은 변수의 형태로, 행위는 메서드 형태로 선언
- 공통된 속성과 행위을 갖는 객체의 집합
- 클래스에 속한 각각의 객체를 인스턴스라 하며, 클래스로부터 새로운 객체를 생성하는 것을 인스턴스화 라고 함
- 객체지향 프로그래밍의 재사용성을 높이기 위한 것으로 필요한 경우 동일한 속성과 메소드를 반복적으로 사용하는 것 이 아니라 객체를 생성해서 해당 기능 사용하면됨
* 객체(Object)
- 속성 + 메서드 = 객체
- 객체의 행위는 클래스에 정의된 행위에 대한 정의를 공유함으로써 메모리를 경제적으로 사용
- 객체마다 각각의 상태와 식별성을 가짐
* 속성(Property)
- 한 클래스내에 속한 객체들이 가지고 있는 데이터 값들을 단위별로 정의
- 성질, 분류, 식별, 수량, 현재 상태들에 대한 표현 값
* 메서드(Method)
- 클래스로부터 생성된 객체를 사용하는 방법
- 전통적 시스템의 함수(Function) 또는 프로시저(Procedure)에 해당하는 연산기능
* 메세지(Message)
- 객체에서 어떤 행위를 하도록 지시하기 위한 방법
* 인스턴스(Instance)
- 객체지향 기법에서 클래스에 속한 각각의 객체
- 실제로 메모리상에 할당
* 객체지향 기법
* 추상화(Abstraction)
- 추상적인 것 을 구체적으로 모델링 하는 모든 과정 (=객체를 만드는 모든 과정)
- 공통 성질을 추출하여 추상 클래스를 설정하는 기법
- 사물들 간의 공통점은 취하고 차이점은 버림
* 캡슐화(Encapsulation)
- 객체를 캡슐로 싸서 내부를 보호하고 볼 수 없게 하는 것으로 객체의 가장 본질적인 특징
- 서로 관련이 많은 데이터와 이와 관련된 함수들을 한 묶고 외부로부터 직접적인 접근차단 기법
* 정보은닉
- 코드 내부 데이터와 메소드를 숨기고 공개 인터페이스를 통해서만 접근이 가능하도록 하는 코드 보안 기술
* 상속(Inheritance)
- 상위 클래스의 속성과 메소드를 하위 클래스에서 재정의 없이 물려받아 사용하는 기법
- 상속받은 메소드를 추가적으로 데이터와 메소드내용 재사용 가능하다.
* 다형성(Polymorphism)
- 하나의 메세지에 대해 각 객체가 가지고 있는 고유한 방법으로 응답할 수 있는 능력
같은 이름의 메소드가 클래스 혹은 객체에 따라 다르게 동작하도록 구현되는것을 말한다.
-오버라이딩(overriding) : 슈퍼 클래스에 구현된 메소드를, 서브 클래스에서 동일한 이름으로 자신의 특징에 맞게 재정의한다.
-오버로딩(overloading): 클래스 내에서 이름이 같지만 서로 다르게 동작하는 메소드를 여러 개 만드는 메소드이다.
'취업 준비 > 기술 면접' 카테고리의 다른 글
프로세스와 스레드 (0) | 2020.12.09 |
---|---|
접근 제어자 (0) | 2020.12.09 |
JAVA 란? (0) | 2020.12.09 |
상속과 구현의 장단점/차이점 (0) | 2020.12.09 |
오버로딩 / 오버라이딩 차이 (0) | 2020.12.09 |