자바에서 키보드로 입력받기 위한 여러가지 방법 중 하나인 Scanner
라는 클래스이다.
Scanner
클래스를 사용하고자 할때는 Scanner
클래스를 호출하고, 객체
를 생성해주어야 한다.
클래스 호출은 import
를 입력한 후, 그 뒤에 원하는 클래스가 속해있는 패키지를 써주면 된다.
import
: 호출 명령어import 패키지명.클래스명;
자바에서 쓰이는 대부분의 클래스는
lang
패키지가 아니라면import
를 통해 호출해주어야 한다.
Scanner
클래스는java.util
패키지에 위치해있다.import java.util.Scanner; // java.util 패키지에 있는 Scanner 클래스
객체 생성은 다음과 같은 과정을 거친다.
- new 연산자를 사용하여 객체를 생성하고 초기화.
- new 연산자는 생성된 객체의 주소를 변수에 저장.
- 객체를 통해 클래스에 접근 가능.
// 클래스명 객체명 = new 클래스명(매개변수); Scanner scn = new Scanner(System.in); // 객체 생성
Scanner
클래스가 위치한 java.util
패키지를 import
해주고, Scanner
객체를 생성해주었다.
new
는 새로운 인스턴스
를 heap
메모리에 할당하겠다는 의미이며, 매개변수
괄호안에 적힌 System.in
은 화면에서 입력을 받겠다는 의미이다.
객체(object)
vs인스턴스(instance)
※
객체
: 클래스의 타입으로 선언되었을때
※인스턴스
: 메모리에 할당되어 실제 사용될때
- 예시)
public class Animal{ } public class Main { public static void main(String[] args) { Animal cat, dog; //객체 cat = new Animal(); //Animal 이라는 클래스에 cat 이라는 인스턴스(메모리에 할당) dog = new Animal(); //Animal 이라는 클래스에 dog 이라는 인스턴스(메모리에 할당) } }
객체
와 인스턴스
는 서로 혼용되기도 하는 용어라는데, 아직은 이해하기 어려운 개념인 것 같다.
System.in
에게 키를 읽게 하고 원하는 타입으로 변환하여 리턴Scanner scn = new Scanner(System.in);
//이하 메서드들
scn.next(); //문자열 입력
String url = scn.next(); // 띄어쓰기 전까지만 받는다.
scn.nextLine(); //문자열 입력(₩n 포함)
scn.nextlnt(); //정수 입력
int num1 = scn.nextlnt();
그 외의 메소드는 아래 주소에서 확인할 수 있다.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Scanner.html