14일차 java 연산(2023-01-11)

권단비·2023년 1월 11일
0

IT

목록 보기
26/139

return은 두 가지 의미를 지니고 있다.

1.메소드를 호출한 영역으로 값을 반환
2.메소드의 종료

[Eclipse 연습]

[계산]
public class Test10 {
	public static void main(String[] args) {
		char grade = grade(avg(90, 80, 100));
		System.out.println(grade + " 입니다.");
	}
	public static double avg(double n, double n1, double n2) {
		double avg = (n + n1 + n2) / 3.0;
		return avg;
	}
	public static char grade(double num) {
		char grade = '가';
		if (num >= 90) {
			grade = '수';
		} else if (num >= 80) {
			grade = '우';
		} else if (num >= 70) {
			grade = '미';
		} else if (num >= 60) {
			grade = '양';
		} else {
			grade = '가';
		}
		return grade;
	}
}
[결과값]
수 입니다.

[계산]
public class Test10 {
	public static void main(String[] args) {
		oneToHap(10);
		// 1부터 10까지의 합
		toHap(2, 10);
		// 2 부터 10까지의 합
	}
	public static void oneToHap(int num) {
		int sum = 0;
		for (int i = 1; i <= num; i++) {
			sum += i;
		}
		System.out.println(sum);
	}
	public static void toHap(int num2, int num3) {
		int sum1 = 0;
		for (int j = num2; j <= num3; j++) {
			sum1 += j;
		}
		System.out.println(sum1);
	}
}	
[결과값]
55
54

[계산]
public class Test11 {
	public static void main(String[] args) {
		divide(4, 2);
		divide(6, 2);
		divide(9, 0);
	}
	public static void divide(int num1, int num2) {
		if (num2 == 0) {
			System.out.println("0으로 나눌 수 없습니다.");
			return; // void이지만 return을 사용함. 값의 반환 없이 메소드만 종료
		}
		System.out.println("나눗셈 결과: " + (num1 / num2));
	}
}
[결과값]
나눗셈 결과: 2
나눗셈 결과: 3
0으로 나눌 수 없습니다.

[변수의 스코프]

변수의 스코프는 중괄호 내에서만 값을 사용할 수 있다.
인스턴스 변수 : class 중괄호 내에 선언되어 있는 변수
지역 변수 : void main()이나 double avg()등 함수 안에 선언되어 있는 변수


[클래스와 인스턴스]

객체지향언어(Object Oriented Language)
인스턴스 : 객체/class와 그 기능을 복사하는 붕어빵틀
클래스:데이터+기능
데이터=변수 : 프로그램상에서 유지하고 관리해야 할 데이터
기능=함수 : 데이터를 처리하고 조작하는 기능
//int num = 1; : 변수 선언(값을 메모리로 올리는 행위이고, 함수는 그 주소값을 불러온다.)
//BankAccount : class이름
//BankAccount yoon = new BankAccount(); : 좌변과 우변의 자료형은 동일해야한다.
//JVM이 32bit니까 자료형 데이터의 크기는 늘 4byte다.
//데이터 타입에는 크기와 용도가 있다
//yoon:변수명
//new : 객체 생성 키워드 (생성자함수 호출)

[계산]
public class BankAccountPO {
	static int balance = 0; // 예금 잔액
	public static void main(String[] args) {
		deposit(10000); // 입금 진행
		checkMyBalance(); // 잔액 확인
		withdraw(3000); // 출금 진행
		checkMyBalance(); // 잔액 확인
	}
	public static int deposit(int amount) { // 입금
		balance += amount;
		return balance;
	}
	public static int withdraw(int amount) { // 출금
		balance -= amount;
		return balance;
	}
	public static int checkMyBalance() { // 예금 조회
		System.out.println("잔액 : " + balance);
		return balance;
	}
}
[결과값]
잔액 : 10000
잔액 : 7000

[계산]
public class BankAccount {
	int balance = 0; // 예금 잔액
	public int deposit(int amount) {
		balance += amount;
		return balance;
	}
	public int withdraw(int amount) {
		balance -= amount;
		return balance;
	}
	public int checkMyBalance() {
		System.out.println("잔액 : " + balance);
		return balance;
	}
}
………………………………………………………………………………………………………………………………………
public class BankAccountPO {
	public static void main(String[] args) {
		// 두 개의 인스턴스 생성
		BankAccount yoon = new BankAccount();
		BankAccount park = new BankAccount();
//int num = 1; : 변수 선언
//BankAccount : class이름
//BankAccount yoon = new BankAccount(); : 좌변과 우변의 자료형은 동일해야한다.
//JVM이 32bit니까 자료형 데이터의 크기는 늘 4byte다.
//데이터 타입에는 크기와 용도가 있다
//yoon:변수명
//new : 객체 생성 키워드 (생성자함수 호출)
//BankAccount = new BankAccount()는 값을 메모리로 올리는 행위이고, 함수는 그 주소값을 불러온다.
		// 각 인스턴스를 대상으로 예금을 진행
		yoon.deposit(5000);
		park.deposit(3000);
		// 각 인스턴스를 대상으로 출금을 진행
		yoon.withdraw(1000);
		park.withdraw(1000);
		// 각 인스턴스를 대상으로 잔액을 조회
		yoon.checkMyBalance();
		park.checkMyBalance();
	}
}
[결과값]
잔액 : 3000
잔액 : 1000

0개의 댓글