객체지향에 대해서 배우고 자바 시작 2일차인가에 만들었던 기본 계산기를 객체지향 반영해서 한번 만들어봤는데 이게 동작은하는데 분명히 뭐 어디 병신같이 만들었을텐데 아무나 보고 어디가 병신인지 조언좀 해줘요
//여기가 계산기 기능에 대한 클래스구요
package Cal;
public class Func {
private int a;
private int b;
private int sum;
private int gop;
private int min;
private double nau;
public Func(int a, int b, int sum, int gop, int min, double nau, String input) {
super();
this.a = a;
this.b = b;
this.sum = sum;
this.gop = gop;
this.min = min;
this.nau = nau;
}
public Func() {
// TODO Auto-generated constructor stub
}
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
public int getB() {
return b;
}
public void setB(int b) {
this.b = b;
}
public int getSum() {
return a+b;
}
public int setSum(int sum) {
return this.sum = sum;
}
public int getGop() {
return a*b;
}
public void setGop(int gop) {
this.gop = gop;
}
public int getMin() {
return a-b;
}
public void setMin(int min) {
this.min = min;
}
public double getNau() {
return a/b;
}
public void setNau(double nau) {
this.nau = nau;
}
}
//여기가 계산기 메인쪽이에요
package Cal;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Calmain {
public static void main(String ar[]) throws IOException{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
Func cal = new Func();
while(true){
System.out.println("==계산기==");
System.out.print("연산자를 입력해주세요: ");
String input3 = in.readLine();
System.out.print("첫 번쨰 숫자를 입력하세요: ");
cal.setA(Integer.parseInt(in.readLine()));
System.out.print("두 번쨰 숫자를 입력하세요: ");
cal.setB(Integer.parseInt(in.readLine()));
if(input3.equals("+")){
System.out.println(cal.getSum());
}
else if(input3.equals("-")){
System.out.println(cal.getMin());
}
else if(input3.equals("*")){
System.out.println((long)cal.getGop());
}
else if(input3.equals("/")){
System.out.println((double)cal.getNau());
}
else {
System.out.println("연산자를 정확히 입력해주세요연산자는 1.* 2./ 3.+ 4.- 중 선택 가능합니다");
}
}
}
}
만들긴했는데 기존에 했던것보다 코드가 더 길어진 기분인데 왜그런거죠 사실 아직 정확히 get set의 사용법에 대해 모르겠어요 억지로 껴맞춰서 만든 느낌이 강해요
어디가 이상할까요
Gop sum 이런건 a하고 b에 의존하는값인데 setGop setSum이런게필요할까
그리고 함수명이랑 변수명은 영어단어에 기반해서 짓는게좋음 안헷갈리게.. gop -> mul, nau -> div, min은 최소를나타내는거랑 헷갈리지않게 sub로
ㅇㅇ// 아 애초에 기본계산기는 그럼 객체로 나눠서 만들필요가 없겠네
ㅇㅇ// 고마워요