명품 자바 Programming
Chapter4 Ex5
Q :
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()를 호출하여 그 결과 값을 화면에 출력한다.
Solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | package chap4ex; import java.util.Scanner; class add{ int a; int b; void setValue(int a, int b){ this.a = a; this.b = b; } int calculate(){ return this.a + this.b; } } class sub{ int a; int b; void setValue(int a, int b){ this.a = a; this.b = b; } int calculate(){ return this.a - this.b; } } class mul{ int a; int b; void setValue(int a, int b){ this.a = a; this.b = b; } int calculate(){ return this.a * this.b; } } class div{ int a; int b; void setValue(int a, int b){ this.a = a; this.b = b; } double calculate(){ return this.a / this.b; } } public class q5 { public static void main(String[] args) { int a, b; char op; Scanner in = new Scanner(System.in); System.out.print("두 정수와 연산자를 입력하시오>>"); a = in.nextInt(); b = in.nextInt(); op = in.next().charAt(0); switch(op){ case '+': add ad = new add(); ad.setValue(a, b); System.out.println(ad.calculate()); break; case '-': sub su = new sub(); su.setValue(a, b); System.out.println(su.calculate()); break; case '*': mul mu = new mul(); mu.setValue(a, b); System.out.println(mu.calculate()); break; case '/': div di = new div(); di.setValue(a, b); System.out.println(di.calculate()); break; } } } | cs |
Key Point
각 클래스에 맞는 멤버변수, 메소드를 정의한다.
유용하셨다면 공감 버튼 ↓ 눌러주세요!
728x90
'# Language > Java' 카테고리의 다른 글
명품 JAVA 프로그래밍 5장 1번 (0) | 2018.07.21 |
---|---|
명품 JAVA 프로그래밍 5장 OpenChallenge (0) | 2018.07.20 |
명품 JAVA 프로그래밍 4장 6번 (2) | 2018.07.20 |
명품 JAVA 프로그래밍 4장 4번 (0) | 2018.07.20 |
명품 JAVA 프로그래밍 4장 3번 (0) | 2018.07.20 |
명품 JAVA 프로그래밍 4장 2번 (0) | 2018.07.20 |
명품 JAVA 프로그래밍 4장 1번 (0) | 2018.07.20 |