80년 초 소프트웨어의 위기 - 빠른 변화를 못쫓아감 -> 해결책으로 객체지향 언어를 도입(절차적 -> 객체지향)
- 코드의 재사용성이 높고 유지보수가 용이, 중복 코드 제거
객체지향 언어 = 프로그래밍 언어 + 객체지향개념규칙
객체지향 프로그래밍(OOP Object-Oriented Programing)
1.캡슐화 / 2.상속 / 3.추상화 / 4.다형성
클래스의 정의 : 클래스란, 객체를 정의해 놓은 것
클래스의 용도 : 클래스는 객체를 생성하는데 사용
객체의 정의 : 실제로 존재하는 것. 사물 또는 개념
객체의 용도 : 객체가 가지고 있는 기능과 속성에 따라 다름
Ex) 클래스 객체
제품설계도 제품
Tv설계도 Tv
붕어빵기계 붕어빵
객체 = 속성(변수) + 기능(메서드)
Ex) Tv = 크기,길이,높이 등 + 켜기,끄기,볼륨 높이기 등
객체 : 모든 인스턴스를 대표하는 일반적 용어
인스턴스 : 특정 클래스로부터 생성된 객체(Ex)Tv인스턴스)인스턴스화 클래스 ----------> 인스턴스(객체)
클래스
객체
Q. 클래스가 왜 필요한가? (= 설계도는 왜 필요한가?)
A. 객체를 생성하기 위해 (= 제품을 생성하기 위해)
Q. 객체가 왜 필요한가? (= 제품은 왜 필요한가?)
A. 객체를 사용하기 위해서 (= 제품을 사용하기 위해서)
Q. 객체를 사용한다는 것은? (= 제품을 사용한다는 것은?)
A. 객체가 가진 속성과 기능을 사용하려고 (= 제품이 가진 속성과 기능을 사용하려고)
- 속성 = 변수 / 기능 = 메서드(println()과 같은 것)