본문 바로가기

카테고리 없음

객체지향프로그래밍 ( Object Oriented Programing) - OOP

객체지향프로그래밍 (OOP)는 객체의 관점에서 프로그래밍 하는 것이다.

객체들의 유기적인 관계를 통해 프로세스가 진행된다.

애플리케이션을 구성하는 요소들을 객체로 바라보고, 객체들을 유기적으로 연결하여 프로그래밍하는 것을 말한다.

 

객체 (Object) 란?

물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서

자신과 다른 것을 식별가능한 것을 말한다.

속성과 동작으로 구성되어 있다. 자바에서는 속성을 필드, 동작을 메소드라고 한다.

객체지향의 특징

1. 추상화

객체들의 공통의 속성이나 기능을 묶어 이름을 붙이는 것으로

목적과 관련이 없는 부분을 제거하여 필요한 부분만을 표현하기 위한 개념이다.

 

2. 캡슐화

객체의 필드, 메소드를 하나로 묶고 실제 구현내용을 감추는 것이다.

불필요한 정보를 감출 수 있기 때문에 정보은닉을 할 수 있다는 특징이 있다.

- 데이터 보호의 장점 : 은닉화를 통해 데이터의 접근을 제어할 수 있다.

- 유지보수성의 장점 : 객체에 대한 수정작업으로 인해 객체 활용도에 문제가 발생하면

                            제품 하나에 대한 upgrade가 어려울 것이다.

                            자바에서는 각 기능을 하나의 모듈(부품)처럼 활용하여

                            객체간의 이식성이 높고 독립적인 면을 유지할 수 있다.

- 사용자 편의성 장점

- 사용예시

Class Sample {

      private int a; // 은닉화

      // 캡슐화

      public void setA(int b) {

             a = b;

      }

      public int getA() {

            return a;

      }

}

 

public class Sample2 {

   public static void main(Stirng[] args) {

      Variable v = new Variable();

      System.out.println(v.a);  -> 호출불가

      v.setA(100);

      System.out.println(v.getA()); 

  }

}

 

3. 다형성

동일한 요청이 들어왔을 때 그것을 구현하는 방법에 차이를 두어 다른 결과를 만들어 내는 것이다.

형태는 같은데 다른 기능을 하는 것을 의미한다.

같은 이름의 속성을 유지함으로써 속성을 사용하기 위한 인터페이스를 유지하고,

메서드 이름을 낭비하지 않을 수 있다.

 

4. 상속성

상위개념의 특징을 하위개념이 물려받는 것이다.

상속이 필요한 이유는 코드의 중복을 없애기 위해서다. 

객체지향과 절차지향의 차이?

절차지향은 말 그대로 순차적인 처리가 중요시되며

프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법이다.

대표적인 절차지향 언어로 C언어가 있다.

컴퓨터의 작업 처리 방식과 유사하기 대문에 객체지향에 비해 빨리 처리되어 시간적으로 유리하다.

 

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

개발하려는 것을 기능별로 묶어 모듈화함으로써 하드웨어가 같은 기능을 중복으로 연산하지 않도록 하고,

모듈을 재활용하기 때문에 하드웨어의 처리량을 줄여준다.