///////
Search
☘️

Calculator

문제 설명

plus minus multiple divide
각 메소드는 parameter를 int형 하나만 받습니다. ex) a + 어떤 정수 숫자 =
randomNumber는 0~9사이의 정수
plus a + randomNumber minus - randomNumber multiple * randomNumber divide / randomNumber // 0으로 나누면 Error가 납니다. 에러처리 랜덤한 숫자가 0으로 생성이 되면 “랜덤하게 생성된 숫자가 0입니다.” 가 출력되게
도전과제(업적) randomNumber생성하는 로직은 interface를 이용해 di

코드 설명

NumberGenerator 인터페이스

public interface NumberGenerator { int generate(int num); // 파라미터 인트로 하는 함수 선언 }
Java
복사

RandomNumberGenerator ( NumberGenerator 구현체 )

public class RandomNumberGenerator implements NumberGenerator{ //인터페이스 구현 @Override //오버라이딩를 통한 함수 구현 public int generate(int num) { return (int) (Math.random() * num); // 0~ 10 까지 랜덤 수 반환 } }
Java
복사

Calculator 클래스

package day2.calculator; public class Calculator { private int a; // 인트 a 필드 선언 NumberGenerator numberGenerator; // 객체 필드 선언 public Calculator(int a, NumberGenerator numberGenerator) { // 생성자 생성 this.a = a; this.numberGenerator = numberGenerator; } public void plus() { // 더하기 함수 System.out.println(a + numberGenerator.generate(10)); // a + 객체를 통한 리턴 값 } public void minus() { // 마이너스 함수 System.out.println(a - numberGenerator.generate(10)); // a - 객체를 통한 리턴 값 } public void mul() { // 곱하기 함수 System.out.println(a * numberGenerator.generate(10)); // a * 객체를 통한 리턴 값 } public void div() { // 나누기 함수 double result = (double) a / numberGenerator.generate(10); // a / 객체를 리턴 함수 값 if (check(result)) { System.out.println("랜덤 값이 0입니다."); } else { System.out.println(result); } } public static boolean check(double x) { // 인피니트 체크 함수 if (Double.isInfinite(x)) { return true; } else { return false; } } }
Java
복사

Calculator 메인 클래스

package day2.calculator; public class Main { public static void main(String[] args) { NumberGenerator numberGenerator = new RandomNumberGenerator(); // RandomNumberGenerator 인스턴스 생성 Calculator randomCalculator = new Calculator(5,numberGenerator); // 매개변수 대입하여 Calculator 인스턴스 생성 randomCalculator.plus(); //객체를 통한 plus함수 호출 randomCalculator.minus(); //객체를 통한 munus함수 호출 randomCalculator.mul(); //객체를 통한 mul함수 호출 randomCalculator.div(); //객체를 통한 div함수 호출 } }
Java
복사