본문 바로가기
지식공유/JAVA

JAVA 수업 복습 정리(9)_Scanner/java/프로그래밍

by 시간기억자 2024. 11. 5.
반응형
  • Scanner 클래스 : 입력스트림(키보드, 파일 등)을 이용하여 원하는 자료형의 값을 제공받을 수 있는 기능(메소드)이 작성된 클래스
    → Scanner 클래스로 객체를 생성해야만 객체로 클래스의 메소드를 호출할 수 있다.(이런 메소드를 갖다 쓰려면 객체를 만들어야 한다. 객체로 만들어주는 연산자가 new이다)
  • new Scanner(System.in) : 키보드 입력스트림을 사용하여 Scanner 객체 생성
  • new Scanner(System.in) 명령으로 키보드 입력스트림을 사용해 Scanner 객체 생성하고 생성된 객체를 참조변수에 저장
    → 참조변수에 저장된 객체를 사용하여 메소드 호출

  • Scanner.nextLine() : Scanner 객체의 입력스트림을 사용하여 입력값을 문자열로 변환하여 반환하는 메소드
    → 키보드로 입력된 값을 문자열로 변환하여 반환받아 변수에 저장
    → 키보드 입력값이  없는 경우 프로그램의 흐름(스레드)이 일시 중지
    → 키보드로 값을 입력한 후 엔터(Enter)를 눌러 프로그램의 흐름이 재실행되도록 처리

  • Scanner.nextInt() : Scanner 객체의 입력스트림을 사용하여 입력값을 정수값으로 변환하여 반환하는 메소드
    → 입력값이 정수값이 아닌 경우 예외(Exception) 발생 - 예외가 발생하면 프로그램 강제 종료

  • Scanner.close() : Scanner 객체가 사용한 입력스트림을 제거하는 메소드

  • System.out : 값(1Byte - 원시데이터)을 화면(콘솔)에 출력하기 위한 객체 - 출력스트림
  • System.in : 키보드로부터 입력된 값(1Byte - 원시데이터)을 얻어와 제공하기 위한 객체 - 입력스트림

  • System.in.read(); 문자값 하나만 읽어드림 => 문자값 하나만 읽는건 의미가 없기에 스캐너 클래스 사용
  • new java.util.Scanner(System.in);

    라이브러리 패키지 안에 있는 클래스를 쓰는거기 때문에 패키지를 명시해야함.
    단, java.lang 패키지 안에 있는건 상관없다.(상단에 import를 안해줘도 사용 가능)

 

//다른 패키지의 클래스를 소스파일에서 사용할 수 있도록 제공하는 키워드
import java.util.Scanner;

//System.out : 값(1Byte - 원시데이터)을 화면(콘솔)에 출력하기 위한 객체 - 출력스트림
//System.in : 키보드로부터 입력된 값(1Byte - 원시데이터)을 얻어와 제공하기 위한 객체 - 입력스트림

//키보드로 이름과 나이를 입력받아 화면에 출력하는 프로그램 작성
public class ScannerApp {
	public static void main(String[] args) {
		//System.in.read(); 문자값 하나만 읽어드림 => 문자값 하나만 읽는건 의미가 없기에 스캐너 클래스 사용
		//new java.util.Scanner(System.in);
		//라이브러리 패키지 안에 있는 클래스를 쓰는거기 때문에 패키지를 명시해야함.
		//단, java.lang 패키지 안에 있는건 상관없다.(상단에 import를 안해줘도 사용 가능)
		
		//Scanner 클래스 : 입력스트림(키보드, 파일 등)을 이용하여 원하는 자료형의 값을 
		//                 제공받을 수 있는 기능(메소드)이 작성된 클래스
		//=> Scanner 클래스로 객체를 생성해야만 객체로 클래스의 메소드를 호출할 수 있다.
		//(이런 메소드를 갖다 쓰려면 객체를 만들어야 한다. 객체로 만들어주는 연산자가 new이다)
		//new Scanner(System.in); : 키보드 입력스트림을 사용하여 Scanner 객체 생성
		//new Scanner(System.in) 명령으로 키보드 입력스트림을 사용해 Scanner 객체 생성하고
		//						 생성된 객체를 참조변수에 저장
		//=> 참조변수에 저장된 객체를 사용하여 메소드 호출
		Scanner scanner=new Scanner(System.in); //상단에 import 시켜서 패키지 명시할 필요 없음.
		//Scanner 객체를 참조변수에 저장 / Scanner 클래스는 파일로 저장되어있다.(java.util 패키지 안에 있음)
		//java.util.Scanner scanner=new java.util.Scanner(System.in);
		//=> 앞에 java.util을 붙이면 되는데, 매번 이렇게 쓰기 귀찮으니 문서 상단에 
		//import java.util.Scanner; 추가가 되어야 되는데, 이거는 스캐너 객체 쓰면 알아서 생성된다.
		
		//=> 참조변수에 저장된 객체를 사용하여 메소드 호출
		//Scanner.nexrLine() : Scanner 객체의 입력스트림을 사용하여 입력값을 문자열로 변환하여 
		//                     반환하는 메소드
		//=> 키보드로 입력된 값을 문자열로 변환하여 반환받아 변수에 저장
		//=> 키보드 입력값이  없는 경우 프로그램의 흐름(스레드)이 일시 중지
		//=> 키보드로 값을 입력한 후 엔터(Enter)를 눌러 프로그램의 흐름이 재실행되도록 처리
	    System.out.print("이름 입력 >> ");
		String name=scanner.nextLine(); //메소드를 호출하면, 메소드를 호출하여 발생하는 결과값을 반환한다.
		
		//Scanner.nexrInt() : Scanner 객체의 입력스트림을 사용하여 입력값을 정수값으로 변환하여
		//                     반환하는 메소드
		//=> 입력값이 정수값이 아닌 경우 예외(Exception) 발생 - 예외가 발생하면 프로그램 강제 종료
		System.out.print("나이 입력 >> ");
		
		//키보드로 입력된 정수 값을 정수값으로 변환하여 반환받아 변수에 저장
		int age=scanner.nextInt();
		
		System.out.println("[결과]"+name+"님의 나이는 "+age+"살입니다.");
		
		//Scanner.close(); : Scanner 객체가 사용한 입력스트림을 제거하는 메소드
		scanner.close();
		
	}
}
반응형

댓글