본문 바로가기

Language/Java

Java api 일기 1 객체란?

 

 

 면접을 보러 다니면서, 자바 기초가 부족하다는 생각이 들었다.
때문에 직접 원문을 보면서 매일 핵심적인 부분을 조금씩 적어보고자 한다.

먼저, 객체란 무엇일까?

실제 객체는 두 가지 특성을 공유한다. 그 두가지 특성은 상태 행동 이다.
예를 들어, 개(dog)는 상태 (이름, 색깔, 번식, 배고픈)와 행동 (짖기, 주워오기, 꼬리 흔들기)이 있다.

객체는 필드 (일부 프로그래밍 언어의 변수)에 상태를 저장하고 메서드 (일부 프로그래밍 언어의 함수)를 통해 행동을 노출하는데, 메서드는 개체의 내부 상태에서 작동하며 객체 간 통신을 위한 기본 메커니즘 역할을 한다.
내부 상태를 숨기고 모든 상호 작용이 객체의 메서드를 통해 수행되도록 요구하는 것은 객체 지향 프로그래밍의 기본 원칙인 데이터 '캡슐화' 로 알려져 있다.

상태 (현재 속도, 현재 페달 가속 및 현재 기어)를 귀속하고 해당 상태를 변경하는 방법을 제공함으로써 객체는 외부 세계가 사용하도록 허용하는 방식을 제어할 수 있다.
예를 들어, 자전거에 6개의 기어 만있는 경우(상태) 기어를 변경하는 방법은 1보다 작거나 6보다 큰 값을 거부 할 수 있다.

이렇듯, 코드를 개별 소프트웨어 객체에 결합하면 다음과 같은 여러 가지 이점이 있다.

1. 모듈성
객체의 소스 코드는 다른 개체의 소스 코드와 독립적으로 쓰고 유지할 수 있다. 일단 생성되면 시스템 내에서 객체를 쉽게 전달할 수 있다.

2. 정보 은닉
객체의 방법과만 상호작용함으로써, 내부 구현의 세부사항은 외부 세계로부터 숨겨져 있다.

3. 코드 재사용
다른 소프트웨어 개발자가 작성한 객체가 이미 있는 경우 해당 개체를 프로그램에서 사용할 수 있다.
이를 통해 개발자는 복잡한 작업별 객체를 구현/테스트/디버그할 수 있으며, 이 객체를 신뢰할 수 있는 사용자 고유의 코드로 실행할 수 있다.

4. 플러그 인(갈아 끼움) 및 디버깅 용이성
특정 객체에 문제가 있는 것으로 확인되면 응용 프로그램에서 해당 객체를 제거하고 다른 객체를 대체하여 연결할 수 있다. 이것은 현실에서 기계적인 문제를 고치는 것과 비슷하다. (볼트가 파손되면 기계 전체가 아니라 해당 볼트만 교체)

 

출처 : docs.oracle.com/javase/tutorial/java/concepts/object.html

 

What Is an Object? (The Java™ Tutorials > Learning the Java Language > Object-Oriented Programming Concept

The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available. See Java Language Changes for a summary of updated

docs.oracle.com

 

 

'Language > Java' 카테고리의 다른 글

Java api 일기 6 연산자 요약  (0) 2021.01.18
Java api 일기 5 패키지란?  (0) 2021.01.18
Java api 일기 4 인터페이스란?  (0) 2021.01.18
Java api 일기 3 상속이란?  (0) 2021.01.17
Java api 일기 2 클래스란?  (0) 2021.01.17