728x90
반응형

객체지향 ? 실제 세계를 모델링하여 소프트웨어를 개발하는 방법


절차 지향 프로그래밍(procedural programming) : 문제를 해결하는 절차를 중요하게 생각하는 방법

 - 데이터와 알고리즘이 묶여있지 않다.


객체 지향 프로그래밍(Object-Oriented Programming) : 데이터와 절차를 하나의 덩어리(객체)로 묶어서 생각하는 방법

 - 객체 지향 소프트웨어를 작성하는 것은 컴퓨터 하드웨어 부품을 구입하여서 컴퓨터를 조립하는 것과 비슷하다.

 - 데이터와 알고리즘이 묶여있다.


객체 지향 언어의 특징

 ▶ 기존의 프로그래밍언어와 크게 다르지 않다.

       - 기존의 프로그래밍 언어에 몇가지 규칙을 추가한 것일 뿐이다.

       - 3가지 중요 관점 : 재사용성, 유지보수, 중복의 제거

 

 ▶ 코드의 재사용성이 높다.

       - 클래스를 정의하고 상속이라는 기능을 통해 기존에 작성된 코드를 이용하여 새로운 코드를 쉽게 작성할 수 있다.

 ▶ 코드의 관리가 쉬워졌다.

       - 기존의 절차적 언어에서는 프로그램의 일부를 변경할 때 변경된 코드와 관련된 부분도 일일이 수정해야하지만, 객체지향 언어에서는 코드간의 관계를 맺어줄수 있기 때문에 코드가 변경되면 관련된 코드들도 자동적으로 변경되는것과 같은 결과를 얻을 수 있어서 코드를 관리하는 것이 쉽다.

 ▶ 신뢰성이 높은 프로그램의 개발을 가능하게 한다.

       - 제어자와 메서드를 통해서 중요한 데이터가 외부에서 임의로 변경되는 것으로부터 보호하고, 데이터가 적절하지 않은 값이 되는 것을 말을 수 있다. 예를 들어, 비밀번호와 같이 중요한 데이터를 외부에서 접근하지 못하게 하거나 날짜의 월 데이터가 13월이 되는 것 등을 막을 수 있다.


객체 재향의 3대 특징

-> 캡슐화(encapsulation) :: 관련된 데이터와 알고리즘(코드)이 하나의 묶음으로 정리되어 있는 것

-> 상속(inheritance) :: 이미 작성된 클래스(부모 클래스)를 이어받아서 새로운 클래스(자식 클래스)를 생성하는 기법. 기존의 코드를 재황욜하기 위한 기법.

-> 다형성 :: 하나의 이름(방법)으로 많은 상황에 대처하는 기법. 개념적으로 동일한 작업을 하는 멤버 함수들에 똑같은 이름을 부여 할 수 있으므로 코드가 더 간단해진다.



쉬은 디버깅

 예를 들어서 절차 지향 프로그램에서 하나의 변수를 1000개의 함수가 사용하고 있다고 가정해보자

 -> 하나의 변수를 1000개의 함수에서 변경할 수 있다.

 객체 지향 프로그램에서 100개의 클래스가 있고 클래스당 10개의 메소드를 가정해보자

 -> 하나의 변수를 10의 메소드에서 변경할 수 있다.

728x90
반응형

+ Recent posts