반응형

JAVA는 대표적인 객체 지향 언어인데요,

JAVA란 무엇인지 세부적으로 알아보겠습니다.

 


 

객체(Object)란?
- 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고, 다른 것과 식별 가능한 것

 


객체 모델링(Object Modeling)이란?
- 현실 세계의 객체를 소프트웨어 객체로 설계하는 것
- 현실 세계 객체의 속성과 동작으로 추려내어 소프트웨어 객체의 필드와 메소드로 정의하는 과정

 


1. 객체의 상호작용
- 객체들은 각각 독립적으로 존재
- 다른 객체와 서로 상호작용하며 동작


- 메소드 : 객체들 사이의 상호작용 수단
- 도트 연산자(.) : 객체의 필드와 메소드에 접근할 때 사용
- 매개값 : 메소드를 실행하기 위해 필요한 데이터
- 리턴값 : 메소드가 실행하고 나서 호출한 곳으로 돌려주는 값

 


2. 객체 지향 언어란?
- 객체 지향 프로그래밍(OOP) : 부품에 해당하는 객체들을 먼저 만들고, 이것들을 조립하여 전체 프로그램을 완성하는 기법
- 객체 지향 프로그래밍에 사용되는 언어
- 캡슐화, 상속, 다형성 기능을 지원

- 캡슐화: 객체의 필드, 메소드를 하나로 묶고, 실제 구현 내용을 감추는 것
- 외부의 잘못된 사용으로 인한 객체 손상을 막습니다.


- 상속 : 상위 객체가 가지고 있는 필드와 메소드를 하위 객체에게 물려줍니다.
- 상위 객체를 재사용하여 하위 객체를 빠르게 설계, 코드 중복 줄임, 유지 보수 시간 최소화


- 다형성: 하나의 타입에 여러 객체를 대입함으로써 다양한 기능을 이용할 수 있도록 합니다.
- 다형성의 효과로 객체는 부품화 가능

 


3. 자바의 특징
객체 지향 언어
높은 이식성 : 자바 실행환경(JRE)이 설치되어 있는 모든 운영체제에서 실행 가능
함수적 스타일 코딩 지원 : 람다식을 자바 8부터 지원합니다. 대용량 데이터의 병렬 처리, 이벤트 지향 프로그래밍에 적합합니다. 또, 람다식은 인터페이스의 익명 구현 객체를 만듭니다.

 

 

# 익명 구현 객체

인터페이스 변수 = new 인터페이스() {

// 인터페이스에 선언된 추상 메소드의 실체 메소드 선언

};

 

- 메모리 자동 관리 : C++과 달리 객체 생성 시 자동적으로 메모리 영역을 찾아서 할당, 사용이 완료되면 쓰레기 수집기를 실행합니다. 따라서 코드에만 집중할 수 있습니다.

 

다양한 애플리케이션 개발 가능 : 다양한 운영체제에서 사용할 수 있는 개발 도구와 API를 묶어 에디션 형태로 정의 (JAVA SE, EE 등)


쉬운 멀티 스레드(Multi-Thread) 구현 : 스레드 생성 및 제어와 관련된 라이브러리 API를 제공합니다. 운영체제와 상관없이 멀티 스레드 구현이 가능합니다.


동적 로딩 지원: 애플리케이션이 실행될 때 모든 객체가 생성되지 않고, 객체가 필요한 시점에 클래스를 동적 로딩해서 객체 생성합니다. 전체 애플리케이션을 다시 컴파일할 필요가 없으므로 빠르고 쉬운 유지 보수가 가능합니다.


풍부한 오픈소스 라이브러리 : 개발 기간을 단축하며 안전성이 높은 애플리케이션을 쉽게 개발할 수 있습니다.

 


4. 자바 가상 기계 (JVM : 자바를 실행시키는 가상의 기계)
- 중간 단계의 바이트 코드(자바는 완전 기계어가 아닌 중간 단계의 바이트 코드)를 해석하고 실행할 수 있는 가상의 운영체제
- 실 운영체제를 대신해서 자바 프로그램을 실행하는 가상의 운영체제 역할을 합니다.
- 운영체제와 상관없이 자바 프로그램 개발이 가능합니다.


 

이상으로 객제지향언어 JAVA의 개념에 대해 알아보았습니다.

 





// 이것이 자바다, 신용권의 Java 프로그래밍 정복1 참조

반응형