Java/Java 학원 복습

자바 학원 필기 7

code2772 2022. 10. 3. 00:20
728x90
반응형

# 메소드

자료형 메소드명(매개변수){

실행할 코드;

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();

System.out.print("아이디 >> ");

id = sc.next();

System.out.print("패스워드 >> ");

pw = sc.nextInt();

if(id.equals("admin") && pw == 1234) {

System.out.println();

System.out.println("로그인 성공");

System.out.print("1. 메뉴등록\n"

+ "2. 메뉴삭제\n"

+ "3. 메뉴수정\n"

+ "4. 나가기\n"

+ "입력 >> ");

choice = sc.nextInt();

sc.nextLine();

switch(choice) {

case 1:

System.out.println();

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("============");

 

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 {

System.out.println("로그인 실패");

}

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();

System.out.print("아이디 >> ");

id = sc.next();

System.out.print("패스워드 >> ");

pw = sc.nextInt();

if(id.equals("admin") && pw == 1234) {

System.out.println();

System.out.println("로그인 성공");

System.out.print("1. 메뉴등록\n"

+ "2. 메뉴삭제\n"

+ "3. 메뉴수정\n"

+ "4. 나가기\n"

+ "입력 >> ");

choice = sc.nextInt();

sc.nextLine();

switch(choice) {

case 1:

System.out.println();

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("============");

 

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("============");

 

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 {

System.out.println("로그인 실패");

}

}

}

반응형

'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