목차
▶ 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 |
댓글