-
[Java 자바] 11. 기본 API 클래스 ⑧ Wrapper(포장), Math, Random 클래스Programming/Java 2022. 9. 4. 22:34반응형
11-9. Wrapper(포장) 클래스
- 포장 객체: 기본 타입(byte, char, short, int, long, float, double, boolean)의 값을 갖는 객체
- 포장하고 있는 기본 타입 값은 외부에서 변경 불가
기본 타입 포장 클래스 byte Byte char Character short Short int Integer long Long float Float double Double boolean Boolean 11-9-1. 박싱(Boxing)과 언박싱(Unboxing)
- Boxing: 기본 타입의 값을 포장 객체로 만드는 과정 (기본타입의 값이나 문자열을 넘겨주면 됨)
(1) 생성자 new 를 사용하여 생성
(2) value of를 사용하여 생성- Unboxing: 포장 객체에서 기본 타입의 값을 얻어내는 과정
// Boxing Integer obj1 = new Integer(100); Integer obj2 = new Integer("200"); Integer obj3 = Integer.valueOf("300"); // Unboxing int value1 = obj1.intValue(); int value2 = obj2.intValue(); int value3 = obj3.intValue();
11-9-2. 자동 박싱과 언박싱
- 자동 박싱: 포장 클래스 타입에 기본값이 대입될 경우 발생
- 자동 언박싱: 기본 타입에 포장 객체가 대입될 경우 발생
// 자동 박싱 Integer obj = 100; // 자동 언박싱 int value = obj; // 컬랙션 객체에 기본값 저장시 자동 박싱 List<Integer> list = new ArrayList<>(); list.add(200); // 자동 박싱
11-9-3. 문자열을 기본 타입 값으로 변환
- parse+기본타입 명으로 되어 있는 정적 메소드를 활용해 문자열을 기본타입값으로 변환
int value1 = Integer.parseInt("10"); double value2 = Double.parseDouble("3.14");
11-9-4. 포장 값 비교
- 포장 객체는 내부 값을 비교하기 위해 ==와 != 연산자를 사용할 수 없음 (포장 객체의 참조를 비교하기 때문)
- 내부의 값만 비교하기 위해선 언박싱한 값을 얻어 비교하거나 equals() 메소드로 내부 값을 비교해야 함- 포장클래스의 equals() 메소드는 내부의 값을 비교하도록 오버라이딩 되어 있음
Integer obj1 = 300; Integer obj2 = 300; System.out.println(obj1 == obj2); // false System.out.println(obj1.intValue() == obj2.intValue()); // true System.out.println(obj1.equals(obj2)); // true
11-10. Math, Random 클래스
11-10-1. Math 클래스
메소드 설명 예제 코드 리턴값 int abs(int a)
double abs(double a)절대값 int v1 = Math.abs(-1);
double v2 = Math.abs(-3.14);v1 = 1,
v2 = 3.14double ceil(double a) 올림값 double v3 = Math.ceil(1.3);
double v4 = Math.ceil(-1.7);v3 = 2,
v4 = -1double floor(double a) 내림값 double v5 = Math.floor(1.3);
double v6 = Math.floor(-1.7);v5 = 1,
v6 = -2int max(int a, int b) 최대값 int v7 = Math.max(-2, 3); v7 = 3 int min(int a, int b) 최소값 int v8 = Math.min(-2, 3); v8 = -2 double random() 랜덤값 double v9 = Math.random(); 0.0 <= v9 < 1.0 double rint(double a) 가까운 정수의 실수값 double v10 = Math.rint(5.3);
double v11 = Math.rint(5.7);v10 = 5.0
v11 = 6.0long round(double a) 반올림 값 long v12 = Math.round(5.3);
long v13 = Math.round(5.7);v12 = 5
v13 = 611-10-2. Random 클래스
- Math.random() 메소드는 0.0 에서 1 사이의 double 난수를 얻는 데만 사용
- Random클래스는 boolean, int, long, float, double 난수를 얻을 수 있음생성자 설명 Random() 호출 시마다 다른 종자값(현재시간 이용)이 자동 설정 Random(long seed) 매개값으로 주어진 종자값 설정 - Random 클래스가 제공하는 메소드
리턴값 메소드(매개 변수) 설명 boolean nextBoolean() boolean 타입의 난수를 리턴 double nextDouble() double 타입의 난수를 리턴(0.0 <= ~ < 1.0) int nextInt() int 타입의 난수를 리턴 (int 전체 범위 내) int nextInt(int n) int 타입의 난수를 리턴 (0 <= ~ < n) 반응형'Programming > Java' 카테고리의 다른 글
[Java 자바] 12. 멀티 스레드 ② 동기화, 스레드 상태와 제어 (0) 2022.09.12 [Java 자바] 12. 멀티 스레드 ① 개념과 생성방법, 우선순위 (0) 2022.09.12 [Java 자바] 11. 기본 API 클래스 ⑦ Arrays 클래스 (0) 2022.09.04 [Java 자바] 11. 기본 API 클래스 ⑥ StringBuffer, StringBuilder 클래스 (0) 2022.09.04 [Java 자바] 11. 기본 API 클래스 ⑤ StringTokenizer 클래스 (0) 2022.09.04