객체지향이란
기본개념은 실제 세계는 사물로 이루어져 있으며,발생하는 모든 사건들은 사물간의 상호작용이다 상속,캡슐화,추상화 개념을 중심으로 점차 구체적으로 발전되었으며 객체지향의 주요특징은
-새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할수있다 **
-코드간의 관게를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다
-제어자의 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며,
코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다
객체지향의 가장 큰 장점은 코드의 재사용이 높고 유지보수가 용이하다 것이다 이러한 객체지향언어의 장점은 프로그램의 개발과 윶보수에 드는 시간과 비용을 획기적으로 개선하였다
앞으로 상속,다형성과 같은 객체지향개념을 학습할 때 재사용성과 유지보수 그리고 중복된 코드의 제거, 이 세가지 관점에서 보면 쉽게 이해할 수 있다
클래스와 객체의 정의와 용도
클래스의 정의 클래스란 객체를 정의해 놓은 것이다
클래스의 용도 클래스는 객체를 생성하는데 사용된다
객체의 정의 실제로 존재하는 것, 사물 또는 개념
객체의 용도 객체가 가지고 있는 기능과 속성에 따라 다름
유형의 객체 책상,의자,자동차,TV와 같은 사물
무형의 객체 수학공식,프로그램 에러와 같은 논리와 개념
예시)우리가 TV를 보기 위해서는,TV(객체)가 필요한 것이지 TV설계도(클래스)가 필요한 것은 아니며, TV설게도(클래스)는단지 TV라는 제품(객체)을 만드는 데만 사용될 뿐이다
그리고 TV설계도를 통해 TV가 만들어진 후에야 사용할 수 있다 프로그래밍에서는 먼저 클래스를 작성한 다음 클래스로부터 객체를 생성하여 사용한다
클래스 ->> 인스턴스화 ->인스턴스(객체)
예를 들면 책상은 인스턴스다 라고 하기 보다는 책상은 객체다 라는 쪽이 책상은 책상의 클래스의 객체이다 라고 하기 보다는 책상은 책상 클래스의 인스턴스다 라고 하는것이 자연스럽다