본문 바로가기
자바과정/Java

Java 실습(사칙연산계산기:메소드, 생성자) - 4일차

by Parkej 2021. 2. 2.
--- 내코드
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');
		
	}
}

 

 

--- 강사님 코드
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');
		

		
	}
}
반응형

댓글