Day 13 (23.01.11)

Jane·2023년 1월 11일
0

IT 수업 정리

목록 보기
13/124

1. return의 사용

1-1. return의 기능

  • return 값; : 호출한 메소드의 값을 반환한다
  • return; (값 없음) : 메소드 종료
	public static void divide(int num1, int num2) {
		if(num2 == 0) {
			System.out.println("0으로 나눌 수 없습니다.");
			return; // 메소드를 종료할 때에도 return을 쓴다.
		}
		System.out.println("나눗셈 결과 : " + (num1 / num2));
	}
	
	public static void main(String[] args) {
		divide(4,2);
		divide(6,2);
		divide(9,0);
	}

[Console]
나눗셈 결과 : 2
나눗셈 결과 : 3
0으로 나눌 수 없습니다.

  • 0으로 나누기를 제어하지 않으면 수학적 Error가 발생한다.

1-2. return을 많이 쓰면 좋을까?

return을 많이 사용하는 코딩보다는 마지막에 return 해주는 코딩이 더 좋을 수도 있다. (코딩에 정답은 없다!)

  • 값이 정해지면 바로 return을 사용한 코드
	public static char grade(double avg) {
		if (avg >= 90) {
			return '수';
		} else if (avg >= 80) {
			return '우';
		} else if (avg >= 70) {
			return '미';
		} else if (avg >= 60) {
			return '양';
		} else {
			return '가';
		}
	}
  • 값을 구하고 마지막에 return한 코드
	public static char grade(double avg) {
		char grade = '가';
		if (avg >= 90) {
			grade = '수';
		} else if (avg >= 80) {
			grade = '우';
		} else if (avg >= 70) {
			grade = '미';
		} else if (avg >= 60) {
			grade = '양';
		} else {
			grade = '가';
		}
		return grade;
	}

2. 클래스와 인스턴스

컴퓨터 과학에서 객체 또는 오브젝트(object)는 클래스에서 정의한 것을 토대로 메모리(실제 저장공간)에 할당된 것으로 프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 공간을 의미하며, 변수, 자료 구조, 함수 또는 메소드가 될 수 있다.

2-1. 설명

  • 프로그램의 구성 (클래스)
    • 데이터 : 프로그램 상에서 유지하고 관리해야할 값들
    • 기능 : 데이터를 처리하고 조작하는 기능
  • 인스턴스 변수 : 클래스 내에 선언된 변수
  • 인스턴스 메소드 : 클래스 내에 정의된 메소드(함수)
  • 지역 변수 : 함수 안의 변수 (같은 영역 내에서 동일한 이름의 변수를 선언할 수 없다.)
  • scope 밖에 있는 변수를 안에서도 쓸 수 있다. (그렇기 때문에 scope 밖에 있는 동일한 변수를 안에서 만들지 못한다.) 안에 있는 변수는 안에서만 활용할 수 있고, 밖에서 사용할 수 없다.

2-2. 이름 짓는 방법

  • 클래스는 대문자로 시작한다 (ex : BankAccount, JavaPractice)
  • 함수는 소문자로 시작한다 (ex : deposit, checkMyBalance)

2-3. 참조형 데이터 타입

  • 참조형 데이터 타입의 이름은 클래스 이름이 온다.
  • 크기와 용도를 정해줘야 한다.
  • 크기 : 4byte (주소의 메모리 크기 32bit : 2^32)
  • 데이터 타입 안의 내용은 참조할 내용의 주소가 들어간다.

2-4. 객체 생성

  • new : 객체 생성 키워드
  • new 옆에 클래스 이름과 같은 함수 사용 (생성자)
  • 클래스(참조형 데이터타입)도 메모리에 있어야 사용할 수 있으므로, new를 사용하여 객체를 만들고 메모리에 올린다.(함수도 메모리 안에 4byte로 올린다.)
  • 변수 안에 해당 데이터의 메모리에 올라간 주소값을 넣으면 객체가 생성된다.

3. 은행 계좌 코드

3-1. 기본 (입금, 출금, 잔액)

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 static void main(String[] args) {
		deposit(10000);
		checkMyBalance();
		withdraw(3000);
		checkMyBalance();
	}

}

[Console]
잔액 : 10000
잔액 : 7000

3-2. 클래스별로 나누어진 코드

BankAccount 폴더 안에 (클래스)BankAccount.java, (클래스)BankAccountTest.java 만들고 작성한다.


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 BankAccountTest {

	public static void main(String[] args) {
		BankAccount yoon; // 변수 선언 (데이터 타입 + 변수명)
		
		yoon = new BankAccount(); // 객체 생성

		yoon.deposit(5000);
		yoon.checkMyBalance();
		yoon.withdraw(1000);
		yoon.checkMyBalance();
	}

}

[Console]
잔액 : 5000
잔액 : 4000

profile
velog, GitHub, Notion 등에 작업물을 정리하고 있습니다.

0개의 댓글