본문 바로가기
Java/Java 학원 복습

자바 학원 필기 7

by code2772 2022. 10. 3.

[ 목차 ]

    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