Study/Java

[JAVA] 객체(=Instance) 개념 잡기!

kwan97 2022. 5. 27. 13:08

객체(=Instance)란?

- JAVA는 객체지향 프로그래밍(=OOP) 언어 중 대표적인 언어이다. 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른것과 식별 가능한 것을 말한다.

객체는 크게 속성동작으로 구성되어 있다고 보면 되는데 

이해하기 쉽게 사람과 자동차를 예를 들면,

 

     -사람의 속성 : 이름, 나이 등

     -사람의 동작 : 말하다, 걷다, 웃다 등

 

     -자동차의 속성 : 색상, 모델명 등

     -자동차의 동작 : 달린다. 멈춘다 등 과 같다.

 

JAVA에서는 이러한 객체의 속성필드(=field)라 부르고, 동작메소드(=method) 라고 부른다.

그리고 현실세계의 객체를 소프트웨어 객체로 설계하는 것을 객체모델링이라고 하며, 현실세계 객체의 속성과 동작을 추려내어 소프트웨어 객체의 필드와 메소드로 정의하는 과정 이라고 볼 수 있다.

객체들은 각각 독립적으로 존재하고 있으며, 다른 객체와 서로 상호작용을 하며 동작한다. 이때, 객체들 간의 상호작용 수단은 메소드가 된다. 메소드 호출을 통해 다른 객체의 기능을 이용하며, 매개값(넘겨주는 값)과 리턴값(돌려받는 값)을 통해 데이터를 주고받기도 한다.

 

 

객체지향프로그래밍의 특징

1.캡슐화(Encapsulation)

: 캡슐화란 객체의 필드, 메소드를 하나로 묶고, 실제 구현 내용을 감추는 것을 말합니다.

외부 객체는 객체내부의 구조를 알지 못하며 객체가 노출해서 제공하는 필드와 메소드만 이용할 수 있습니다.

이렇게 캡슐화를 하는 이유는 외부의 잘못된 사용으로 인해 객체가 손상되지 않도록 하기 위함입니다.

자바언어는 캡슐화된 멤버를 노출시킬지, 숨길 것인지를 결정하기 위해 접근제한자를 사용합니다.

접근제한자는 객체의 필드와 메소드의 사용범위를 제한함으로써 외부로부터 보호합니다.

*접근제한자: public, private 등등

 

2.상속(Inheritance)

: 상속이란 객체 지향 프로그래밍에서 부모역할의 상위객체가 자기가 가지고 있는 필드와 메소드를 자식역할의 하위 객체에게 물려주어 하위객체가 사용할 수 있도록 해주는 것입니다.

상속은 상위객체를 재사용함으로써 하위 객체를 쉽고 빨리 설계할 수 있도록 도와주고, 이미 잘 개발된 객체를 재사용해서 새로운 객체를 만들기 때문에 반복된 코드의 중복을 줄여줍니다.

 

3.다형성(Polymorphism)

: 다형성은 같은 타입이지만 실행결과가 다양한 객체를 이용할 수 있는 성질을 말합니다. 코드 측면에서 보면 다형성은 하나의 타입에 여러 객체를 대입함으로써 다양한 기능을 이용할 수 잇게 해줍니다.

 

728x90