티스토리 뷰

Programming

OOP 객체지향 프로그래밍

noonsong 2017. 12. 12. 13:46

객체지향 프로그래밍은 프로그램을 객체들의 모임을 파악하고자 하는 프로그래밍 패러다임중 하나이다. 

프로그램을 유연하고 변경이 용이하도록 하기때문에 소프트웨어 개발과 보수를 간편하게하며, 코드분석을 직관적으로 할 수 있도록 한다.  


특징 

1) Encapsulation 

      캡슐화의 목적은 코드를 수정없이 재활용하는것이다. 

      Class & Instance : 기능과 특성의 모음을 클래스 (Class) 라는 캡슐에 분류된 집단별로 각각 집어넣는다. 이러한 클래스를 사용하여 객체 (Object) /Instance 를 만들 수 있다. 

      예를들면 TV라는 시스템을 만들때, 채널증가, 채널감소, 볼륨증가, 감소 등의 기능이 필요하다고 할때 TV라는 클래스가 이미 정해져 있고, 기능이 클래스 내에 구현되어 있다고 하면 TV 의 new Object 를 아래와 같이 만들 수 있다. 

                    TV tv = new TV();

                    tv.increaseVolume(); 


2) Inheritance

      특정 객체의 성격을 다른객체 (자식) 이 상속받아 사용할 수 있도록 하는것. 

      각 클래스를 설계할때 여러개의 클래스에 공통적으로 필요한 성격들을 가장 기본적인 클래스에 정의해두면 각 특징만 개발하고 기본적인 내용은 부모 클래스에서 상속받아 사용할 수 있도록 하는것 

      자식클래스에서 상속을 받은 부모클래스의 해당 기능만들 다시 정의해서 사용 할 수 있다. 이 기능을 오버라이딩 (Overriding) 이라고 한다. 

3) Polymorphism - 다형성

      하나의 변수명, 함수명이 상황에 따라 다른 의미로 해석될 수 있다는것을 말한다. 

      예를들어, 이름이 동일한 함수이지만 전달인자 (arg) 에 따라 - int, string 등 다르게 정의되었다면 해당 메서드를 구분지어 다른 역할을 하는 함수로 구분지어 사용할 수 있다

      이렇게 동일한 이름의 메서드를 여러번 정의하는것을 Overloading 이라고 한다. 


Languages 

루비, 파이썬, swift, 자바, C++


'Programming' 카테고리의 다른 글

[Java] 문자열  (0) 2018.03.30
[Java 문제풀이] String - Anagram  (0) 2018.03.16
[Java 문제풀이] Arrays: Left Rotation  (0) 2018.03.10
[Java 문제풀이] - 피보나치  (0) 2018.03.10
[Python] 파이썬 문법  (0) 2018.03.03
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/12   »
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
글 보관함