일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코딩
- java super( )
- Java thorw
- Java객체배열
- 자바 추상메서드
- 자바 내부 클래스
- Express
- 자바 스트링클래스
- Java 내부 클래스
- Java업캐스팅
- 자바 문자열 클래스
- 자바 try-catch
- oracle
- 자바 제어문
- 데이터베이스
- db
- 자바 Wrapper클래스
- Java문자열 클래스
- database
- Java다운캐스팅
- Java 추상 메서드
- 자바 String클래스
- nodejs
- 자바 예제
- Java추상클래스
- Java try-catch
- 오라클
- dbeaver
- DBMS
- 자바 Random클래스
- Today
- Total
코딩이란 무엇일까
[Java/자바]Wrapper클래스, Random클래스 본문
안녕하세요 오늘은 자바에서 사용되는 Wrapper클래스 및 Random클래스에 대해 알아보겠습니다.
Wrapper클래스란?
Wrapper클래스란 기본 자료형들을 객체로 다루는 데 사용됩니다.
자바는 객체 지향이므로, 객체 값을 다룰 일이 많기 때문에,
일반자료형의 데이터를 객체로 변환하는 작업이 필요! 이름에서도 알 수 있다시피 일반 자료형을 Wrapper클래스 감싸준다 생각하면 됩니다.

기본자료형 | Wrapper클래스 |
boolean | Boolean 클래스 |
char | Charater클래스 |
byte | Byte클래스 |
short | Short클래스 |
int | Interger클래스 |
long | Long클래스 |
double | Double클래스 |
float | Float클래스 |
Wrapper클래스 사용방법
💡 Wrapper클래스명 객체명 = new Wrapper클래스명(값);
ex)
Inetger i = new Integer(3);
Double d = new Double(3.14);
⚠️Wrapper클래스는 jdk9 버전 이후부터는 Wrapper클래스의 생성자 사용을 권장하지 않습니다. 자세한 점은 이후에 나올 auto boxing과 auto unboxing 밑에 작성하겠습니다.
❗jdk9버전 이후로는 Wrapper클래스 객체= 일반자료형 데이터; 로 많이 사용합니다.
ex) Integer i=3;
public class WrapperEx1 {
public static void main(String[] args) {
int i=30;
Integer ii= new Integer(i);
System.out.println(ii);
double d=3.14;
Double dd=new Double(d);
System.out.println(dd);
}
}
아마 위에 코드를 똑같이 작성하시면 아래 이미지처럼 Integer에 취소선이 나올 것입니다.
위에 설명한 것처럼 자바에서는 jdk9버전 이후부터는 Wrapper클래스에서 생성자 사용을 권장하지 않기 때문에 취소선이 생성되는 것이니 에러는 아닙니다.

출력 결과

객체에 값이 잘 저장되어 출력된 것을 볼 수 있습니다.
1) 오토 박싱(Auto Boxing)
⇒오토 박싱이란 기본 자료형 값을 자동을 Wrapper클래스의 객체로 변환시켜주는 것
위에 설명한 생성자를 사용해서 Wrapper 클래스의 객체를 만드는 게 아닌
클래스명 객체명 = 값; 과같은 구조로 자동으로 객체로 변환시켜 주는 것입니다.
2) 오토 언박싱(Auto UnBoxing)
⇒Wrapper클래스의 객체 값을 자동으로 기본 자료형 값으로 변환시켜 주는 것입니다.
오토 박싱(Auto Boxing)
오토 언박싱(Auto UnBoxing)
예시 코드
public class AutoBoxing_UnBoxing {
public static void main(String[] args) {
//autoBoxing
//Integer i = new Integer(10)
Integer i=10;
Double d=3.14;
Float f=3.14f;
Character c='A';
//auto UnBoxing
int ii=i; //ii는 정수 값 , i는 객체 값
double dd=d;
float ff=f;
char cc=c;
System.out.println(ii);
System.out.println(dd);
System.out.println(ff);
System.out.println(cc);
}
}
Random클래스
Random클래스는 말 그대로 무작위의 값 즉, 랜덤 한 값을 얻고 싶을 때 사용하는 클래스입니다.
생성 방법
Random 객체명 = new Random( );
Random클래스의 생성자 종류
- Random( ):현재 시간을 seed값으로 인스턴스 생성
- Random(int seed) : 받아오는 seed 값으로 인스턴스 생성
여기서 seed값은 기준 값이라 생각하면 좋습니다. seed값을 넣어주는 이유는 컴퓨터는 난수를 생성하기 굉장히 복잡합니다. 따라서 어떠한 기준 값을 기준으로 컴퓨터는 랜덤 한 값을 만들어 내는 것이지요.
따라서 Random( )은 현재 시간을 기준 값으로 하여 랜덤한 값을 만들어 내는 것이고
Random(int seed) 괄호 안에 사용자가 값을 지정해 놓으면 그 값을 기준으로 랜덤 한 값을 컴퓨터는 만들어 냅니다.
관련 메서드 설명
int nextInt( ) | 무작위의 int 값을 반환 |
int nextInt(int n) | 0보다 크고 n보다 작은 int 값 반환 |
boolean nextBoolean( ) | 무작위의 boolean 값 반환 |
long nextLong( ) | 무작위의 Long 값 반환 |
double nextDouble( ) | 무작위의 double 값 반환 |
float nextFloat( ) | 무작위의 float값 반환 |
Random클래스 사용해보기
import java.util.Random; //import해주어야합니다.
public class Random1 {
public static void main(String[] args) {
Random random = new Random();
Random random1 = new Random();//seed:현재시간
Random random2 = new Random(2); // seed:2
Random random3 = new Random(2); //seed2
System.out.println(System.currentTimeMillis()); //현재 시간을 구하는 메서드
for (int i=0;i<5;i++) {
System.out.println("random:"+i+"번째 값: "+random.nextInt(10));
}
for (int i=0;i<5;i++) {
System.out.println("random1:"+i+"번째 값: "+random1.nextInt(10));
}
System.out.println("----------------------------------------------");
for(int i=0;i<5;i++) {
System.out.println("random2:"+i+"번째 값: "+random2.nextInt(10));
}
for(int i=0;i<5;i++) {
System.out.println("random3:"+i+"번째 값:"+random3.nextInt(10));
}
}
}
출력 결과

출력 결과를 보고 알 수 있는 점은 현재 시간을 기준으로 한 random0, random1은 시간을 기준으로 하기 때문에 서로 다른 값이 나왔습니다 하지만 random2, random3은 매개변수로 2를 넣어주어 같은 기준 값을 갖게 됩니다. 따라서 random2와 random3은 같은 랜덤 값을 갖게 되는 것이지요!
자 오늘은 Wrapper클래스와 Random클래스에 대해 알아보았습니다.
이상으로 글 마치겠습니다.
글 읽어주셔서 감사합니다.

'Java' 카테고리의 다른 글
[Java/자바]Set,List (0) | 2022.10.12 |
---|---|
[Java/자바]제네릭(Generic) (0) | 2022.10.12 |
[Java/자바]기본 API클래스 (String 클래스)알아보기 (0) | 2022.10.07 |
[Java/자바]예외처리 throw,throws (0) | 2022.10.06 |
[Java/자바]예외처리 try-catch-finally (0) | 2022.10.06 |