ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바 - 객체지향 언어란?
    자바/Java 공부 2018. 3. 10. 15:34
    • 객체지향이란?
    컴퓨터 역사 초창기에는 주로 과학실험이나 군사실험과 같은 모의실험에 사용되었고 실제세계와 유사한 가상 세계를 구현하려는 과정에서 객체지향 이론이 탄생했다.

    객체지향이론의 기본 개념은 '실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이다.'

    실제 사물의 속성과 기능을 분석한 다음, 데이터(변수)와 함수로 정의함으로써 실제 세계를 컴퓨터 속에 옮겨 놓은 듯한 가상세계를 구현하고 이 가상세계에서 모의실험을 함으로써 많은 시간과 비용을 절약할 수 있었다.
    객체지향이론은 상속, 캡슐화, 추상화 개념을 중심으로 점차 구체적으로 발전되었으며, 1960년대 중반에 객체지향이론을 프로그래밍언어에 적용한 Simula라는 최초의 객체지향언어가 탄생하였다.
    프로그램의 규모가 점점 커지고 사용자들의 요구가 빠르게 변화해가는 상황을 절차적언어로는 극복하기 어렵다는 한계를 느끼고 객체지향언어를 이용한 개발방법론이 대안으로 떠오르게 되면서 조금씩 입지를 넓혀가고 있었다.
    자바가 1995년에 발표되고 1990년대 말에 인터넷의 발전과 함께 크게 유행하면서 객체지향언어는 이제 프로그래밍의 주류로 자리잡았다.

    ※객체의 사전적인 정의는, '실제로 존재하는 것'



    • 객체지향 언어는

    기존의 프로그래밍 언어에 몇가지 새로운 규칙을 추가한 보다 발전된 형태의 것이다.
    코드간에 서로 관계를 맺어 줌으로써 보다 유기적으로 프로그램을 구성



    1. 코드의 재사용성이 높다.
         - 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다.
    2. 코드의 관리가 용이하다.
         - 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다.
    3. 신뢰성이 높은 프로그래밍을 가능하게 한다.
         - 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며,
           코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다




    • 클래스란?


    객체를 생성하기 위한 틀'이며 '클래스는 속성과 기능으로 정의되어있다.

    서로 관련된 변수들을 정의하고 이들에 대한 작업을 수행하는 함수들을 함께 정의한 것이 바로 클래스이다.


    클래스는 곧 사용자정의 타입이다.




    클래스의 정의 - 클래스란 객체를 정의해 놓은것이다. (제품 설계도)
    클래스의 용도 - 클래스는 객체를 생성하는데 사용된다. (제품)




    • 인스턴스(객체)란?


    클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화(instantiate)라고 하며, 어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스(instance)라고 한다. 



    • 인스턴스(객체)의 구성요소

    객체는 속성과 기능의 집합이라고 할 수 있다.




    • 프로그래밍 언어의 데이터 저장형태의 발전과정





    1. 변수 - 하나의 데이터를 저장할 수 있는 공간
    2. 배열 - 같은 종류의 여러 데이터를 하나의 집합으로 저장할 수 있는 공간
    3. 구조체 - 서로 관련된 여러 데이터를 종류에 관계없이 하나의 집합으로 저장할 수 있는 공간
    4. 클래스 - 데이터와 함수의 결합(구조체 + 함수)


    ※함수는 주로 데이터를 가지고 작업을 하기 때문에 많은 경우에 있어서 데이터와 함수는 관계가 깊다.