[JAVA] 자바 형변환 parseInt() 와 valueof() 차이점

심현민·2023년 8월 23일
0

[JAVA] 삽질

목록 보기
1/2
post-thumbnail

Java로 형변환을 할 때 parseInt()와 valueof() 두 가지 방식으로
형변환 할 수 있다.

 String s_num = "10";
 int d_num = Integer.valueOf(s_num);
 int d_num2 = Integer.parseDouble(s_num);
 

이때 두 가지 방식의 차이점을 알아보자

valueof()

  • 문자열의 값을 정수형으로 변환한 다음 Integer "객체"로 만들어서 반환

parseInt()

  • 결과값을 항상 int 형으로 리턴 객체가 아닌 "기본 자료형"

객체와 기본 자료형의 차이점?

객체는 '속성'과 '메소드'를 가질 수 있다.

객체는 객체지향 프로그래밍에서 배웠듯이 속성과 메소드를 가져서 사용 할 수 있다.

String a_num = "20";
System.out.println(Integer.valueOf(a_num).getClass().getName());

객체는 메소드를 편하게 사용할 수 있다.


하지만 기본 자료형에도 속성과 메소드가 있다.

정수형 변수 하나를 만들고 a. 을 통해 추천 명령어를 보면 속성과 메소드가 있음을 알 수 있다.

이 경우에는 자동으로 Number 객체로 변환되므로
기본 자료형이 속성이나 메소드를 사용할 수 있는 것이다.

 String a_num = "20";
 System.out.println(Integer.parseInt(a_num).getClass().getName());

이 경우에는 객체가 아니므로 오류가 뜬다.

그렇다면 기본 자료형과 객체의 차이점은 뭘까?


바로, 객체는 속성과 메소드를 추가할 수 있지만, 기본 자료형은 추가할 수 없다는 것이다.

let Number = 273;
    
Number.method = function() {
	return 3;
};
        
let output = Number.method() + '\n';
console.log(output);

위 코드는 에러가 발생한다 왜냐하면 기본 자료형은
속성과 메소드를 추가할 수 없기 때문이다.

하지만, 기본 자료형 경우에 prototype으로 일회성 객체를 만들어 속성과 메소드를 추가할 수 있다.

profile
개발하고 싶은 사람

0개의 댓글