하나의 프로젝트를 진행할 때 여러개의 클래스로 이루어지는데 서로 연관된 클래스들끼리 묶어두는 역할이 패키지이다.
패키지 안에 클래스를 만들게되면 클래스 맨 상단에 package 정보를 반드시 명시해야하며 대부분 IDE를 이용하면 패키지 정보를 자동으로 정의해준다.
아래와 같이 상단에 package chap_07; 로 패키지 정보가 정의되며 해당 정보를 지우면 오류가 발생된다.
만약 다른 패키지에 있는 클래스를 사용해야하는 경우에는 해당 패키지 내 클래스를 사용할 것이라는 것을 알려줘야한다.
그것을 알려주는 역할이 import이다.
접근제어자 학습때 예제를 살펴보면
package chap_08 의 _00_AccessModifierTest 클래스에서
package chap_07에 있는 BlackBoxRefurbish 클래스를 활용하여 객체를 생성하였다.
이 과정에서 아래와 같이 import chap_07.BlackBoxRefurbish; 를 명시하였다.
즉 chap_07 패키지 내에 BlackBoxRefurbish를 불러오는 것을 의미한다.
만약 chap_07 패키지 내의 특정 클래스가 아닌 전체 클래스를 가져오기를 원하는 경우에는
아래와 같이 import 패키지명.* 로 불러오면 해당 패키지의 전체 클래스를 import할 수 있다는 점을 참고하자.
import chap_07.*;
똑같은 기능을 가진 클래스를 개발자들이 각각 생성하게 된다면 유지보수/관리가 어려워질 것이다.
그래서 이미 잘 만들어진 클래스가 있는 경우에는 해당 클래스를 Import 하여 처리하게된다.
대표적인 랜덤클래스를 통해 학습해보자.
랜덤 클래스는 어떤 값을 랜덤으로 뽑을 수 있는 기능을 가진다.
main 메소드 내에 Random 입력하면 java.utill이 확인될 것이다.
해당 클래스를 선택하면 아래와 같이 import java.util.Random; 이 자동으로 불러져 온다.
랜덤클래스 사용법) import java.util.Random;
Random random = new Random();
System.out.println("랜덤정수 : " + random.nextInt());
위와 같이 출력하면 int 범위내의 정수형 값을 랜덤으로 반환해준다.
랜덤클래스 범위 지정)
만약 해당 값의 범위를 지정하고 싶다면 아래와 같이 입력할 수 있다.
random.nextInt( 10 ); 과 같이 값을 입력해주면 0 이상 10 미만의 값 중 랜덤으로 반환되도록 범위를 지정할 수 있다.
Random random = new Random();
System.out.println("랜덤 정수 (범위) : " + random.nextInt(10)); //0 이상 10 미만
만약 로또번호를 랜덤으로 뽑는다면 어떻게 해야할까?
로또번호는 1이상 45이하의 숫자이다.
random.next(45) : 0 이상 45 미만 숫자를 랜덤으로 반환하므로 + 1의 연산을 하면 로또번호의 동일한 범위를 지정할 수 있다.
System.out.println("로또번호 : " + (random.nextInt(45)+1));
실수형 랜덤클래스)
random.nextDouble() 메소드 실행 시 0.0 이상 1.0미만의 실수값을 랜덤으로 반환해준다.
Random random = new Random();
System.out.println("랜덤 실수 : " + random.nextDouble());
단, 실수형 랜덤클래스는 정수형처럼 random.nextDouble(숫자)로 범위지정을 할 수 없다.
만약 5.0 이상 10.0 미만의 실수를 랜덤으로 뽑아야하는 경우에는 아래와 같이 최소값과 최대값 이용해 범위를 설정할 수 있다.
Random random = new Random();
double min = 5.0;
double max = 10.0;
System.out.println("랜덤 실수 (범위) : " + (min + (max-min) * random.nextDouble()));
Boolean형 랜덤클래스)
random.nextBoolean() 실행 시 true 또는 false 값을 랜덤으로 반환해준다.
Random random = new Random();
System.out.println("랜덤 boolean : " + random.nextBoolean());
랜덤클래스 외에도 자바에 유용한 클래스는 다양하다.
Ex)
Math, Scanner, String Builder, StringBuffer, String Tokenizer
BigInteger, BigDecimal
LocalDate, LocalTime, LocalDateTime, DateTimeFormatter
'Spec UP - Backend > 나도코딩의 자바기본편' 카테고리의 다른 글
Chap_07. 메소드 오버라이딩 (0) | 2023.04.28 |
---|---|
Chap_07. 상속 (0) | 2023.04.28 |
Chap_07. 접근 제어자 (0) | 2023.04.27 |
Chap_07. Getter & Setter (0) | 2023.04.26 |
Chap_07. 생성자 (0) | 2023.04.25 |
댓글