Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Olive Study Room

[CS] OOP(Object Oriented Programming)란? 본문

cs

[CS] OOP(Object Oriented Programming)란?

Olive Dev 2021. 6. 6. 14:41

Class

object의 템플릿. 데이터필드와 메소드 필드를 갖는다.

object

클래스의 인스턴스

 

선지식..!


OOP

(Object Oriented Programming) 객체 지향 프로그래밍
  • 문제를 여러 개의 객체 단위로 나누어 작업하는 것
  • 공장에 설계도를 만들어(=클래스) 인스턴스(객체)를 찍어내는 방식.
  • OOP는 절자치향(C언어와 같은)에 비해 사람의 사고방식처럼 유기적인 관계로 프로세스가 진행된다.

 

OOP의 특징

1. Encapsulation(캡슐화)

객체의 특정한 목적을 위한 변수나 메소드를 하나로 묶는 것

클래스를 만들 때 추후 특정한 목적을 잘 수행할 수 있도록 변수와 메소드를 관련성있게 구성해야 한다.

캡슐화의 목적은 정보 은닉이다!

 

* 정보 은닉이란?

getter와 setter로 메서드를 통해서만 접근하면 변수를 안전하게 보호할 수 있다.

example. user객체에 접근할 때 개인정보는 private으로 선언하고 메서드의 getter, setter를 통해 접근한다.

 

2. Inheritance(상속)

기존 상위 클래스의 기능을 가져와 재사용할 수 있는 기능
  • 클래스간의 부모-자식 관계
  • 상위 클래스의 기능 뿐만 아니라 새 기능을 추가할 수도 있다.
  • 코드의 재사용성, 중복 제거, 유지 보수 편의를 위해 사용한다.

 

3. Polymorphism(다형성)

형태가 같은데 다른 기능을 하는 것
  • 코드 재사용을 가능하게 해 유지보수가 용이하고 코드 길이도 감소할 수 있다.
  • 메소드 이름의 낭비를 막는다.
  • 오버라이딩과 오버로딩을 통해 구현한다.

* Overriding & Overloading 이란?

오버라이딩 : 부모 클래스에서 상속받은 메소드를 재 정의해서 사용하는 것

오버로딩 : 매개변수 갯수나 데이터 타입이 다르게 이미 있는 이름의 메소드를 추가하는 것

 

 

4. Abstraction(추상화)

객체의 공통된 부분을 표현하는 것
  • 공통으로 필요한 변수와 메소드를 갖는 클래스(추상 클래스)를 만든다.
  • 가상클래스를 부모로 갖고 있는 자식 클래스는 가상함수를 꼭 구현해야 한다.

주로 architecture가 가상클래스를 구현함으로써 개발자가 가상함수를 구현하도록 한다.

 

 

 

.. 추후 추가 예정!

Comments