archive
[10주차 실습] 5월 4일 Problem Set 본문
We want to construct the Calculator, Calc, Add, Sub, Mul, and Div classes in order for the attached main method to work properly.
• Calculator has one Calc field.
• The setCalculator method of Calculator takes one parameter and can receive Add, Sub, Mul, and Div objects as parameters. When each object is received, it can be set as the field.
• The run method of Calculator receives two integers through a scanner and performs calculations based on the object received by setCalculator.
• Calc is an abstract class that has two int operands as fields.
• The setValue method in Calc saves the two received values as operand values inside the object.
• The calculate method in Calc is declared as an abstract method for calculation.
• Add, Sub, Mul, and Div are classes that inherit from Calc.
package May04;
public abstract class Calc {
protected int a, b;
void setValue(int a, int b) {
this.a = a;
this.b = b;
}
abstract int calculate();
}
class Add extends Calc{
@Override
public int calculate(){
int val=this.a+this.b;
return val;
}
}
class Sub extends Calc{
@Override
public int calculate(){
int val=this.a-this.b;
return val;
}
}
class Mul extends Calc{
@Override
public int calculate(){
int val=this.a*this.b;
return val;
}
}
class Div extends Calc{
@Override
public int calculate(){
int val=this.a/this.b;
return val;
}
}
package May04;
import java.util.Scanner;
public class Calculator {
Calc cal;
Scanner scanner = new Scanner(System.in);
void setCalculator(Calc cal) {
this.cal = cal;
}
void run() {
System.out.print("Write two integers >> ");
int a = scanner.nextInt();
int b = scanner.nextInt();
cal.setValue(a, b);
System.out.println(cal.calculate());
}
}
package May04;
public class CalExample {
public static void main(String[] args) {
// TODO Auto-generated method stub
Calculator calculator = new Calculator();
calculator.setCalculator(new Add());
calculator.run();
calculator.setCalculator(new Div());
calculator.run();
calculator.setCalculator(new Sub());
calculator.run();
calculator.setCalculator(new Mul());
calculator.run();
}
}
<실행결과>
'Java > 23_1 소프트웨어프로젝트' 카테고리의 다른 글
[9주차 실습] 4월 28일 Problem Set (0) | 2023.04.28 |
---|---|
[7주차 실습] 4월 13일 Problem Set (0) | 2023.04.28 |
[6주차 실습] 4월 6일 Problem Set (0) | 2023.04.06 |
[5주차 실습] 3월 30일 Problem Set (0) | 2023.03.31 |
[4주차 실습] 3월 23일 Problem Set (0) | 2023.03.30 |