Back end/Java 기본
메소드
jinpark1992
2023. 11. 14. 12:56
1. 메소드
package chap_06;
public class _01_Method {
// 메소드 정의
public static void sayHello() {
System.out.println("안녕하세요? 메소드입니다.");
}
public static void main(String[] args) {
// 메소드 호출
System.out.println("메소드 호출 전");
sayHello();
sayHello();
sayHello();
System.out.println("메소드 호출 후");
}
}
2. 전달값(Parameter)
package chap_06;
public class _02_Parameter {
// 전달값이 있는 메소드
public static void power(int number){ // Parameter, 매개변수
int result = number * number;
System.out.println(number + " 의 2승은 " + result);
}
public static void powerByExp(int number, int exponent){
int result = 1;
for (int i = 0; i < exponent; i++) {
result *= number; // result = result * number;
}
System.out.println(number + "의" + exponent + " 승은 " + result);
}
public static void main(String[] args) {
// 전달값 Parameter
// 2 -> 2 * 2 = 4
// 3 -> 3 * 3 = 9
// Argument, 인수
power(2); // 2 * 2 = 4
power(3); // 3 * 3 = 9
powerByExp(2,3); // 2 * 2 * 2 = 8
powerByExp(3,3); // 3 * 3 * 3 = 27
powerByExp(10,0); // 1
}
}
3. 반환값(Return)
package chap_06;
public class _03_Return {
// 호텔 전화번호
public static String getPhoneNumber() {
String phoneNumber = "02-1234-5678";
return phoneNumber;
}
// 호텔 주소
public static String getAddress(){
return "서울시 어딘가";
}
// 호텔 엑티비티
public static String getActivities(){
return "볼링장, 탁구장, 노래방";
}
public static void main(String[] args) {
// 반환값, Return
String contactNumber = getPhoneNumber();
System.out.println("호텔 전화번호: " + contactNumber);
String address = getAddress();
System.out.println("호텔 주소: " + address);
System.out.println("호텔 액티비티 :" + getActivities());
}
}
4. 전달값과 반환값
package chap_06;
public class _04_ParameterAndReturn {
public static int getPower(int number) {
int result = number * number;
return result;
// return number * number;
}
public static int getPowerByExp(int number, int exponent) {
int result = 1;// 2,4,8
for (int i = 0; i < exponent; i++) { // 0,1,2,3
result *= number; // result = result * number;
}
return result;
}
public static void main(String[] args) {
// 전달값과 반환값이 있는 메소드
int retVal = getPower(2);
System.out.println(retVal); // 2 * 2 = 4
retVal = getPower(3);
System.out.println(retVal); // 3 * 3 = 9
retVal = getPowerByExp(3,3);
System.out.println(retVal); // 3 * 3 * 3 = 27
System.out.println(getPowerByExp(2,4)); // 2 * 2 * 2 * 2 = 16
}
}
5. 메소드 오버로딩
package chap_06;
public class _05_Overloading {
public static int getPower(int number) {
int result = number * number;
return result;
// return number * number;
}
public static int getPower(String strNumber) {
int number = Integer.parseInt(strNumber);
return number * number;
}
public static int getPower(int number, int exponent) {
int result = 1;// 2,4,8
for (int i = 0; i < exponent; i++) { // 0,1,2,3
result *= number; // result = result * number;
}
return result;
}
public static void main(String[] args) {
// 메소드 오버로딩
// 같은 이름의 메소드를 여러 번 선언
// 1. 전달값의 타입이 다르거나
// 2. 전달값의 갯수가 다르거나 할때 메소드 오버로딩 선언이 가능하다.
System.out.println(getPower(3)); // 3 * 3 = 9
System.out.println(getPower("4")); // 4 * 4 = 16
System.out.println(getPower(3, 3)); // 3 * 3 * 3 = 27
}
}
6. 메소드가 필요한 이유
package chap_06;
public class _06_WhenToUse {
public static int getPower(int number) {
return getPower(number, 2); // 메소드 안에 메소드를 또 쓸수가 있음.
}
public static int getPower(int number, int exponent){
int result = 1;
for (int i = 0; i < exponent; i++) {
result *= number;
}
return result;
}
public static void main(String[] args) {
// 메소드 필요한 이유
// 2의 2승을 구하기
System.out.println(getPower(2,2)); // 2 * 2 = 4
// 3의 3승을 구하기
System.out.println(getPower(3,3)); // 3 * 3 * 3 = 27
// 4의 2승을 구하기
System.out.println(getPower(4,2)); // 4 * 4 = 16
}
}
7. 변수의 범위
package chap_06;
public class _07_VariableScope {
public static void methodA(int number) {
//System.out.println(number);
//System.out.println(result);
}
public static void methodB() {
int result = 1; // 지역 변수
}
public static void main(String[] args) {
int number = 3;
//System.out.println(result);
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
// System.out.println(i);
{
int j = 0;
System.out.println(j);
System.out.println(number);
}
// System.out.println(j);
}
}
8. Main 메소드
package chap_06;
public class _08_MainMethod {
public static void main(String[] args) {
for (String s :
args) {
System.out.println(s);
}
// 1. 도서 조회
// 2. 도서 대출
// 3. 도서 반납
if(args.length == 1){
switch (args[0]){
case "1" :
System.out.println("도서 조회 메뉴입니다.");
break;
case "2":
System.out.println("도서 대출 메뉴입니다.");
break;
case "3":
System.out.println("도서 반납 메뉴입니다.");
break;
default:
System.out.println("잘못 입력하셨습니다.");
}
} else
System.out.println("사용법) 1~3 메뉴 중 하나를 입력하세요.");
}
}