< 13일차 수업 >
1.Scanner
Scanner 클래스는 생성자로 전달되는 대상으로부터 데이터를 추출하는 기능을 제공한다. Scanner 클래스에 정의된 생성자 중 일부로 Scanne(File Source)/Scanner(StringSource)/Scanner(InputStream Source) 등이 있는데, 그 중에서도 Scanner(InputStream source) 생성자를 통해 키보드로부터 입력을 받을 수도 있다.
Scanner sc = new Scanner(System.in); → inputStream 생성자
1-1. Scanner 클래스 주요 메소드
Scanner 생성자로 대상을 전달하면, Scanner 클래스에 정의된 함수를 이용해 데이터를 추출할 수 있다.
그 일부는 다음과 같다.
int nextInt()
byte nextByte()
String nextLine()
double nextDouble()
boolean nextBoolean()
반환형에 주의해야 하는 이유는 반환형이 포함하는 데이터 표현 범위를 벗어날 시 에러가 발생할 수 있기때문이다.
+) 그리고 next() 함수도 스트링 데이터를 추출할 수 있다.
1-2. Scanner로 값 입력 받기
1번에서 설명한 Scanner의 inputStream 생성자를 가지고 변수에 할당하고 싶은 값을 사용자가 직접 입력하도록 할 수 있다.
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
위 코드를 보면, 키보드로부터 입력받기 위해 scanner 생성자를 만들고, scanner를 통해 입력받은 값을 int형으로 추출한 후 int 형 변수 num에 그 값을 저장하고 있다.
2. 배열
배열은 '자료형이 같은 둘 이상의 값'을 저장할 수 있는 연속된 메모리 공간을 의미한다. 기본형으로도 배열을 선언할 수 있고, 참조형으로도 배열을 선언할 수 있다. 자바에서는 배열도 인스턴스로 처리하고 있다. 따라서, 변수에 배열의 인스턴스 주소값을 저장한다. 참조형으로 배열을 선언하게 되면 인스턴스 참조 구조가 한층 더 늘어나게 되는 것이다. 다만, 참조형 변수를 배열로 선언하면 단지 참조형 인스턴스를 저장할 수 있는 메모리 공간이 선언된 것이지, 해당 인스턴스가 생성된 것은 아니라는 것을 알아야 한다.
class Report12{
public static void main(String[] args) {
//배열 선언
int[] arr = new int[3];
//각각의 공간에 값 할당
arr[0] = 7;
arr[1] = 8;
arr[2] = 9;
//arr와 arr[0]이 저장하고 있는 것의 차이
System.out.println(arr); //변수 arr에는 주소값이 저장됨
System.out.println(arr[0]); //변수 arr[0]에는 값이 저장됨
}
}
<결과>
[I@15db9742
7
즉, 배열 변수 자체도 주소값을 저장하고 있는 참조형 변수이며, 만약 참조형으로 배열을 구성했다면 각각의 배열 역시 인스턴스를 참조할 수 있다.
또한 배열은 생성과 동시에 특정 값을 지정해주지 않으면 모든 요소는 0 또는 null로 초기화된다.
(배열 내용은 내일 더 추가 예정)
+) 배열 관련 함수
length, length();
length --> 배열의 길이 반환
length() --> 문자열의 길이 반환
+) char 는 아스키코드로 바뀌어서 숫자처럼 처리될 수 있음. 그래서 어제 배운 것 처럼, String형뿐만 아니라 char 형도 조건식에 사용될 수 있다.
class Test{
public static void main(String[] args) {
char ch = 'A';
boolean tf = (ch == 'A')?true:false;
System.out.print(tf);
}
}
결과
true
→ 'A'를 가지고 조건/반복문에 조건식으로 사용하는 프로그램을 만들 수도 있음!
예를 들면 A / B / AB / O형 중 하나를 선택하여 해당하는 혈액형의 특성을 알아보는 프로그램을 짤 때 조건문으로 사용할 수도 있다.
'study_java > java_수강정리(~10.29)' 카테고리의 다른 글
[JAVA]15일차 (0) | 2020.05.31 |
---|---|
[JAVA]14일차 (1) | 2020.05.31 |
[JAVA]12일차 (0) | 2020.05.26 |
[JAVA]11일차 (0) | 2020.05.25 |
[JAVA]10일차 (0) | 2020.05.22 |