c23 [Java] 자바의 주요 클래스
본문 바로가기
[Java]

[Java] 자바의 주요 클래스

by Jarvis2304 2023. 1. 4.

 

 

 



▶ Object 클래스

- java.lang 패키지에 포함

- 자바 클래스 계층 구조의 최상위에 위치

- 모든 클래스의 수퍼 클래스 (모든 클래스에 강제 상속, 모든 객체가 공통으로 가지는 객체의 고성을 나타내는 메소드 보유)

 

● 주요 메소드

 

 

▷ Object 클래스로 객체 속성 알아내기

- 객체 레퍼런스만으로 객체의 클래스명, 해시코드 값, 객체의 문자열을 출력

- Class 클래스는 주어진 객체의 클래스에 관한 정보를 담는 클래스. Object의 getclass() 메소드를 호출하면 이 Class 객체를 리턴 

- Class 객체의 getName() 메소드를 이용하면 Object 레퍼런스가 가리키는 객체의 클래스 타입 알아낼 수 있음

- 해시코드: 객체가 생성될 때 객체를 유일하게 구분할 수 있는 정수 id값이 할당되며, 이 값이 해시코드

 

 

 

 

 



▶ String toString()

- 객체를 문자열로 변환

 

● Object 클래스에 구현된 toString이 반환하는 문자열 

 

 

 

● 컴파일러에 의한 자동 변환

'객체 + 문자열'  →  '객체.toString() + 문자열' 로 자동반환

 

 

● 개발자는 자신만의 toString() 작성 필요

- Object의 toString() 오버라이딩

 

 

예제) Point 클래스에 toString() 작성

 

 

 

 

 

 

 



▶ 객체 비교, ==과 equals()

 객체 레퍼런스의 동일성 비교

- ==연산자 이용

 

객체 내용 비교(서로 다른 객체가 같은 내용물인지 비교)

- boolean equals(Object obj)이용

 

 

 

예제) Rect 클래스와 equals() 만들기

 

 

 

 

 

 

 

 



▶ Wrapper 클래스

- 이름이 Wrapper 클래스는 존재하지 않음

- 자바의 기본 데이터 타입 8개를 객체로 다루기 위해 JDK에 만들어진 8개의 클래스를 통칭

- 자바의 기본 타입을 클래스화한 8개 클래스

 

● 용도

- 자바는 객체 지향 언어이므로 객체를 대상으로 처리하는 경우가 많음

- 어떤 클래스는 객체만 다루기때문에 3, 'a'와 같은 기본타입의 데이터는 사용할 수 없음

- 이러한 문제점을 해결하기위해 Wrapper 클래스는 기본 타입의 값을 객체로 만들어 사용할 수 있도록 함

- 기본 타입의 값을 사용할 수 없고, 객체만 사용하는 컬력션 등에 기본 타입의 값을 Wrapper 클래스 객체로 만들어 사용

 

 

▷ Wrapper 객체 생성

기본 타입의 값을 인자로, Wrapper 클래스 생성자 호출

 

● 데이터 값을 나타내는 문자열을 생성자 인자로 사용

 

● Float는 double 타입의 값을 생성자의 인자로 사용

 

 

▷ 주요 메소드

- 가장 많이 사용하는 Integer 클래스의 주요 메소드

-  paresInt(), paresBoolean(), pareseDouble() 메소드는 모두 static 타입이므로 Wrapper 클래스의 이름으로 바로 메소드 호출 가능

 

 

▷ Wrapper 활용

● Wrapper 객체로부터 기본 데이터 타입 알아내기

Integer i = Integer.valueOf(10);       //정수 10 객체화
Character c = Character.valueOf(‘c’);  //문자’c’의 객체화
Double d = Double.valueOf(3.14);       //실수 3.14 객체화
Boolean b = Boolean.valueOf(true);     //불린 값 true 객체화

 

● Character를 제외한 나머지 Wrapper클래스 경우, 다음과 같이 문자열로 객체 생성가능

Integer i = Integer.valueOf("10");       //정수 10 객체화
Double d = Double.valueOf("3.14");       //실수 3.14 객체화

 

 

※ JDK 9부터 아래의 방법으로 객체를 생성하는 방법을 폐기시킴 ※

 

 

● 문자열을 기본 데이터 타입으로 변환

 

● 기본 데이터 타입을 문자열로 변환

 

 

 

예제) Wrapper 클래스 활용

 

 

 

 

 

 



▶ 박싱과 언박싱

● 박싱(boxing)

- 기본 타입의 값을 Wrapper객체로 변환하는 것

 

● 언박싱(unboxing)

- Wrapper 객체에 들어 있는 기본 타입의 값을 빼내는 것

 

 

▷ 자동박싱/자동언박싱

- JDK 1.5부터 지원

 

● 자동 박싱(Auto boxing)

- 기본 타입의 값을 자동으로 Wrapper 객체로 변환

 

● 자동 언박싱(Auto unboxing)

- Wrapper 객체를 자동으로 기본 타입 값으로 변환

 

 

예제) 자동박싱/자동언박싱

 

 

 

 

 

 

 

 



▶ Math 클래스

- 기본적인 산술 연산을 수행하는 메소드 제공

- java.lang.Math

- 모든 메소드는 static으로 선언 (클래스 이름으로 바로 호출 가능)

 

 

▷ Math 클래스를 활용한 난수 발생

● 난수 발생, static double random()

- 0.0이상 1.0 미만의 임의의 double 값을 반환

 

ex) 0에서 100사이의 정수 난수 10개 시키는 샘플 코드

- round() 메소느는 Math.round(55.3)은 55.0을 리턴하며, Math.round(55.9)는 56.0을 리턴

 

에제) Math 클래스 메소드 활용

 

 

 

 

 

 

 

 



▶ Calendar 클래스

- java.util 패키지

 

 시간과 날짜 정보 관리

- 년, 월, 일, 요일, 시간, 분, 초, 밀리초, 오전, 오후 등

- Calendar 클래스의 각 시간 요소를 설정하거나 알아내기 위한 필드들

 

▷ Calendar 객체 생성 및 날짜와 시간

Calendar 객체 생성, Calendar now = Calendar.getInstance(); 이용

- now 객체는 현재 날짜와 시간 정보를 가지고 생성

- Calendar는 추상 클래스이므로 new Calendar()하지 않음

 

 

● 현재 날짜와 시간

 

● 날짜와 시간 설정하기

- 내가 관리할 날짜와 시간을 Calendar 객체를 이용하여 저장

(Calendar 객체에 날자와 시간을 설정한다고 해서 컴퓨터의 날짜와 시간을 바꾸는 것은 아님 → 컴퓨터의 시간과 날짜를 바꾸는 다른 방법 이용해야함)

 

 

예제) Calendar를 이용하여 현재 날짜와 시간 출력 및 설정하기

'[Java]' 카테고리의 다른 글

[Java] 컬렉션  (2) 2023.11.03
[Java] 자바의 문자열 다루기  (0) 2023.01.05
[Java] 패키지, 모듈  (1) 2023.01.03
[Java] 추상 클래스, 인터페이스  (0) 2023.01.02
[Java] 메소드 오버라이딩 (다형성)  (0) 2023.01.01

댓글