5. 다수의 클래스를 정의하고 활용하는 연습을 해보자. 더하기(+), 빼기(-), 곱하기(*), 나누기(/)를 수행하는 각 클래스
Add, Sub, Mul, Div를 만들어라. 이들은 모두 다음 필드와 메소드를 가진다.
● int 타입의 a, b 필드 : 연산하고자 하는 피연산자
● void setValue(int a, int b) : 피연산자를 객체 내에 설정한다.
● int calculate() : 해당 클래스의 목적에 맞는 연산을 실행하고 그 결과를 리턴한다.
Add 클래스 : int a, int b, setValue(), calculate()
Sub 클래스 : int a, int b, setValue(), calculate()
Mul 클래스 : int a, int b, setValue(), calculate()
Div 클래스 : int a, int b, setValue(), calculate()
main() 메소드에서는 다음 실행 사례의 그림과 같이 키보드로부터 두 정수와 계산하고자 하는 연산자를 입력받은 후
Add, Sub, Mul, Div 중에서 이 연산을 실행할 수 있는 객체를 생성하고 setValue()와 calculate()를 호출하여
그 결과 값을 화면에 출력한다.
------------------------------------------------------------
두 정수와 연산자를 입력하시오>> 3 4 +
7
-------------------------------------------------------------
[출처] [실습문제]4장 5번문제|작성자 천미르
import java.util.*; public class Calc { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int num1, num2; char op; System.out.print("두 정수와 연산자를 입력하시오>> "); num1 = scanner.nextInt(); num2 = scanner.nextInt(); op = scanner.next().charAt(0); switch (op) { case '+': Add add = new Add(); add.setValue(num1, num2); System.out.println(add.calculate()); break; case '-': Sub sub = new Sub(); sub.setValue(num1, num2); System.out.println(sub.calculate()); break; case '*': Mul mul = new Mul(); mul.setValue(num1, num2); System.out.println(mul.calculate()); break; case '/': Div div = new Div(); div.setValue(num1, num2); System.out.println(div.calculate()); break; } } } // 덧셈 class Add { private int a, b; void setValue(int a, int b) { this.a = a; this.b = b; } int calculate() { return a + b; } } // 뺼셈 class Sub { private int a, b; void setValue(int a, int b) { this.a = a; this.b = b; } int calculate() { return a - b; } } // 곱셈 class Mul { private int a, b; void setValue(int a, int b) { this.a = a; this.b = b; } int calculate() { return a * b; } } // 나눗셈 class Div { private int a, b; void setValue(int a, int b) { this.a = a; this.b = b; } int calculate() { return a / b; } }
못 풀면 심각한 난이도의 쉬운 문제
'Java' 카테고리의 다른 글
[Java] AccountTester (0) | 2017.04.13 |
---|---|
[Java] 명품 자바프로그래밍 제 4장 실습문제 6번 (0) | 2017.04.11 |
[Java] 명품 자바프로그래밍 제 4장 실습문제 4번 (0) | 2017.04.11 |
[Java] 명품 자바프로그래밍 제 4장 실습문제 3번 (0) | 2017.04.11 |
[Java] 명품 자바프로그래밍 제 4장 실습문제 2번 (0) | 2017.04.11 |
댓글