티스토리 뷰
Wrapper Class는, 자바의 기본 데이터 타입을 객체로 포장해주는 클래스이다.
각각의 타입에 해당하는 데이터를 인수로 전달받아, 해당 값을 가지는 객체로 만들어준다.
[기본 data type의 참조 data type]
byte : Byte
short : Short
int : Integer
long : Long
float : Float
double : Double
char : Character
boolean : Boolean
Character과 Integer을 제외하고는, 기본 데이터 타입에서 첫문자만 대문자로 쓰면 객채처럼 사용할 수 있다.
Int num = 10;
객체로 포장해주기 때문에, num에는 참조값이 들어있다. 하지만, 10이라는 기본 데이터 타입이 들어있다고 고 생각해도 무방하다.
Wrapper Class 를 사용하면, 여러 메소드들을 사용할 수 있는 장점이 있다.
예시를 통해 확인해보자.
1) MainClass01.java - Wrapper Class로 toString(), parseInt() 사용해보기
package test.main;
/*
* [기본 data type의 참조 data type]
*
* byte : Byte
* short : Short
* int : Integer
* long : Long
*
* float : Float
* double : Double
*
* char : Character
* boolean : Boolean
*/
public class MainClass01 {
public static void main(String[] args) {
int num1 = 10;
/*
* num2에는 참조값이 들어있지만
* 10이라는 기본 데이터 type이 들어 있다고 생각해도 된다.
*/
Integer num2 = 10;
//참조 데이터 type이지만 기본 데이터 type처럼 사용할 수 있다.
int result = num2+1;
int result2 = num1+num2;
Integer result3 = num1+num2;
//숫자를 문자로 바꾸기 10 => "10"
String strNum = num2.toString();
//문자를 숫자로 바꾸기
String strNum2 = "999";
int result4 = Integer.parseInt(strNum2);
}
}
num2 는 Integer형이기 때문에, 메소드를 사용할 수 있다.
toString()은, 문자열로 바꿔주는 메소드이므로, toString()을 통해 변환된 문자열의 참조값을 String strNum에 넣는다.
parseInt()는, 정수형으로 바꿔주는 메소드이므로, int result4에 저장할 수 있다.
각종 연산들은 기본 데이터 타입과 동일하게 사용할 수 있다.
2) MainClass02.java - parseDouble(), toString() 사용해보기
예제1번과 유사한 예제이다.
이번에는 Double Wrapper Class를 사용해보았다. Integer과 거의 똑같으므로 예제를 한번 읽어보면 될 것 같다.
package test.main;
public class MainClass02 {
public static void main(String[] args) {
//기본 데이터 타입 double
double num1 = 10.1;
//참조 데이터 타입 Double
Double num2 = 10.2;
//참조 데이터 타입 Double 이지만 마치 기본 데이터 타입과 같이 사용할 수 있다.
double result1 = num2+10;
double result2 = num1+num2;
Double result3 = num1+num2;
//숫자를 문자열로 바꾸기 10.1 => "10.1"
String strNum = num2.toString();
//문자열을 숫자(double)로 바꾸기 "10.3" => 10.3
double result4 = Double.parseDouble("10.3");
}
}
parseDouble로, 문자열을 double 타입으로 변환할 수 있다.
디버깅을 해보면, parseInt, toString, parseDouble등의 메소드를 사용하여 형변환을 했을 때, 힙 영역에 새로운 객체가 생성되어, 원래 참조값과는 다른 참조값을 가지는 객체가 생성됨을 확인할 수 있다.
간단히 말해, 바꾸려던 객체의 값이 바뀌는 것이 아니고, 새로운 객체가 생성되는 것이다.
'development > Java' 카테고리의 다른 글
[Java] 배열 Array #2 / 배열에서 Random 사용하기 (0) | 2021.11.02 |
---|---|
[Java] 배열 Array #1 / 확장 for문, Class 객체 배열 생성하기, 입력받은 값을 배열에 집어넣기 (0) | 2021.11.02 |
[Java] 여러 클래스 사용해보기 / Scanner, JFrame, Random, 참조 방식, 문자열 길이 (0) | 2021.11.02 |
[Java] 생성자 Constructor (0) | 2021.11.02 |
[Java] Method / 오버로딩, 여러 타입의 인자를 매개변수로 가지는 method (0) | 2021.11.02 |
- Total
- Today
- Yesterday
- baekjoon
- 자바스크립트
- 브루트 포스
- Case When
- 정렬
- append
- 파이썬
- 장고
- 고득점 키트
- 프로그래머스
- R
- 덱
- 단계별로풀어보기
- CSS
- brute force
- web
- python
- bootstrap
- Django
- 큐
- 문자열
- 백준
- Oracle
- html
- 스프링
- Java
- jsp
- javascript
- 자바
- jQuery
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |