- 객체
- 세상에 존재하는 물체, 식별이 가능한 것
- 자동차, 호텔, 요리레시피, 계산기, 강의, 배달 주문, 운동 등등 => 식별 가능
- 속성(필드)과 행위(메서드)
- 객체 모델링
Car class <클래스>
--------------------<필드>
company: String
color : String
price : double
speed : double
--------------------<메서드>
gasPedal() : double
brakePedal() : double
changeGear() : char
onOffLight() : boolean
horn() : void
- Person객체 <- return double / gasPedal(매개변수)메서드 호출 -> Car클래스
- 소프트웨어의 객체들은 메서드를 통해 데이터를 주고 받음
- 객체간 관계
- Person객체 -> Car클래스 => 사용관계
- Tire/Door/Handle -> Car => 포함관계
- Car/Train -> MachineSystem => 상속관계** => Car/Train이 MachineSystem을 사용
- 객체지향 프로그래밍의 특징
- 캡슐화 : 속성(필드)과 행위(메서드)를 하나로 묶어 객체로 만듦->실제 내부 구현 내용은 외부에서 알 수 없게 감추는 것
- 객체가 변화하지 않게 만듬 => 보안
- 접근제어자 사용 : Public, Default, Protected, Private
- 상속
- 필드와 메서드를 자식 객체에 물려주어 자식 객체가 이를 사용할 수 있게 함
- 부모클래스의 단일화된 클래스를 자식객체들이 동일하게 적용받으며 사용 가능
- 상속 사용 이유
- 구조 파악에 용이
- 필드,메서드 변경필요시 부모객체만 수정->자식객체에 반영 => 코드 중복↓, 코드 재사용성↑
- 다형성 : 객체가 연산 수행시, 한 행위에 대해 각 객체가 지닌 고유한 특성에 따라 여러 형태로 재구성 되는 것
- 클래스를 토대로 객체 A, B를 생성 후, 각 객체의 동일 메서드내 함수가 다를 시 필요에 따라 메서드의 구현을 다르게 재정의 하여 사용 가능 => A || B 의 메서드 함수 사용
- 추상화 : 객체에서 공통된 부분을 모아 상위 개념으로 새롭게 선언하는 것
- 공통적이고 중요한 것들을 모아 객체를 모델링
- ex) 자동차의 가속, 브레이크, 속도와 같은 동일한 행위들 을 추상화 함 => 자동차 객체 모델링
- 객체와 클래스
- 객체 생성을 위한 설계도 필요 => 설계도 클래스를 토대로 객체 생성
- 인스턴스instance : 클래스를 토대로 만든 객체 => 인스턴스화
- 여러개 생성 가능
'문법 > JAVA' 카테고리의 다른 글
Entity…나는 응답한다…! (1) | 2023.12.08 |
---|---|
가막눈 쑤준 (1) | 2023.11.16 |
클래스와 아이들 (0) | 2023.10.23 |
상속 (0) | 2023.10.21 |
스레드와 스레드, 그리고 스레드. (1) | 2023.10.19 |