[JAVA] 객체지향프로그래밍(JAVA) 기본
객체(Object)란?
고유한 속성(state)과 동작(behavior)을 가지고 있는 것
- 속성 : 필드(field)
- 동작 : 메소드(method)
객체 모델링(Object Modeling)
(간단히 말하면) 현실 세계의 객체를 소프트웨어 객체로 설계하는 것
= 현실 세계 객체의 속성과 동작을 추려내어 소프트웨어 객체의 필드와 메소드로 정의하는 과정
객체지향 프로그래밍의 특징 - 1. 캡슐화 2. 상속 3. 다형성
1. 캡슐화(Encapsulation)
객체의 필드, 메소드를 하나로 묶고 실제 구현 내용을 감추는 것
- 외부의 접근으로부터 객체 보호
- Access Modifier(접근 제한자) 사용 : 객체의 필드와 메소드의 사용범위를 제한
2. 상속(Inheritance)
상위 클래스(부모)가 자신이 가지고있는 필드와 메소드를 하위클래스(자식)에게 물려줌
- 반복된 코드 중복을 줄여줌 (객체의 재사용) -> 효율적, 시간 절약
- 부모클래스(super class) 자식클래스(serve class)
3. 다형성(Polymorphism)
하나의 타입에 여러 객체를 대입함으로써 다양한 기능을 이용할 수 있도록 하는것
- 부모 클래스, 인터페이스의 타입변환 허용
: 부모타입에는 모든 자식 객체 대입 O
: 인터페이스 타입에는 모든 구현 객체 대입 O
- 메소드 오버로딩 : 같은 이름 but 다르게 작동하는 여러 메소드
- 메소드 오버라이딩 : super class의 메소드를 server class마다 다르게 구현
객체(object)와 클래스(class)의 차이
● 클래스(class)
- 객체 모양을 선언한 틀/설계도
- 객체를 생성하기 위한 필드와 메소드가 정의되어 있음
- 와플틀이 있어 와플을 계속 찍어내듯이 클래스(틀)이 있어 객체를 찍어낸다 생각
● 객체
- 클래스로부터 만들어진 객체 = 클래스의 인스턴스(instance)
- 메모리 공간을 갖는 구체적인 실체
- 와플틀로 찍어내는 와플
객체지향 프로그래밍의 개발 단계
1. 클래스 설계 2. 클래스를 이용해 객체 생성 3. 생성된 객체 이용