티스토리 뷰
객체지향 프로그래밍은 프로그램을 객체들의 모임을 파악하고자 하는 프로그래밍 패러다임중 하나이다.
프로그램을 유연하고 변경이 용이하도록 하기때문에 소프트웨어 개발과 보수를 간편하게하며, 코드분석을 직관적으로 할 수 있도록 한다.
특징
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 |