본문 바로가기
study_java/java_수강정리(~10.29)

[JAVA]13일차

by developer_j 2020. 5. 27.
728x90
반응형

< 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형 중 하나를 선택하여 해당하는 혈액형의 특성을 알아보는 프로그램을 짤 때 조건문으로 사용할 수도 있다.

728x90
반응형

'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