JAVA 09. Object Oriented Programming

1 minute read

Chapter 1 ~ 4    
Ch 1 01        
Ch 2 02 03 04 05  
Ch 3 06 07 08    
Ch 4 09 10 11 12 13
Next Section
 

Object Oriented Programming : 객체 지향 프로그래밍

객체지향 언어의 특성

  • 캡슐화 : 객체를 캡슐로 싸서 내부를 볼 수 없게 하는 것
    • 객체의 가장 본질적인 특성 : 외부의 접근으로부터 객체를 보호

    0401

    • 자바에서의 캡슐화 : class & object
      • class : 객체 모양을 선언한 틀 (캡슐화 하는 틀)
      • object : 생성된 실체 (인스턴스)
    class Animal {
      //객체 필드 (object field)
      String name;
      int age;
        
      //객체 메소드 (object method)
      void eat() { ... }
      void speak() { ... }
    }
    
  • 상속
    • 상위 개체의 속성이 하위 개체에 물려짐
    • 하위 개체가 상위 개체의 속성을 모두 가지는 관계

    0402

    • 나무는 식물의 속성과 생물의 속성을 모두 가짐
    • 사람은 생물의 속성을 갖지만, 식물의 속성을 갖지는 않음

    • 자바에서의 상속 : extends
      • 상위 클래스의 멤버를 하위 클래스가 물려받음
      • 상위 클래스(부모 클래스, 슈퍼 클래스)
      • 하위 클래스(자식 클래스, 서브 클래스) : 수퍼 클래스의 코드 재사용, 새로운 특성 추가 가능
    class Human extends Animal {
      String hobby;
      String job;
      void work() { ... }
      void coding() { ... }
    }
    
  • 다형성
    • 같은 이름의 메소드가 클래스 혹은 객체에 따라 다르게 구현되는 것
    • method overloading : 한 클래스 내에서 같은 이름이지만 다르게 작동하는 여러 메소드
    • method overriding : 슈퍼 클래스의 메소드를 동일한 이름으로 서브 클래스마다 다르게 구현

객체지향 언어의 목적

  • 소프트웨어의 생산성 향상
    • 컴퓨터 산업 발전에 따라 소프트웨어의 생산 주기 단축
      • 소프트웨어를 빠른 속도로 생산할 필요성 증대
    • 객체 지향 언어
      • 상속, 다향성, 객체, 캡슐화 등 소프트웨어 재사용을 위한 여러 장치
      • 소프트웨어 재사용과 부분 수정 가능
      • 소프트웨어를 다시 만드는 부담 줄임
      • 소프트웨어 생산성 향상
  • 실세계에 대한 쉬운 모델링
    • 초기 프로그래밍 : 수학 계산/통계 처리 등 처리과정, 계산절차 중요
    • 현대 프로그래밍
      • 컴퓨터가 산업 전반에 활용
      • 실세계에서 발생하는 일을 프로그래밍
      • 실세계에서는 절차나 과정보다 객체간의 상호작용으로 묘사하는 것이 용이
    • 객체 지향 언어
      • 실세계의 일을 보다 쉽게 프로그래밍하기 위한 객체 중심적 언어

절차지향 프로그래밍 vs 객체지향 프로그래밍

  • 절차 지향 프로그래밍
    • 작업 순서를 표현하는 컴퓨터 명령 집합
    • 함수들의 집합으로 프로그램 작성
  • 객체 지향 프로그래밍
    • 컴퓨터가 수행하는 작업을 객체 간의 상호작용으로 표현
    • 클래스 혹은 객체의 집합으로 프로그램 작성

    0403


Thanks for watching my post!

Categories:

Updated:

Comments