🌱 오늘의 주제 : Math클래스
🌱 Math클래스
- Math클래스의 생성자는 접근 제어자가 private이기 때문에 다른 클래스에서 Math인스턴스를 생성할 수 없도록 되어 잇다.
- 클래스 내에 인스턴스변수가 없기 때문이다.
- Math클래스의 메서드는 모두 static이며, 두개의 상수만 정의 해놓고 있다.
public static final double E = 2. 7182818284 ...; // 자연로그의 밑
public static final double PI = 3.14159265... // 원주율
🌱 Math의 메서드
package Chapter9;
import static java.lang.Math.*;
public class ex9_13 {
public static void main(String[] args) {
// Math의 메서드
double val = 90.7552;
System.out.println("round("+ val + ") = "+ round(val)); // 반올림
val *= 100; // 9075.52
System.out.println("round(" + val + ") = " + round(val)); // 반올림
System.out.println("round(" + val + ")/100 = " + round(val)/100); // 반올림
System.out.println("round(" + val + ")/100.0 = " + round(val)/100.0); // 반올림
System.out.println();
System.out.println("ceil(1.1) = " + ceil(1.1) ); // 올림
System.out.println("floor(1.5) = " + floor(1.5) ); // 버림
System.out.println("round(1.1) = " + round(1.1) ); // 반올림, 소수점 첫째자리에서 반올림한 정수값을 반환(int).
System.out.println("round(1.5) = " + round(1.5) ); // 반올림
System.out.println("rint(1.5) = " + rint(1.5) ); // 반올림
System.out.println("round(-1.5) = " + round(-1.5) ); // 반올림
System.out.println("rint(-1.5) = " + rint(-1.5) ); // 반올림, 주어진 double값과 가장 가까운 정수값을 double형으로 반환. 두 정수의 정가운데 있는 값은 짝수 정수를 결과로 반환.
System.out.println("ceil(-1.5) = " + ceil(-1.5) ); // 올림
System.out.println("floor(-1.1) = " + floor(-1.1) ); // 버림
}
}
-----
round(90.7552) = 91
round(9075.52) = 9076
round(9075.52)/100 = 90
round(9075.52)/100.0 = 90.76
ceil(1.1) = 2.0
floor(1.5) = 1.0
round(1.1) = 1
round(1.5) = 2
rint(1.5) = 2.0
round(-1.5) = -1
rint(-1.5) = -2.0
ceil(-1.5) = -1.0
floor(-1.1) = -2.0
🌱 래퍼(wrapper)클래스
- 자바에서는 8개의 기본형을 객체로 다루지 않는다. 이것은 자바가 완전한 객체지향 언어가 아니라는 이야기이다.
- 기본형을 객체로 바꿀 수 있게 사용되는 것이 래퍼(warpper)클래스이다.
- 래퍼클래스의 생성자는 매개변수로 문자열이나 각 자료형의 값들을 인자로 받는다.
- 래퍼클래스는 equals()가 오버라이딩 되어 있어서 주소값이 아닌 객체가 가지고 있는 값을 비교한다.
- toString()도 오버라이딩 되어 있다.
- MAX_VALUE, MIN_VALUE, SIZE, BYTES, TYPE 등의 static 상수를 공통적으로 갖고 있다.
package Chapter9;
public class ex9_14 {
public static void main(String[] args) {
// 래퍼클래스 예제
Integer i = new Integer(100);
Integer i2 = 100;
System.out.println("i == i2 ?" + (i == i2));
System.out.println("i.equals(i2)" + i.equals(i2));
System.out.println("i.compareTo(i2)" + i. compareTo(i2));
System.out.println("i.toString() = " + i.toString());
System.out.println("MAX_VALUE = " + Integer.MAX_VALUE);
System.out.println("MIN_VALUE = " + Integer.MIN_VALUE);
System.out.println("SIXE = " + Integer.SIZE + " bits");
System.out.println("BYTES = " + Integer.BYTES + "bytes");
System.out.println("TYPE = " + Integer.TYPE);
}
}
-----
i == i2 ?false
i.equals(i2)true
i.compareTo(i2)0
i.toString() = 100
MAX_VALUE = 2147483647
MIN_VALUE = -2147483648
SIXE = 32 bits
BYTES = 4bytes
TYPE = int
🌱 문자열을 숫자로 변환하기
< 문자열을 숫자로 변환하는 3가지 방법>
itn i = new Integer("100").intValue();
int i2 = Integer.parseInt("100"); // 주로 이 방법을 많이 사용
Integer i3 = Integer.valueOf("100");
🌱 오토박싱 & 언박싱
- 오토박싱 : 기본형 값을 래퍼 클래스의 객체로 자동 변환.
- 언박싱 : 래퍼 클래스의 객체를 기본형 값으로 자동 변환.
'Java' 카테고리의 다른 글
Java - 제한된 지네릭 클래스 & 와일드 카드 (0) | 2023.03.07 |
---|---|
Java - 지네릭스(Generics) (0) | 2023.03.06 |
Java - StringBuffer클래스 (0) | 2023.03.01 |
Java - String클래스 (0) | 2023.02.28 |
Java - Object클래스 (0) | 2023.02.27 |