Java에서 입력을 받기 위해 스캐너 개체가 필요한 이유

Yash Bhutoria

출력을 인쇄하려면 System.out 스트림을 사용하고 입력을 받으려면 Scanner 개체의 Constructor에서 System.in을 전달한 다음 해당 개체 만 사용해야합니다.

왜 그래야만하지 ? System.in.nextInt () 또는 이와 유사한 직접 메서드가없는 이유는 무엇입니까?

고스트 캣

System.in은 단순히 InputStream입니다. 수년 전에 설계된 꽤 일반적인 인터페이스입니다. 이 측면을 변경하면 많은 기존 코드가 손상됩니다. 따라서 System.in 유형을 변경하는 것은 불가능합니다.

반면에 스캐너 메서드를 스트림에 추가하면 기존 클래스가 부풀려집니다. 단일 책임 원칙 또는 우려 사항 분리와 같은 개념을 생각해보십시오.

좋은 객체 지향 디자인은 하나의 책임 을 가진 소규모 클래스를 갖는 입니다. 2 개도 5 개도 10 개도 아닙니다.

그러나 나는 당신이 특정한 요점을 가지고 있다고 생각합니다. 그리고 만약 자바가 오늘 재 작성된다면, 그 입력 스트림은 결국 더 편리해질 것입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

위치 서비스를 개선하기 위해 Wi-Fi가 필요한 이유는 무엇입니까?

분류에서Dev

기본 클래스에서 실제 값에 액세스하기 위해 캐스트가 필요한 이유는 무엇입니까?

분류에서Dev

크기없이 선언 된 벡터가 cin으로 입력을 받아들이 기 위해 push_back이 필요한 이유는 무엇입니까?

분류에서Dev

부트 스트랩 버튼을 전체 너비로 만들기 위해 Bootstrap btn에 width : 100 %가 필요한 이유는 무엇입니까? 표시하지 않음 : 블록; 기본적으로 버튼을 전체 너비로 만들까요?

분류에서Dev

어레이를위한 스캐너 입력 필요

분류에서Dev

자체 호스팅을 위해 웹 API 또는 WCF 서비스가 필요한 이유는 무엇입니까?

분류에서Dev

삼항 연산자에서 정수 리터럴을 축약하기 위해 명시 적 캐스팅이 필요한 이유는 무엇입니까?

분류에서Dev

추가 렌더링을 방지하기 위해이 스피커 구성 요소에 React.memo가 필요한 이유를 이해할 수 없습니다.

분류에서Dev

www-data가 디렉토리에 업로드 된 파일을 쓰기 위해 실행 액세스 권한이 필요한 이유는 무엇입니까?

분류에서Dev

Unity의 잡 시스템에서 반환 값을 얻기 위해 NativeArray가 필요한 이유는 무엇입니까?

분류에서Dev

이를 위해 캔버스 요소에서 너비가 400px, 높이가 200px로 필요한 이유는 무엇입니까?

분류에서Dev

문장을 갖기 위해 전처리기에 중괄호가 필요한 이유는 무엇입니까?

분류에서Dev

요청을 받기 위해 인터페이스 추가

분류에서Dev

요청을 받기 위해 인터페이스 추가

분류에서Dev

Firefox에 Netflix 동영상을 표시하기 위해 libavcodec-extra가 필요한 이유는 무엇입니까?

분류에서Dev

값을 할당 한 후 긴 숫자를 매개 변수로 주면 오류가 발생하는데 스캐너에서 입력을 받으면 결과가 표시되는 이유는 무엇입니까?

분류에서Dev

이유는 무엇 DB에 새로운 개체를 삽입하기 위해 노력하고있어 오류를 받고 있어요?

분류에서Dev

마지막 배열 요소에 액세스하기 위해 비트 현명한 연산자가 필요한 이유는 무엇입니까?

분류에서Dev

데이터베이스에 입력하기 위해 특별한주의가 필요한 기호는 무엇입니까?

분류에서Dev

모듈을 스코프에 가져 오기 위해 mod와 use가 모두 필요한 이유는 무엇입니까?

분류에서Dev

Java- 스캐너가 입력을받지 않습니다.

분류에서Dev

Jest가 비동기 코드를 테스트하기 위해 Babel이 필요한 이유는 무엇입니까?

분류에서Dev

Typescript에서 유형 캐스트가 필요한 이유는 무엇입니까?

분류에서Dev

이 스위치 대체 기능에 강력한 유형을 추가하는 방법은 무엇입니까?

분류에서Dev

"ls"를 실행하기 위해 별도의 프로세스가 필요한 이유는 무엇입니까?

분류에서Dev

새로운 프로세스를 생성하기 위해 포크가 필요한 이유는 무엇입니까?

분류에서Dev

C ++에서 참조로 객체를 전달하기 위해 기본 생성자가 필요한 이유는 무엇입니까?

분류에서Dev

사용자 입력을 받아 고유 한 개체 만들기

분류에서Dev

마우스 클릭 시뮬레이션을 위해 문자열에서 입력 받기

Related 관련 기사

  1. 1

    위치 서비스를 개선하기 위해 Wi-Fi가 필요한 이유는 무엇입니까?

  2. 2

    기본 클래스에서 실제 값에 액세스하기 위해 캐스트가 필요한 이유는 무엇입니까?

  3. 3

    크기없이 선언 된 벡터가 cin으로 입력을 받아들이 기 위해 push_back이 필요한 이유는 무엇입니까?

  4. 4

    부트 스트랩 버튼을 전체 너비로 만들기 위해 Bootstrap btn에 width : 100 %가 필요한 이유는 무엇입니까? 표시하지 않음 : 블록; 기본적으로 버튼을 전체 너비로 만들까요?

  5. 5

    어레이를위한 스캐너 입력 필요

  6. 6

    자체 호스팅을 위해 웹 API 또는 WCF 서비스가 필요한 이유는 무엇입니까?

  7. 7

    삼항 연산자에서 정수 리터럴을 축약하기 위해 명시 적 캐스팅이 필요한 이유는 무엇입니까?

  8. 8

    추가 렌더링을 방지하기 위해이 스피커 구성 요소에 React.memo가 필요한 이유를 이해할 수 없습니다.

  9. 9

    www-data가 디렉토리에 업로드 된 파일을 쓰기 위해 실행 액세스 권한이 필요한 이유는 무엇입니까?

  10. 10

    Unity의 잡 시스템에서 반환 값을 얻기 위해 NativeArray가 필요한 이유는 무엇입니까?

  11. 11

    이를 위해 캔버스 요소에서 너비가 400px, 높이가 200px로 필요한 이유는 무엇입니까?

  12. 12

    문장을 갖기 위해 전처리기에 중괄호가 필요한 이유는 무엇입니까?

  13. 13

    요청을 받기 위해 인터페이스 추가

  14. 14

    요청을 받기 위해 인터페이스 추가

  15. 15

    Firefox에 Netflix 동영상을 표시하기 위해 libavcodec-extra가 필요한 이유는 무엇입니까?

  16. 16

    값을 할당 한 후 긴 숫자를 매개 변수로 주면 오류가 발생하는데 스캐너에서 입력을 받으면 결과가 표시되는 이유는 무엇입니까?

  17. 17

    이유는 무엇 DB에 새로운 개체를 삽입하기 위해 노력하고있어 오류를 받고 있어요?

  18. 18

    마지막 배열 요소에 액세스하기 위해 비트 현명한 연산자가 필요한 이유는 무엇입니까?

  19. 19

    데이터베이스에 입력하기 위해 특별한주의가 필요한 기호는 무엇입니까?

  20. 20

    모듈을 스코프에 가져 오기 위해 mod와 use가 모두 필요한 이유는 무엇입니까?

  21. 21

    Java- 스캐너가 입력을받지 않습니다.

  22. 22

    Jest가 비동기 코드를 테스트하기 위해 Babel이 필요한 이유는 무엇입니까?

  23. 23

    Typescript에서 유형 캐스트가 필요한 이유는 무엇입니까?

  24. 24

    이 스위치 대체 기능에 강력한 유형을 추가하는 방법은 무엇입니까?

  25. 25

    "ls"를 실행하기 위해 별도의 프로세스가 필요한 이유는 무엇입니까?

  26. 26

    새로운 프로세스를 생성하기 위해 포크가 필요한 이유는 무엇입니까?

  27. 27

    C ++에서 참조로 객체를 전달하기 위해 기본 생성자가 필요한 이유는 무엇입니까?

  28. 28

    사용자 입력을 받아 고유 한 개체 만들기

  29. 29

    마우스 클릭 시뮬레이션을 위해 문자열에서 입력 받기

뜨겁다태그

보관