본문 바로가기

Not Using/JAVA

API에서 알아두면 좋을 클래스2

Random클래스
-무작위의 어떤값을 만들어 내야 하는 경우에 사용
 Math.random() -static형식
 Random클래스를 활용하는 방식

예제 (로또생성시키기~)

import java.util.Random;


public class RadomEx {
public static void main(String[] args) {
 Random r = new Random();
 
 for(int i=0;i<7;i++){
  
  System.out.println(r.nextInt(45)+1);  //0~44까지 발생시키므로 +1해서 45까지 생성하도록함
  
 }     //랜덤함수를 이용하여 로또숫자 7개 생성시킴
 
}
}






ctrl + shift + o ->자동 import생성

java.util.Scanner

-외부에서 데이터를 빨아들여서 데이터를 읽어내는 기능을 제공
-JDK1.5에서부터 제공
-JDK1.4이전까지는 java.io.BufferedReader라는 클래스를 활용
-주요 메소드
 -next()  //공백을 기준으로 끊어냄
 -nextLine()  //줄바꿈을 기준으로 끊어냄


import java.util.Scanner;


public class ScanEx {
public static void main(String[] args) {
 Scanner scanner = new Scanner(System.in);
 System.out.println("화면에 문자열을 입력하시오");
 
 while (scanner.hasNext()){
 System.out.println(scanner.next()); 
 }
}
}

---->terminate가 종료되지않고 값을 계속 받아들임 따라서
키보드값을 입력받기위한 메소드로 사용하기에 그닥 적합하진 않음

import java.util.Arrays;
import java.util.Scanner;


public class ScanEx {
public static void main(String[] args) {
 Scanner scanner = new Scanner(System.in);
 System.out.println("화면에 문자열을 입력하시오");
 
 
 String str = scanner.nextLine(); 
 String [] arr = str.split(" ");
 System.out.println(Arrays.toString(arr));
 
}
}

->받음값을 공백을 이용하여 split해주어서 사용하기 키보드 입력값을 받을때 사용하기 편리



Wrapper클래스
-wrap:'포장하다','감싼다'는 의미
-기본형 자료(int, double..)등이 JdK1.4버전까지는 객체 자료형과 엄밀하게 구분되었기 때문에 사용되었던 클래스들
 -Integer,Byte,Character,Double,Long,Boolean
(객체자료형으로 Immutable이다.)

-JDK1.5이후에는 AutoBoxing/Unboxing이 지원되므로 필요성은 감소되었음.

 

Autoboxing/Unboxing
오토박싱
-자동적으로 기본 자료형을 객체자료형으로 변환해 주는 기능
-자료 구조 사용시 유용하게 사용됨
언박싱
-반대로 객체타입의 값을 기본자료형으로 변환



Wrapping예제

public class WrapEx {
public static void main(String[] args) {
 int a =10;
 Integer b = a;   //자료형변환작업없이 바로 기본->객체로 형변환->autoboxing 형태로 Wrapping한다
 int c =b;   //wrap autoUnboxing
 System.out.println(a);
 System.out.println(c);
 


 //이런 작업이 필요한 경우; 자바의 최상위객체인 Object에 객체를 넣어주고자 할때 기본자료형은
 //들어가지 않기 때문에 기본을 객체로 변환하는 작업이 필요했다.
 
 Object [] arr = new Object[10];
 arr[0]=10;
 //->이전같았으면 10이라는 기본자료형의 값은 객체인 arr에 들어갈 수 없었으나 지금은
 //autoboxing된다는 의미!
 
}
}