Programming Language/Java

[JAVA] 객체지향프로그래밍(JAVA) 기본

BS Kwak 2020. 10. 12. 05:23

객체(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. 생성된 객체 이용