참고 - 화폐 매수 구하기 - 배열 이용해 보세요.
public static void main() {
MoneyArr mArr = new MoneyArr(126000);
mArr.show();
}
class MoneyArr {
private int totalAmount;
public MoneyArr(int totalAmount) {
this.totalAmount = totalAmount;
}
public void show() {
int[] denominations = { 50000, 10000, 5000, 1000, 500, 100, 50, 10 };
int[] counts = new int[denominations.length];
int remainingAmount = totalAmount;
for (int i = 0; i < denominations.length; i++) {
counts[i] = remainingAmount / denominations[i];
remainingAmount %= denominations[i];
}
for (int i = 0; i < denominations.length; i++) {
System.out.println(denominations[i] + "원" + counts[i] + "개");
}
}
}
public class override2 {
public static void main(String[] args) {
MoneyArr mArr = new MoneyArr(126000);
mArr.show();
}
}
=================출력=================
50000원2개
10000원2개
5000원1개
1000원1개
500원0개
100원0개
50원0개
10원0개
'instanceof' 연산자는 객체가 특정 클래스의 인스턴스인지를 확인하는 데 사용됩니다. 이 연산자는 'boolean' 값을 반환하며, 객체가 지정된 클래스의 인스턴스이면 'true' 를 반환하고, 그렇지 않으면 'false' 를 반환합니다.
예를 들어:
class Animal {}
class Dog extends Animal {}
public class InstanceOfExample {
public static void main(String[] args) {
Animal animal = new Dog();
// 사용법: 객체 instanceof 클래스
if (animal instanceof Dog) {
System.out.println("animal은 Dog 클래스의 인스턴스입니다.");
} else {
System.out.println("animal은 Dog 클래스의 인스턴스가 아닙니다.");
}
}
}
두 사람이 게임을 진행한다. 이들의 이름을 키보드로 입력 받으며 각 사람은 Person 클래스로 작성하라. 그러므로 프로그램에는 2개의 Person 객체가 생성되어야 한다. 두 사람은 번갈아 가면서 게임을 진행하는데 각 사람이 자기 차례에서 'Enter' 키를 입력하면, 3개의 난수가 발생되고 이 숫자가 모두 같으면 승자가 되고 게임이 끝난다. 난수의 범위를 너무 크게 잡으면 3개의 숫자가 일치하게 나올 가능성이 적기 때문에 숫자의 범위는 1~3까지로 한다.
import java.util.Random;
import java.util.Scanner;
class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void playGame() {
Scanner scanner = new Scanner(System.in);
Random random = new Random();
System.out.println(getName() + "님의 차례. <Enter> 키를 누르세요.");
scanner.nextLine();
int num1 = random.nextInt(3) + 1;
int num2 = random.nextInt(3) + 1;
int num3 = random.nextInt(3) + 1;
System.out.println("나온 숫자: " + num1 + " " + num2 + " " + num3);
if (num1 == num2 && num2 == num3) {
System.out.println(getName() + "님이 이겼습니다!");
} else {
System.out.println(getName() + "님이 졌습니다.");
}
}
}
public class GamblingGame {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("첫 번째 참가자의 이름을 입력하세요: ");
String name1 = scanner.nextLine();
System.out.print("두 번째 참가자의 이름을 입력하세요: ");
String name2 = scanner.nextLine();
Person person1 = new Person(name1);
Person person2 = new Person(name2);
while (true) {
person1.playGame();
person2.playGame();
System.out.print("계속 진행하시겠습니까? (Y/N): ");
String answer = scanner.nextLine();
if (!answer.equalsIgnoreCase("Y")) {
System.out.println("게임을 종료합니다.");
break;
}
}
scanner.close();
}
}
(7번문제부터는 이것과 관련된 문제입니다).
클래스 Employee(직원)은 클래스 Regular(정규직)와 Temporary(비정규직)의 상위 클래스
필드: 이름, 나이, 주소, 부서, 월급 정보를 필드로 선언
생성자 : 이름, 나이, 주소, 부서를 지정하는 생성자 정의
메소드 printInfo() : 인자는 없고 자신의 필드 이름, 나이, 주소, 부서를 출력
// Employee.java
public class Employee {
private String name;
private int age;
private String address;
private String department;
public Employee(String name, int age, String address, String department) {
this.name = name;
this.age = age;
this.address = address;
this.department = department;
}
public void printInfo() {
System.out.println("이름: " + name);
System.out.println("나이: " + age);
System.out.println("주소: " + address);
System.out.println("부서: " + department);
}
}
• 클래스 Regular는 위에서 구현된 클래스 Employee의 하위 클래스
• 생성자 : 이름, 나이, 주소, 부서를 지정하는 상위 생성자 호출
• Setter : 월급 정보 필드를 지정
• 메소드 printInfo() : 인자는 없고 "정규직"이라는 정보와 월급을 출력
// Regular.java
public class Regular extends Employee {
private int salary;
public Regular(String name, int age, String address, String department) {
super(name, age, address, department);
}
public void setSalary(int salary) {
this.salary = salary;
}
@Override
public void printInfo() {
super.printInfo();
System.out.println("직급: 정규직");
System.out.println("월급: " + salary);
}
}