package ex_method;
public class Ex1 {
public static void main(String[] args) {
// Calculator 인스턴스 생성
Calculator myCalc = new Calculator();
myCalc.powerOn();
myCalc.powerOn();
// System.out.println(myCalc.powerOn()); // 에러 발생!
// plus() 메서드를 호출하여 2개의 정수 5, 6 전달 후
// 덧셈 결과를 리턴받아 result1에 저장 후 출력
// myCalc.plus(5, 6);
int result1 = myCalc.plus(5, 6);
System.out.println("result1 = " + result1);
byte x = 10;
byte y = 4;
// divide() 메서드를 호출하여 2개의 변수 x, y 전달 후
// 나눗셈 결과를 리턴받아 result2 에 저장 후 출력
double result2 = myCalc.divide(x, y); // 리터럴 대신 변수 전달 가능(자동형변환)
System.out.println("result2 = " + result2);
myCalc.powerOff();
myCalc.powerOff();
System.out.println("현재 전원 상태 : " + myCalc.isPowerOn);
myCalc.changePower();
myCalc.changePower();
myCalc.changePower();
}
} // Ex1 클래스 끝
class Calculator {
// 전원 on/off 상태를 저장할 boolean 타입 변수 isPowerOn 선언
boolean isPowerOn; // 기본값 false
// powerOn(), powerOff() 메서드 대신 하나의 메서드로 전원 on/off 관리
public void changePower() {
// 현재 isPowerOn 변수값을 반전시키는 작업 수행
isPowerOn = !isPowerOn;
if(isPowerOn) {
System.out.println("전원을 켭니다.");
} else {
System.out.println("전원을 끕니다.");
}
}
public void powerOn() {
// isPowerOn 변수값이 true일 경우
// => "이미 전원이 켜져 있습니다!" 출력
// flase일 경우
// => "전원을 켭니다." 출력하고 isPowerOn 변수를 true로 변경
if (isPowerOn) { // isPowerOn == true 와 동일한 조건식
System.out.println("이미 전원이 켜져 있습니다!");
} else {
System.out.println("전원을 켭니다.");
isPowerOn = true;
}
}
// powerOff() 메서드 정의
// 전원이 켜져 있을 경우
// "전원을 끕니다." 출력하고 전원 상태를 저장한 변수 변경
// 전원이 꺼져 있을 경우
// "이미 전원이 꺼져 있습니다!" 출력
public void powerOff() {
if (isPowerOn) {
System.out.println("전원을 끕니다.");
isPowerOn = false;
} else {
System.out.println("이미 전원이 꺼져 있습니다!");
}
}
// plus() 메서드 정의
// 2개의 정수 값을 전달 받아서
// 메서드 내에서 정수의 합을 계산하여 값을 리턴
public int plus(int x, int y) {
// 전달받은 2개의 정수 x, y의 합을 result 에 저장 후 리턴
int result = x + y;
return result;
}
// divide() 메서드 정의
// 2개의 정수 값을 전달 받아서
// 메서드 내에서 정수의 나눗셈을 계산하여 값을 리턴
public double divide(int x, int y) {
// 전달받은 2개의 정수 x, y의 나눗셈 결과를 result 에 저장 후 리턴
// => 소수점까지 계산을 위해 전달받은 정수를 double 타입으로 변환
// double result = x / y; // int / int = int 이므로 정수만 계산
// 두 피연산자 중 최소 하나의 피연산자는 double 타입 변환 필수!
double result = (double) x / y;
return result;
}
}