JAVA

Java Class Math, Wrapper, 참조형형변환

서묘_ 2021. 12. 6. 20:41

Class Math
final클래스로 상속 불가.
모든 메서드가 Static으로 되어있어 Math.메서드명으로 바로 사용 가능하다.

 

주로 쓰는 메서드

ceil() - 올림
floor() - 버림
random() - 난수값
round - 반올림
rint - 제일 가까운 값을 더블타입으로 반환

-> 1.2 입력시 1.0 반환, 2.6 입력시 3.0 반환 .5 입력시 짝수 반환 1.5 > 2.0, 2.5 > 2.0
max - 최대값
min - 최소값
pow - 제곱 

-> Math.pow(7,3) : 7의 3제곱

 

 

Wrapper 클래스

Object는 모든 클래스의 조상이라고 했고 모든 객체의 타입이 될 수 있다고 했다.

하지만 객체가 아닌 값이라면 불가하다.

int타입은 Object타입으로 입력할 수 없지만 Wrapper클래스인 Integer로 저장하면 입력 가능하다.

 

 

참조형 형변환

 

기본형 -> 기본형

small -> big 변환은 자동 변환된다.

big -> small 변환은 명시적 형변환은 가능하지만 데이터 손실이 발생할 수 있다.

 

기본형 -> 참조형 : 불가. Wrapper클래스로 감싸서 변환한다.

String -> int

int i = (int)"100"; -> error

int i = integer.parseInt("100"); ★가장 자주 사용할거니 외울것

-> i = 100, 숫자로만 이루어진 문자열을 int타입으로 변환해준다.

int -> String

String s = 100 + ""; -> 자동 변환 "100"

String s = String.valueOf(100); -> 어떤 타입이든 문자열로 변환한다.

 

* autoboxing/unboxing

Wrapper클래스와 기본형간에 같은 타입을 표현하는 경우 형 변환 코드를 작성할 수 있다.

integer i = 10;

Object obj = 100;

참조현 간의 연산, 기본형과 참조형간의 연산도 가능하다.

 

참조형 -> 참조형 : 불가. 단, 상속 관계에 있는 타입끼리는 변환 가능

super -> sub 명시해서 변환(instanceof 형 변환 가능여부 확인 필요)

sub -> super 자동 변환

*다루고 있는 객체(변수)가 가리키고 있는 실제 타입까지 생각하고 변환하자.

(sub타입의 참조변수가 super객체를 다룰 수 없음.)