inflearn logo
강의

講義

知識共有

김영한の実践Java - 基本編

問題と解き方

이런식으로 해도 객체 지향 프로그램인가요?

1849

alscjf374644594

投稿した質問数 1

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
여기에 질문 내용을 남겨주세요.

package oop1.ex;

import java.util.Scanner;

public class Account {
    Scanner scanner = new Scanner(System.in);
    int balance;

    int deposit() {
        System.out.print("입금할 금액을 입력하세요.\n↳ ");
        int depositAmount = scanner.nextInt();
        balance += depositAmount;
        System.out.println("잔액: " + balance + "원");
        return balance;
    }
    int withdraw() {
        System.out.print("출금할 금액을 입력하세요.\n↳ ");
        int withdrawAmount = scanner.nextInt();
        if (balance > withdrawAmount) {
            balance -= withdrawAmount;
        } else {
            System.out.println("잔액이 부족합니다.");
        }
        System.out.println("잔액: " + balance + "원");
        return balance;
    }

    void checkAmount() {
        System.out.println("잔액: " + balance);
    }
}
package oop1.ex;

import java.util.Scanner;

public class AccountMain {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Account account = new Account();

        while (true) {
            System.out.println("-------------메뉴를 선택하세요-------------");
            System.out.print("1. 입금 | 2. 출금 | 3. 잔액 확인 | 4. 종료\n↳ ");
            int selectMenu = scanner.nextInt();

            switch (selectMenu) {
                case 1:
                    account.deposit();
                    break;
                case 2:
                    account.withdraw();
                    break;
                case 3:
                    account.checkAmount();
                    break;
                case 4:
                    System.out.println("프로그램을 종료합니다.");
                    return;
                default:
                    System.out.println("잘못된 입력입니다. 다시 입력해주세요");
                    break;
            }

        }
    }
}

제 나름 입력까지 하는 프로그램으로 만들었는데 인스턴스 안에 메서드에 print를 넣는게 좋은지 메인 클래스에 print를 넣는게 좋은지 잘 모르겠습니다

코드도 잘 짰는지 궁금합니다

java 객체지향

回答 2

2

David

안녕하세요. 코린이님, 공식 서포터즈 David입니다.

Account 클래스가 입력(Scanner)과 출력(Print)의 책임을 가지고 있습니다.

Account 클래스가 입력과 출력을 담당해야 하는가?부터 고민해 보시면 좋을 것 같습니다:)

감사합니다.

0

nhkimnamo3826

본문에 짜신 코드를 테스트하는 코드를 작성해보시면 본인의 코드가 잘 짰는지 / 개선의 여지가 있는지 판단을 하는데 도움이 될 것 같습니다.

 

여기서 테스트란 눈으로 결과를 확인하는 휴먼 테스트가 아닌 프로그램이 동작을 검증하는 코드의 형태인 것을 의미합니다.

질문있습니다

0

22

1

1번 문제 질문입니다.

0

27

1

음악플레이어 문제 중 코드질문

0

22

1

9장 상속 문제와 풀이 질문

0

33

1

강의 자료에 사소한 오타가 있습니다.

0

45

2

매서드 참조값 반환??

0

61

1

접근제어자 - 쇼핑카트 문제에서 상품출력 부분 메서드

0

64

1

자바 기본편 - .(dot)에 관한 질문입니다!

0

82

1

공부방법

0

71

2

상속관계에서 멤버 변수는 오버라이딩 되는 개념이 아닌가요?

0

78

1

static method 질문

0

61

1

캡슐화 문제풀이 ShoppingCart 요구사항에 문제가 있어보입니다. 피드백 주세요

0

92

1

Method1에서 Student 객체

0

70

1

3강 18. null 질문

0

64

1

this 와 super의 호출 순서는 부모-자식관계 떄문만인가요?

0

72

1

팩토리 메서드 패턴과 일반 생성자 사용의 장단점

0

94

1

문의

0

101

1

9장 상속 문제와 풀이 부분 궁금한게 있어서 질문드립니다

0

85

1

상속과 그에 따른 메모리 구조 질문

0

59

1

call메소드에서 멤버에 접근하는 방식을 이해 못 했습니다

0

71

1

수강기한

0

132

1

기본편 객체지향 프로그래밍에 대한 정의

0

82

1

섹션10 상속 메모리 구조 및 문제 관련 질문

0

84

1

추가 지식 학습

0

149

2