[ 로또번호추첨 ] _ 여러개의 클래스 이용해서
public class Calc
> public main 메서드 -> (Lotto의 모든 메서드)실행
class Lotto
> public choose 메서드 (void) -> 번호추첨
> public sort 메서드 (void) -> 번호정렬
> public print 메서드 (void) -> 반복출력
package calc;
import java.util.Arrays;
public class Calc {
public static void main(String[] args) {
// 로또 객체 생성
Lotto lotto = new Lotto();
int[] number = lotto.choose(); // 가져오는 값인 배열로 타입 맞춰줘야함
// lotto.print(number); // print 메서드 실행
number = lotto.sort(number); // 정렬된 배열로 다시 저장
lotto.print(number); // 정렬된 배열 프린트
// lotto.print(lotto.choose()); // 정렬된 배열 프린트2
}
}
class Lotto{
// 로또 번호 뽑는 메소드
public int[] choose() {
int[] lottoNum = new int[6];
// 번호 뽑는 작업은 여기서..
for (int i = 0; i < lottoNum.length; i++) {
lottoNum[i] = (int) (Math.random() * 45) + 1;
for (int j = 0; j < i; j++) {
if(lottoNum[i] == lottoNum[j]) {
i--;
}
}
}
return lottoNum; // return new int[6] => int타입의 6칸짜리 배열 출력
}
public int[] sort(int[] number) { // 매개변수가 배열, 타입 맞춰주기
Arrays.sort(number);
return number;
}
public void print(int[] number) { // 매개변수가 배열, 타입 맞춰주기
for (int i = 0; i < number.length; i++) {
System.out.print(number[i]);
System.out.print(", ");
}
}
}
main 메소드에서 실행만 시키려면,
** lottoNum 배열을 인스턴스 변수로 선언 => 해당 클래스 내의 모든 메소드에서 사용가능.
따라서 다른 메소드들은 void로 지정 가능(반환타입지정x), 매개변수 사용할 필요도x (lottoNum 바로사용)
* number = lotto.sort(number);
> main메소드 내부에 먼저 쓰고 밑줄 클릭하면 Lotto 클래스 안에 sort() 메소드 자동생성
package calc;
import java.util.Arrays;
public class Calc {
public static void main(String[] args) {
// 로또 객체 생성
Lotto lotto = new Lotto();
lotto.choose(); // 추첨 및 중복제서
lotto.sort(); // 정렬
lotto.print(); // 프린트
// 메인 메서드에서는 실행만!!!
}
}
class Lotto{
int[] lottoNum = new int[6]; // 필드(인스턴스 변수)
public int[] choose() {
for (int i = 0; i < lottoNum.length; i++) {
int temp = (int) (Math.random() * 45) + 1;
boolean ch = true;
for (int j = 0; j < i; j++) {
if(temp == lottoNum[j]) {
ch = false;
break;
}
}
if(ch) {
lottoNum[i] = temp;
} else {
i--;
}
}
return lottoNum; // return new int[6] => int타입의 6칸짜리 배열 출력
}
public void sort() {
Arrays.sort(lottoNum);
}
public void print() {
for (int i = 0; i < lottoNum.length; i++) {
System.out.print(lottoNum[i]);
System.out.print(", ");
}
}
}
// sort 정렬
int arr[] = new int[] {2, 1, 8, 7, 3};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr)); // [1, 2, 3, 7, 8]
'국비과정 > JAVA' 카테고리의 다른 글
20230615 _[10일차]_04. Arguments & 메소드 특징 & 활용 (0) | 2023.06.18 |
---|---|
20230615 _[10일차]_03. 객체 지향 특징 & 활용 (0) | 2023.06.18 |
20230615 _[10일차]_02. 객체 생성 연습 (인스턴스) (0) | 2023.06.17 |
20230615 _[10일차]_01. 객체타입 및 참조 (0) | 2023.06.15 |
20230614 _[9일차]_03. 객체2 (0) | 2023.06.15 |