[JAVA] Object와 API
API (Application Programming Interface)
- 자바를 이용해서 애플리케이션을 구현할 수 있도록 지원하는 라이브러리들의 집합
- 자바에서는 개발자들의 구현 부담을 최소화 하기 위해서 시스템, 입출력, 화면처리, 네트워크, 스레드 등을 구현할 때 필요한 인터페이스나 클래스들을 미리 구현해서 제공하고 있는데 이것을 Java API라고 한다.
API 문서
- Java API에서 제공하는 여러 인터페이스나 클래스들에 대한 설명 및 사용법을 제공하는 문서
- 소스코드에서 Document 주석을 사용해서 설명이나 사용법을 추가해놓으면 javadoc.exe로 자동으로 API 문서를 생성할 수 있다.
- 이클립스는 해당 프로젝트에서 마우스 우클릭 -> export -> java -> javadoc 기능을 이용해 API 문서를 생성할 수 있다.
- API 문서는 HTML 형식의 문서로 작성된다.
API 구성
- Java SE 11 API > Module > package > interface + class
- Desktop에서 실행할 수 있는 응용 프로그램 개발에 필요한 Java API를 제공한다.
- 여러 Module로 구성되어 있다.
- Module
- Java 9버전부터 지원하는 자바의 새로운 그룹화 방식이다.
- 하나의 모듈은 여러 개의 패키지를 포함하고 있다.
- java.base 모듈이 가장 많이 사용되는 모듈이다.
(java.lang, java.io, java.net, java.util 패키지 등을 포함하고 있는 모듈이다)
- Package
- 관련 있는 클래스나 인터페이스의 묶음이다.
- 같은 패키지 내의 클래스들끼리는 import없이 다른 클래스를 사용할 수 있지만, 패키지가 다른 경우에는 반드시 import 구문을 사용해서 포함시킬 패키지명과 클래스명을 정의해 주어야 한다.
- 대표적인 패키지
- java.lang
- 가장 기본적인 인터페이스, 클래스들을 포함하고 있는 패키지
- 이 패키지의 인터페이스나 클래스는 import 구문없이 바로 사용할 수 있다
- Object, Class, System, String, Wrapper 클래스 등을 포함하고 있다
- java.io
- 입출력과 관련된 인터페이스, 클래스들을 포함하고 있는 패키지
- xxxInputStrean, xxxOutputStream, xxxReader, xxxWriter 클래스를 포함하고 있다
- java.net
- 네트워크 통신을 지원하는 인터페이스, 클래스들을 포함하고 있는 패키지
- Socket, ServerSocket, URL 등의 클래스를 포함하고 있다
- java.util
- 자료구조, 날짜/시간 등을 다루는 유용한 클래스들을 포함하고 있는 패키지
- 애플리케이션 구현에서 가장 많이 사용하는 패키지다
- Collection, List, Set, Map, Date, Calendar 등을 포함하고 있다
- java.lang
java.lang
- 자바의 가장 기본적인 인터페이스, 클래스를 포함하고 있는 패키지다.
- Object
- 모든 객체의 최상위 부모 클래스다.
- Object 클래스의 메소드는 모든 객체에서 사용 가능하다.
- Class
- 객체의 설계도 정보를 표현하는 클래스다.
- 클래스명, 필드, 생성자, 메소드의 정보를 포함하고 있는 객체다.
- Boolean, Chracter, Byte, Short, Integer, Long, Float, Double
- Wrapper 클래스다.
- 기본자료형 타입의 값을 객체로 표현할 때 사용되는 클래스다.
- String, StringBuffer, StringBuilder
- String은 문자열을 표현하는 클래스다. 문자열을 조작하는 다양한 메소드를 포함하고 있다.
- StringBuffer와 StringBuilder은 내부에 버퍼(임시저장소)가 있어서 문자열을 추가할 수 있다.
- Math
- 수학연산과 관련된 상수와 정적메소드를 제공한다.
- 클래스의 모든 메소드가 정적메소드다.
- System, Runtime
- System은 자바프로그램이 실행 중인 운영체제와 관련된 정보를 제공하는 클래스다.
- Runtime은 운영체제와의 인터페이스를 지원하는 클래스다. 운영체제와 관련된 명령어를 실행할 수 있다.
- Thowable
- Error와 Exception 클래스의 부모 클래스다.
- 자바에서 발생하는 모든 오류 정보를 표현하는 것이 Error와 Exception 클래스다.
Object 클래스의 주요 메소드
- boolean equals(Object obj): 현재 객체와 전달받은 객체가 동일한 객체인지의 여부 반환
- int hashCode(): 객체의 해시코드 값 반환
- String toString(): 클래스이름@16진수해시코드 값 반환
- Class<?> getClass(): 클래스 정보 반환
- Object clone(): 현재 객체를 복제한 복사본 반환