26일차

김윤정·2024년 7월 23일

코딩

목록 보기
26/60
post-thumbnail

1.아래의 접근제한자에 대하여 설명하시오.

  • private: 변수에 대해 접근을 제한합니다, 즉 클래스내에서만 쓸 수 있습니다.(주로 인스턴스변수에 쓰입니다)

  • protected: 패키지와 상관없이 상속했을때 자식까지 접근을 허용합니다.

  • default: 같은 패키지내에서는 언제든지 접근 가능하지만 다른 패키지에서는 접근 불가능합니다.

  • public:언제 어디서든 접근가능합니다.(함수에 주로 쓰입니다)

2.지역변수에 접근제한자를 붙이지 않는 이유는?

지역변수는 접근 제한자를 붙여도 어차피 범위가 그 블록 안에서만 사용할 수 있도록 작게 한정되어 있습니다. 따라서 접근제한자를 붙여도 의미가 없습니다. (매개변수 포함)

3.정보은닉(hidden information)에 대하여 설명해 보시오.

접근제한자 private 주고 다이렉트로 접근못하도록 컴파일에러를 줍니다.

4. 기존 객체를 할용하여 아래를 프로그래밍 하시오.

머니:1456000
오만원29장
일만원0장
오천운1장
천원1장
오백원0장
백원0장
계속하시겠습니까?y,n
y
머니:1256000
오만원25장
일만원0장
오천운1장
천원1장
오백원0장
백원0장
계속하시겠습니까?y,n
y
머니:1256700
오만원25장
일만원0장
오천운1장
천원1장
오백원1장
백원2장
계속하시겠습니까?y,n
n
프로그램을 종료합니다.

package day_2024_07_23;

import java.util.Scanner;

class Money {
	int money;

	void setMoney(int money) {
		this.money = money;
	}

	void show() {
		int money50000, money10000, money5000, money1000, money500, money100;
		int saveMoney = money;

		money50000 = saveMoney / 50000;
		saveMoney = saveMoney % 50000;

		money10000 = saveMoney / 10000;
		saveMoney = saveMoney % 10000;

		money5000 = saveMoney / 5000;
		saveMoney = saveMoney % 5000;

		money1000 = saveMoney / 1000;
		saveMoney = saveMoney % 1000;

		money500 = saveMoney / 500;
		saveMoney = saveMoney % 500;

		money100 = saveMoney / 100;
		saveMoney = saveMoney % 100;

		System.out.println(money);
		System.out.println("오만원:" + money50000 + "장");
		System.out.println("만원:" + money10000 + "장");
		System.out.println("오천원:" + money5000 + "장");
		System.out.println("천원:" + money1000 + "장");
		System.out.println("오백원:" + money500 + "개");
		System.out.println("백원:" + money100 + "개");

	}
}

public class MoneyMain {

	public static void main(String[] args) {
		Money money = new Money();
		Scanner sc = new Scanner(System.in);
		while (true) {
			   System.out.print("머니: ");
	            int amount = sc.nextInt(); 
	            money.setMoney(amount); 
	            money.show(); 

		

			System.out.println("계속 하시겠습니까? y, n");

			String yesOrNo = sc.next();

			if (yesOrNo.equals("Y") || yesOrNo.equals("y")) {
				continue;
			} else {
				break;
			}
		}
		System.out.println("프로그램을 종료합니다.");

	}

}

5. 1~50사이의 랜덤숫자 만들기 

int randInt = (int) ((Math.random() * 50) + 1); 2. 기회 제공 : 기회를 5번 제공하는 경우 첫 판에 사용자에게 숫자를 입력 받고서     기회(int chance)를 줄이므로 변수에는 4를 넣는다. 3. 사용자가 입력한 숫자가 정답보다 작은 경우에는 UP!이라고 알려주고    반대로 정답보다 큰 숫자라면 DOWN이라고 알려주어야 한다.

package day_2024_07_23;

import java.util.Scanner;

public class UpDownGame {

    public static void main(String[] args) {
    
        int randomInt = (int) ((Math.random() * 50) + 1);
        System.out.println("테스트용 랜덤숫자:"+randomInt);
      


        int chances = 5;
        Scanner scanner = new Scanner(System.in);

        System.out.println("1부터 50까지의 숫자 중 정답을 맞춰보세요!");

        while (chances > 0) {
            System.out.print("숫자를 입력하세요: ");
            int userNum = scanner.nextInt(); 

            if (userNum < 1 || userNum > 50) {
                System.out.println("1부터 50 사이의 숫자를 입력해주세요.");
                continue;
            }

  
            if (userNum < randomInt) {
                System.out.println("UP!");
            } else if (userNum > randomInt) {
                System.out.println("DOWN!");
            } else {
                System.out.println("축하합니다! 정답입니다.");
                break; 
            }

            chances--; 
            System.out.println("남은 기회: " + chances + "번");

            if (chances == 0) {
                System.out.println("모든 기회를 사용하셨습니다. 정답은 " + randomInt + "였습니다.");
            }
        }

        scanner.close(); 
        System.out.println("게임이 종료되었습니다.");
    }
}

0개의 댓글