# 메소드
자료형 메소드명(매개변수){
실행할 코드;
return 리턴값;
}
변수명.메소드명()
함수와 메소드
클래스 밖에 선언되어 있다면 함수라고 부르지만 클래스 내부에 선언되어 있는 함수는 메소드라고 부른다.
자바에서는 모든 함수가 클래스 내부에서 선언되기 때문에 메소드만
존재한다.
개념 상 함수가 메소드보다 더 큰 범주이므로 메소드를 함수라고 불러도
되지만, 자바는 메소드만 존재하므로 메소드라고 부르는게 좋다.
메소드
기능
이름 뒤에 소괄호.
단, 키워드 뒤에 소괄호는 메소드가 아니다.
메소드 선언과 구현
리턴타입 메소드명(자료형 매개변수명, .....) <- 선언부
{ <- 구현부
실행할 문장;
return 리턴값;
}
1. 리턴타입 : 반환할 값이 있다면 반환 값의 자료형을 작성한다. 없다면 void를 작성
2. 메소드명 : 동사로 작성한다.
3. 매개변수 : 외부에서 전달받을 값이 있다면, 자료형과 순서에 맞게 선언해준다.
(자료형이 반드시 필요하다.)
4. 실행할 문장 : 생략이 가능하다. 메소드의 기능을 구현하는 코드를 작성한다.
5. return : 생략이 가능하다.
메소드의 선언 순서
1. 기능을 생각한다.(숫자를 더해주는 기능)
2. 기능에 알맞은 메소드 명을 생각한다. (가능하면 동사로, add, sum, plus)
3. 반환타입이 생각나지 않는다면 우선 void로 작성한다.
void add(){}
4. 매개변수를 생각한다. (생각이 나지 않으면 비워둔다.)
void add(int num1, int num2){}
5. 실행할 문장을 작성한다.
void add(int num1, int num2){
int result = num1 + num2;
}
6. 리턴 값을 생각한다.
int add(int num1, int num2){
int result = num1 + num2;
return result;
}
메소드 추가 설명
1. return타입이 있는경우 하나의 값으로 볼 수 있다.
2. 메소드는 기능을 저장하는 것이라고 볼 수 있다.(우리끼리하는 소리 면접때X)
메소드 사용하는 이유
1. 중복코드의 제거
2. 높은 재사용성
3. 코드를 작게 쪼개서 만들 수 있다.
메소드의 종류
매개변수 리턴값(반환값)
1. X X
2. O X
3. X O
4. O O
연습문제 1

연습문제 2

연습문제 3

비밀번호 문제

비밀번호 문제 메소드 변환

package day007;
import java.util.Scanner;
public class Kiosk {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] menus = new String[3];
int[] price = new int[3];
int choice = 0;
while(true) {
System.out.println("##########################");
System.out.println("#JAVA커피에 오신걸 환영합니다.#");
System.out.println("##########################");
System.out.println();
System.out.print("1. 전체 메뉴 보기\n"
+ "2. 관리자 로그인\n"
+ "3. 종료\n"
+ "입력 >> ");
choice = sc.nextInt();
switch(choice) {
case 1:
System.out.println();
for(int i=0; i<menus.length; i++) {
if(menus[i] == null) {
System.out.println(i+1 + ". 메뉴를 준비중 입니다!");
System.out.println("---------------------------");
}else {
System.out.println(i+1 + ". " + menus[i]);
System.out.println("가격 : " + price[i]);
System.out.println("---------------------------");
}
}
break;
case 2:
String id = null;
int pw = 0;
System.out.println();
id = sc.next();
pw = sc.nextInt();
if(id.equals("admin") && pw == 1234) {
System.out.println();
+ "2. 메뉴삭제\n"
+ "3. 메뉴수정\n"
+ "4. 나가기\n"
+ "입력 >> ");
choice = sc.nextInt();
sc.nextLine();
switch(choice) {
case 1:
System.out.println();
System.out.println("==============");
for(int i=0; i<menus.length; i++) {
System.out.print(i+1 + ". 메뉴 이름 >> ");
menus[i] = sc.nextLine();
System.out.print(menus[i] + " 가격 >> ");
price[i] = sc.nextInt();
sc.nextLine();
}
break;
case 2:
System.out.println();
System.out.println("============");
System.out.println();
for(int i=0; i<menus.length; i++) {
if(menus[i] == null) {
System.out.println(i+1 + ". 메뉴를 준비중 입니다!");
System.out.println("---------------------------");
}else {
System.out.println(i+1 + ". " + menus[i]);
System.out.println("가격 : " + price[i]);
System.out.println("---------------------------");
}
}
System.out.print("삭제할 메뉴를 선택하세요 >> ");
choice = sc.nextInt();
sc.nextLine();
menus[choice-1] = null;
price[choice-1] = 0;
break;
case 3:
break;
case 4:
break;
default :
System.out.println("잘못 입력하셨습니다.");
}
}else {
}
break;
case 3:
break;
default :
System.out.println("잘못 입력했습니다.");
}
}
}
}



package day07;
import java.util.Scanner;
public class Kiosk2 {
static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
String[] menus = new String[3];
int[] price = new int[3];
int choice = 0;
boolean isRun = true;
Kiosk2 kiosk =new Kiosk2();
while(isRun) {
kiosk.printMainMenu();
choice = sc.nextInt();
switch(choice) {
case 1:
kiosk.printMenu(menus, price);
kiosk.selectMenu(menus, price);
break;
case 2:
kiosk.adminLogin(menus, price);
break;
case 3:
System.out.println("프로그램이 종료됩니다.");
isRun = false;
break;
default :
System.out.println("잘못 입력했습니다.");
} //switch
} // while
} //main()
void printMainMenu() {
System.out.println("##########################");
System.out.println("#JAVA커피에 오신걸 환영합니다.#");
System.out.println("##########################");
System.out.println();
System.out.print("1. 전체 메뉴 보기\n"
+ "2. 관리자 로그인\n"
+ "3. 종료\n"
+ "입력 >> ");
}
void printMenu(String[] menus, int[] price) {
System.out.println();
for(int i=0; i<menus.length; i++) {
if(menus[i] == null) {
System.out.println(i+1 + ". 메뉴를 준비중 입니다!");
System.out.println("---------------------------");
}else {
System.out.println(i+1 + ". " + menus[i]);
System.out.println("가격 : " + price[i]);
System.out.println("---------------------------");
}
}
}
void selectMenu(String[] menus, int[] price) {
int choice = 0;
System.out.println();
System.out.print("메뉴 번호를 입력하세요 >> ");
choice = sc.nextInt();
if(menus[choice-1] == null) {
System.out.println("해당 메뉴는 준비중 입니다.");
System.out.println();
return;
}
System.out.println("*************************************");
System.out.println(menus[choice-1] + "을(를) 선택하셨습니다.");
System.out.println("가격은 " + price[choice-1] + "원 입니다.");
System.out.println("*************************************");
}
void adminLogin(String[] menus, int[] price) {
String id = null;
int pw = 0, choice = 0;
System.out.println();
id = sc.next();
pw = sc.nextInt();
if(id.equals("admin") && pw == 1234) {
System.out.println();
+ "2. 메뉴삭제\n"
+ "3. 메뉴수정\n"
+ "4. 나가기\n"
+ "입력 >> ");
choice = sc.nextInt();
sc.nextLine();
switch(choice) {
case 1:
System.out.println();
System.out.println("==============");
for(int i=0; i<menus.length; i++) {
System.out.print(i+1 + ". 메뉴 이름 >> ");
menus[i] = sc.nextLine();
System.out.print(menus[i] + " 가격 >> ");
price[i] = sc.nextInt();
sc.nextLine();
}
break;
case 2:
System.out.println();
System.out.println("============");
System.out.println();
for(int i=0; i<menus.length; i++) {
if(menus[i] == null) {
System.out.println(i+1 + ". 메뉴를 준비중 입니다!");
System.out.println("---------------------------");
}else {
System.out.println(i+1 + ". " + menus[i]);
System.out.println("가격 : " + price[i]);
System.out.println("---------------------------");
}
}
System.out.print("삭제할 메뉴를 선택하세요 >> ");
choice = sc.nextInt();
sc.nextLine();
menus[choice-1] = null;
price[choice-1] = 0;
break;
case 3:
System.out.println();
System.out.println("============");
System.out.println();
for(int i=0; i<menus.length; i++) {
if(menus[i] == null) {
System.out.println(i+1 + ". 메뉴를 준비중 입니다!");
System.out.println("---------------------------");
}else {
System.out.println(i+1 + ". " + menus[i]);
System.out.println("가격 : " + price[i]);
System.out.println("---------------------------");
}
}
System.out.print("수정할 메뉴를 선택하세요 >> ");
choice = sc.nextInt();
sc.nextLine();
System.out.print(choice-1 + ". 메뉴이름 >> ");
menus[choice-1] = sc.nextLine();
System.out.print(menus[choice-1] + " 가격 >> ");
price[choice-1] = sc.nextInt();
sc.nextLine();
break;
case 4:
System.out.println("메인메뉴로 돌아갑니다.");
System.out.println();
break;
default :
System.out.println("잘못 입력하셨습니다.");
}
}else {
}
}
}
'Java > Java 학원 복습' 카테고리의 다른 글
자바 학원 필기 9 (0) | 2022.10.03 |
---|---|
자바 클래스 - 학원 (0) | 2022.10.03 |
자바 배열 실습문제, 메소드 (1) | 2022.10.03 |
자바 학원 필기 5 (0) | 2022.10.03 |
자바 학원 필기 4 (1) | 2022.10.03 |