자바 계산기 클래스 - jaba gyesangi keullaeseu

조건 1) 자바 클래스 파일명을 Calc.java로 하고 package명은 calc로 한다.

조건 2) 자바 클래스 파일명을 CalcTest.java로 하고 package명은 calc로 한다.

조건 3) Calc 클래스 파일에 정수형 멤버변수로 a, b를 선언한다.

조건 4) Calc 클래스에 기본생성자 함수를 정의하고 a, b 값은 0으로 설정한다.

조건 5) Calc 클래스에 정수형 인자 a, b를 인자(파라메터)로 생성자 함수를 정의하고 멤버 변수에 인자로 전달된 값을 대입한다.

조건 6) Calc 클래스에 멤버 함수 void add(), void sub(), void mul(), void div(), void mod() 함수를 정의한다.

조건 7) 6에서 정의한 함수를 아래와 같이 결과가 나오게 구현한다.

          a = 10, b = 2

          add() -> 10 + 2 = 12

          sub() -> 10 - 2 = 8

          mul() -> 10 * 2 = 20

          div() -> 10 / 2 = 5

          mod() -> 10 % 2 = 0  

조건 8) CalcTest 클래스 메인 함수에서 Calc 클래스 객체를 생성할 때 값으로 10, 2를 전달하여 객체를 생성하고 생성된 객체를 이용하여 6에서 정의된 함수를 호출하여 조건 7과 같이 나오는지 확인한다.

package calc;

public class Calc {
    private int a;
    private int b;
    
    public void add() {
        System.out.println(a + " + " + b + " = " + (a+b));
    }
    
    public void sub() {
        System.out.println(a + " - " + b + " = " + (a-b));
    }
	
    public void mul() {
        System.out.println(a + " * " + b + " = " + (a*b));
    }
	
    public void div() {
        System.out.println(a + " / " + b + " = " + (a/b));
    }
	
    public void mod() {
        System.out.println(a + " % " + b + " = " + (a%b));
    }
    
    public Calc() {            //기본생성자
        a = 0;
        b = 0;
    }
    
    public Calc (int cA, int cB) {
        a = cA;
        b = cB;
    }
}
pakage calc.test;
import calc.Calc;

public class CalcTest {
    
    public static void main(String[] args) {
        Calc calc1 = new Calc(10, 2);
        
        calc1.add();
        calc1.sub();
        calc1.mul();
        calc1.div();
        calc1.mod();
    }
}

결과 

자바 계산기 클래스 - jaba gyesangi keullaeseu
패키지명에서 calc 오타때문에 아주 고생했다. . .

--- 내코드
import java.util.Scanner;
//클래스 필드 생성자 메소드 오버로딩
//계싼기 객체 계산기 쓸 수 있는 환경
public class testday4 {

	// 필드 초기화 : 사용할 변수들
	private int num1, num2;
	private char op;

	public testday4() {	} // 디폴트 생성자

	public testday4(int a, char b, int c) {
		num1 = a;
		op = b;
		num2 = c;
	}

	// 데이터 변수 입력은 메소드
	public void setA(int data) {
		num1 = data;
	}
	public void setB(char data) {
		op = data;
	}
	public void setC(int data) {
		num2 = data;
	}

	public int getA() {
		return num1;
	}
	public char getB() {
		return op;
	}
	public int getC() {
		return num2;
	}


	// 연산 메소드
	public int add() {	// 더하기
		System.out.print(num1+" + "+num2+" = ");
		return num1+num2; 
	}
	public int sub() {	// 빼기
		System.out.print(num1+" - "+num2+" = ");
		return num1-num2; 
	}
	public int mul() {	// 곱
		System.out.print(num1+" * "+num2+" = ");
		return num1*num2; 
	}
	public float div() {	// 나눔
		System.out.print(num1+" / "+num2+" = ");
		return (float)num1/num2;
	}



	public static void main(String[] args) {
		char str;
		testday4 ce = new testday4(); // 생성자 객체 생성
		Scanner sc = new Scanner(System.in);
		
		
		System.out.println("사칙연산계산기");
		System.out.println("ex) 1 + 2 enter >> ");
		System.out.print("계산 입력 : ");
		
		do {
		ce.setA(sc.nextInt());
		ce.setB(sc.next().charAt(0));
		ce.setC(sc.nextInt());	
				
		if (ce.getB() == '+'){
			System.out.println(ce.add());
		}
		else if(ce.getB() == '-'){
			System.out.println(ce.sub());
		}
		else if(ce.getB() == '*'){
			System.out.println(ce.mul());
		}
		else if(ce.getB() == '%'){
			System.out.println(ce.div());
		}
		
		System.out.println();
        System.out.print("Continue?(y/n) : ");
        str = sc.next().charAt(0);
        if(str == 'n' || str == 'N') {
           System.out.println("End");
           break;
        }
		}while(str == 'y' || str == 'Y');
		
	}
}
자바 계산기 클래스 - jaba gyesangi keullaeseu
--- 강사님 코드
import java.util.Scanner;

public class teacherday4 {
	private int num1, num2;
	private char op;
	private float result;
	
	public teacherday4(){
		
	}
	public teacherday4(int a, char b, int c) {
		num1 = a;
		op = b;
		num2 = c;
	}

	public void setA(int data) {
		num1 = data;
	}
	public void setB(char data) {
		op = data;
	}
	public void setC(int data) {
		num2 = data;
	}

	public int getA() {
		return num1;
	}
	public char getB() {
		return op;
	}
	public int getC() {
		return num2;
	}
	
	// 오버로딩
	public float plus() {
		return result = num1+num2;
	}
//	public float plus(int n1, int n2) {
//		setA(n1);
//		setC(n2);
//		return result = n1+n2;
//	}
	public float minus() {
		return result = num1-num2;
	}
	public float mul() {
		return result = num1*num2;
	}
	public float div() {
		return result = num1/num2;
	}
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		teacherday4 ca = new teacherday4();
		
		int num = sc.nextInt();
		ca.setA(num);
		ca.setB(sc.next().charAt(0));
		ca.setC(sc.nextInt());
		
		switch(ca.getB()) {
		case '+' : System.out.println(ca.getA()+""+ca.getB()+""+ca.getC()+"="+ca.plus());
		break;
		case '-' : System.out.println(ca.getA()+""+ca.getB()+""+ca.getC()+"="+ca.minus());
		break;
		case '*' : System.out.println(ca.getA()+""+ca.getB()+""+ca.getC()+"="+ca.mul());
		break;
		case '/' : System.out.println(ca.getA()+""+ca.getB()+""+ca.getC()+"="+ca.div());
		break;
		}
		
	
	}

}
--- 복습코드
import java.util.Scanner;
//클래스 필드 생성자 메소드 오버로딩
//계싼기 객체 계산기 쓸 수 있는 환경
//생성자를 이용한 사칙연산계산기
public class OperNew {

	// 필드 초기화 : 사용할 변수들
	private int num1, num2;
	private char op;

	public OperNew() {	} // 디폴트 생성자
	public OperNew(int a, char b, int c) {
		this.num1 = a;
		this.op = b;
		this.num2 = c;
	}

	public int getA() {
		return num1;
	}
	public char getB() {
		return op;
	}
	public int getC() {
		return num2;
	}

	public int add() {	// 더하기
		System.out.print(getA()+" + "+getC()+" = ");
		return getA()+getC(); 
	}
	public int sub() {	// 빼기
		System.out.print(getA()+" - "+getC()+" = ");
		return getA()-getC(); 
	}
	public int mul() {	// 곱
		System.out.print(getA()+" * "+getC()+" = ");
		return getA()*getC(); 
	}
	public float div() {	// 나눔
		System.out.print(getA()+" / "+getC()+" = ");
		return (float)getA()/getC();
	}

	public static void main(String[] args) {
		int num1, num2;
		char op, str;
		Scanner sc = new Scanner(System.in);
		
        do {
		System.out.println("연산 수식 입력 : ");
		num1 = sc.nextInt();
		op = sc.next().charAt(0);
		num2 = sc.nextInt();
		
		OperNew ce = new OperNew(num1, op, num2); // 생성자 객체 생성
		
		switch(ce.getB()) {
		case '+' : 
			System.out.println(ce.add());break;
		case '-' :
			System.out.println(ce.sub());break;
		case '*' :
			System.out.println(ce.mul());break;
		case '/' :
			System.out.println(ce.div());break;
		}
        
        System.out.println();
        System.out.print("Continue?(y/n) : ");
        str = sc.next().charAt(0);
        if(str == 'n' || str == 'N') {
           System.out.println("End");
           break;
        }
		}while(str == 'y' || str == 'Y');
		

		
	}
}