<변수선언>
var month;
☞ 변수(variable)의 이름표를 만든다 + 변수 이름은 month 이다.
var month; = 'August';
☞ 변수를 '비어있는 컨테이너'로 생각해주고,
비어있는 컨테이너의 공간에 어떤 내용물을 넣는다고 상상하라.
그리고 내용물(=데이터)로 'August'를 넣어준다는 것을 '='(대입연산자)를 사용해서 표현하라.
※ 앞으로 '='(대입연산자) 새로운 형태의 무언가가 나오더라도 앞쪽에 나오는 것은 공간으로 보면 쉽다.
다시 정리하면
var month = 'August';
☞ 이름표를 만든다 + 비어있는 컨테이너의 이름은 month다 + 그 안에 넣는다 + Augus라는 데이터를
이렇게 해주면 된다.
이것을 일반적인 형식으로 표현하면 아래와 같다.
var month = 'August';
☞ 데이터타입 변수 = 데이터;
ex) int a = 1;
String b = "Hello";
■ 데이터 타입의 필요와 쓰임
class Main {
public static void main(String[] args) {
x = 9;
System.out.println(x);
}
}
실행될까? 안된다.
왜? 변수선언을 안 했기때문이다.
int x = 9; 라고 9라는 정수의 데이터타입인 int를 써줘야 변수가 선언되는 것이다.
물론 int x=9; 라고 선언을 하고 나면
x=4;
x=11000000000;
이렇게 x라는 공간에 다른 정수값을 넣어주는 것은 가능하다.
데이터타입은 변수라는 저장공간이 어떤 종류이냐?를 표현해준 것이다.
데이터타입 자리에 int가 오면, 저장공간(변수)에 정수를 담을 수 있다.
데이터타입 자리에 String이 오면, 저장공간(변수)에 문자열을 담을 수 있다.
정수 | int | 예시 | int i = 1; |
short | short s= 2; | ||
long | long l= 20L; | ||
실수 | float | float x=3.14F; | |
double | double y=3.14; | ||
문자 | char | chart c ='C'; | |
문자열 | String | String s="string"; | |
논리 | boolean | boolean b=true; |
그럼 아래와 같이 생긴 경우는?
arr[x] = scanner.nextInt();
System.out.print(arr[x]);
뭔가 어렵게 생겼지만 본질은 같다.
첫째줄 arr[x]는 저장공간
둘째줄 arr[x]는 값(데이터)
이렇게 생긴 걸 배열이라고 한다.
배열도 변수선언( 데이터타입 변수 = 데이터 )과 비슷하게 만들어졌다.
<배열 선언>
ⓐ 데이터타입[] 배열명 = new 데이터타입[길이];
ⓑ 데이터타입 배열명[] = {데이터, 데이터, ..., 데이터};
ⓒ 데이터타입 배열명[];
※ ⓐ에서는 new를 썼고 ⓑ에서는 중괄호{}를 썼는데, 두 경우 모두 힙메모리영역에 배열의 칸수를 지정받는다.
그리고 배열명은 스택에서 메모리를 할당받게 된다. 또한 그 안에는 힙메모리영역에 배열의 시작주소가 들어있다.
※ ⓐ에서 사용한 new와 ⓑ에서 사용한 중괄호{}의 차이?
중괄호는 초기부터 배열안에 데이터가 저장되는 것, new만 쓰면 초기값을 가지고 있는 것.
int [] arr = new int[3]; 다음에 arr[1]=2;이런 게 없으면 System.out.print(arr[3]);하면 초기값인 0이 출력된다.
위의 ⓐ ⓑ ⓒ ex)
int[] arr = new int[100];
int arr[] = {3, 1, 4, ... ,5, 6, 2}
int arr[]
String[] arr = new String[10];
String arr[] = {오렌지, 멜론, ... ,포도, 수박, 레몬}
String arr[]
'IT관련 > JAVA_정리 노트' 카테고리의 다른 글
클래스선언 (0) | 2020.04.23 |
---|---|
메서드(method) 선언 (0) | 2020.04.22 |
객체 기초 (0) | 2020.04.16 |
형변환 기초 (0) | 2020.04.15 |
print println pritf 차이점 (0) | 2020.04.15 |
댓글