절차지향 프로그래밍

-       큰 문제를 작은 문제 단위로 쪼개어 순차적으로 진행되는 형태

 

객체지향 프로그래밍

-       기능 단위로 구분하여 각 기능들을 조립하여 하나의 프로그래밍을 만드는 형태

 

등장배경

하드웨어가 빨라지고 대용량화 되는 시기에 소프트웨어가 하드웨어의 성장을 따라가기 힘든 상황이 발생하였고 그 상황이 바로 소프트웨어의 위기이다

그에 따라 소프트웨어의 대응책으로 여러 가지 개발방법이 생겨 났고 그 중에 가장 탁월한 기법인 객체지향적 프로그래밍(Object Oriented Programming)방식이다

 

객체지향적 프로그래밍(Object Oriented Programming) 특징

캡슐화 ( Encapsulation )

-       데이터와 기능을 하나의 단위로 묶는 과정

Why?

-       독립적이며 프로그램의 부품으로 활용

정보 은폐 ( Information Hiding )

-       외부에서 사용하는 기능만 제공하고 나머지는 숨기는 것

Why?

-       객체의 손상을 방지하기 위해서

추상화 ( Abstraction )

-       캡슐화와 정보 은폐를 통해 외부의 사용자에게 제공하는 인터페이스를 설계하는 과정

Why?

-       객체의 효율적이고 안전한 사용을 위해서

 

상속 ( Inheritance )

-       추상화를 통해 만들어진 기본 클래스 ( Based Class )를 기반으로 모든 속성이나 기능을 물려 받아 새로운 클래스를 만드는 것. ( 파생 클래스 : Derived Class )

Why?

-       필요한 기능을 추가 / 변경 / 제거 하여 새로운 클래스를 만들 수 있기 때문에

 

다형성 ( Polymorphism )

-       똑같은 호출이라도 상황에 따라 같거나 다른 동작을 수행 하는 것.

Why?

-       코드의 일관성

 

접근지시자 ( Access Specifier )

-       클래스 멤버들의 허용 범위를 지정하는 것

-        

클래스의 기본 접근권한은 private

 

클래스 내부

상속 클래스

외부 클래스

public

가능

가능

가능

protected

가능

가능

불가능

private

가능

불가능

불가능


+ Recent posts