본문 바로가기
Study/JAVA

[20210516] 자바 기초 코딩 실습

by 햄리뮤 2021. 5. 16.
반응형

코딩 숙제 (Chapter 6.8 - 클래스)

- 각 기능마다 method를 분리하여 프로그램 만들기 최소 2개

대표이미지 쓰려고 가져옴! [출처]http://catchcode.de/education_programming.html 

▶메소드 분리 1

package may.four;

public class HWMain_2 {
  public static void main(String[] args) {
    HW_2 app = new HW_2();
    app.init();
  }
}

 

 

package may.four;

import java.util.Scanner;

public class HW_1 {

  private Scanner scanner = new Scanner(System.in);
  private int money = 10000;
  private boolean run = true;

  public void init() {
    while(run) {
      menu();
    }
  }

  private void menu() {
    System.out.println("**상점**");
    System.out.println("1. 구매");
    System.out.println("2. 종료");
    System.out.println("*******");

    String input = scanner.next();
    switch (input) {
      case "1":
        buy();
        break;
      case "2":
        quit();
        break;
      default:
        System.out.println("잘못 눌렀습니다.");
    }
  }

  private void buy() {
    System.out.println("구매***********");
    System.out.println("1. 소드: 3000원");
    System.out.println("2. 활: 2500원");
    System.out.println("3. 방패: 3500원");
    System.out.println("**************");
    String input = scanner.next();
    switch (input) {
      case "1":
        checkMoney("소드", 3000);
        break;
      case "2":
        checkMoney("활", 2500);
        break;
      case "3":
        checkMoney("방패", 3500);
        break;
      default:
        System.out.println("잘못 눌렀습니다. 메뉴로 돌아갑니다.");
    }
  }

  // 소지금관리 메소드

  /**
   * 
   * @param item 아이템이름
   * @param m 아이템 가격
   */
  private void checkMoney(String item, int m) {
    System.out.println("소지금: " + money);
    System.out.println("아이템: " + item + "/아이템 가격: " + m);

    if (money <= 0 || money < m) {
      System.out.println("소지금이 부족합니다.");
    } else {
      System.out.println(item + "을 구매합니다.");
      money = money - m;
      System.out.println("현재 소지금: " + money);
    }
  }

  private void quit() {
    run = false;
    System.out.println("시스템을 종료합니다.");
  }
}

▶메소드 분리 2

package may.four;

public class HWMain_2 {
  public static void main(String[] args) {
    HW_2 app = new HW_2();
    app.init();
  }
}

 

 

package may.four;

public class HWDomain_2 {
  private String name;
  private String age;
  private String tel;

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public String getAge() {
    return age;
  }

  public void setAge(String age) {
    this.age = age;
  }

  public String getTel() {
    return tel;
  }

  public void setTel(String tel) {
    this.tel = tel;
  }

  @Override
  public String toString() {
    return "학생회{" +
        "name='" + name + '\'' +
        ", age='" + age + '\'' +
        ", tel='" + tel + '\'' +
        '}';
  }
}

 

 

package may.four;

import java.lang.reflect.Member;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class HW_2 {
  private boolean run = true;
  private Scanner scanner = new Scanner(System.in);
  private List<HWDomain_2> members = new ArrayList<>();
  public void init() {
    while(run) {
      menu();
    }
  }

  private void menu() {
    System.out.println("**학생회 등록**");
    System.out.println("1. 등록");
    System.out.println("2. 목록");
    System.out.println("3. 종료");
    System.out.println("*************");
    String input = scanner.next();

    switch (input) {
      case "1":
        apply();
        break;
      case "2":
        findAll();
        break;
      case "3":
        quit();
        break;
    }
  }

  private void quit() {
    run = false;
    System.out.println("시스템을 종료합니다.");
  }

  private void findAll() {
    members.forEach(r -> System.out.println(r));
  }

  private void apply() {
    HWDomain_2 member = new HWDomain_2();

    System.out.println("등록****");
    System.out.println("이름: ");
    member.setName(scanner.next());
    System.out.println("나이: ");
    member.setAge(scanner.next());
    System.out.println("전화번호: ");
    member.setTel(scanner.next());

    members.add(member);
  }
}

 

반응형

'Study > JAVA' 카테고리의 다른 글

[20210530] JAVA 스터디  (0) 2021.05.30
[20210530] 자바 기초 코딩 실습  (0) 2021.05.30
[20210522] 자바 기초 코딩 실습  (0) 2021.05.22
[20210521] Java 스터디  (0) 2021.05.21
[20210516] JAVA 스터디  (0) 2021.05.16

댓글