return은 두 가지 의미를 지니고 있다.
1.메소드를 호출한 영역으로 값을 반환
2.메소드의 종료
[계산] 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