inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

김영한의 실전 자바 - 기본편

캡슐화

문제풀이 응용버전

해결된 질문

416

옙버디

작성한 질문수 23

0

안녕하세요. 문제풀이를 보다보니 접근제어자 강의가 접근제어자에 관한 강의인 것인지 아님 만든 클래스를 바탕으로 접근제어자를 통해서 불러 들이는 것에 관한 내용인지 헷갈리지만 계속 강의를 들으면서 이해하려고 노력 중입니다.

 

스크린샷 2024-01-03 11.37.26.png스크린샷 2024-01-03 11.37.58.png스크린샷 2024-01-03 11.41.10.png

회원의 닉네임과 주소를 받아 저장하는 형식의 로직과 주문할 음식 그리고 해당 음식의 가격과 수량을 받아서 출력문을 만들었습니다.

닉네임과 주소를 입력하지 않고 enter를 했을 때 다시 입력하라는 구문과 함께 재입력을 받게 하고 싶은데 아래의 결과처럼 나오게 됩니다. 어떤 부분에서 오류가 있는지 잘 모르겠습니다.
return; 도 사용해봤지만 동일하게 나오더군요.

java 객체지향

답변 1

0

나무늘보

안녕하세요. 옙버디님, 공식 서포터즈 코즈위버 입니다.

사용자가 입력을 잘못한 경우, 재 입력을 요청해야 하는데요. 이를 콘솔레벨에서 구현하기 위해선 반복문을 활용해야 합니다.

아래는 userNickName을 입력받는 부분까지 작성한 코드입니다.

do~while() 우선 do의 내용을 실행하고 이후 while () 에서 조건식을 검사하므로 콘솔에서 사용자 입력을 처리하기에 적절합니다. (그러나 콘솔 어플리케이션이 아닌 경우 while, for 문을 더 자주 사용합니다)

public class Order {

	private String userNickName;
	private String address;
	private String orderList;
	private final Scanner scanner = new Scanner(System.in);

	public void createUser() {
		do {
			System.out.print("사용자 이름을 입력하세요 :");
			userNickName = scanner.nextLine();
		} while (userNickName.isBlank());
	}
}

 

코드를 보면 화면에 사용자 이름을 입력하라는 문구를 출력하고,

scanner.nextLine(); 결과값을 userNickName 에 담습니다.

그리고 이 userNickName()이 공백인지를 확인하기 위해 isBlank() 메서드를 사용하였습니다.

.isBlank() 메서드는 String 에서 제공하는 메서드로 문자가 전부 공백인지 여부를 점검하여 결과값은 boolean 으로 반환합니다. 그래서 while() 문의 조건식으로 사용할 수 있지요. isBlank() 대신 userNickName.equals("")를 사용하여 비교하여도 괜찮습니다.

 

나머지 부분도 위를 참조하여 마무리 하실 수 있을거에요.

감사합니다.

1

옙버디

필드에 final final Scanner scanner = new Scanner(System.in);을 쓰는 이유는 왜일까요

1

나무늘보

안녕하세요 옙버디님!

Scanner는 Order 클래스의 모든 메서드에서 사용하고 있습니다. 이럴 경우 메서드를 호출할 때마다 Scanner 를 새로 생성하는 것보단 멤버 변수로 만들어 한 번만 생성하는 것이 효율적일 수 있습니다.

 

final 키워드는 변경불가 선언으로, scanner 를 메서드 내부에서 다른 Scanner 인스턴스로 덮어씌울 수 없음을 의미합니다.

감사합니다.

진짜화면이랑달라서못해먹겟어요먹겟어요

0

21

1

강의 화면이 안나와요

0

73

1

문제2번

0

65

1

static 변수를 호출할때 인스턴스변수 호출하듯이 호출해도 되나요?

0

73

1

47번 리턴 관련 질문

0

62

1

문제2번

0

150

2

질문있습니다

0

85

1

1번 문제 질문입니다.

0

76

1

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

0

68

1

9장 상속 문제와 풀이 질문

0

80

1

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

0

96

2

매서드 참조값 반환??

0

111

1

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

0

113

1

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

0

120

1

공부방법

0

143

2

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

0

119

1

static method 질문

0

98

1

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

0

126

1

Method1에서 Student 객체

0

107

1

3강 18. null 질문

0

99

1

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

0

111

1

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

0

138

1

문의

0

137

1

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

0

123

1