OneDev
[JAVA] 1.변수(Variable) : 선언, 초기화, 자료형, 형변환 본문
1. 변수(Variablr)란?
변수란, 하나의 값을 저장할 수 있는 메모리 공간
2. 변수의 선언
3. 변수이름 명명규칙(naming convention)
작성 규칙 | 예 |
첫 번쨰 글자는 문자이거나 '$', '_' 여야 하고 숫자로 시작할 수 없다 | ● 가능한 예시 : price, $price, _name ● 불가능한 예시 : 1var, @num |
영어 대소문자가 구분된다 | firstname 과 firstName 은 다른 변수 |
첫 문자는 영어 소문자로 시작하되, 다른 단어가 붙을 경우 첫자를 대문자로 한다(관례) | maxSpeed, firstName, carBodyColor |
문자 수(길이)에 제한은 없다 | |
자바 예약어는 사용할 수 없다 | (예시) true 는 예약어라 사용할 수 없지만 True는 사용 가능하다 |
이 외에 필수적인 것은 아니지만 자바 프로그래머들에게 권장하는 규칙들은 다음과 같다.
1. 클래스의 이름의 첫 글자는 항상 대문자로 한다.
- 변수와 메소드 이름의 첫 글자는 항상 소문자로 한다
2. 여러 단어로 이루어진 이름은 단어의 첫 글자를 대문자로 한다상수의 이름은 모두 대문자로한다.
- lastIndexOf, StringBuffer
3. 여러 단어로 이루어진 경우 '_' 로 구분한다.
- PI, MAX_NUMBER
4. 변수의 사용(초기화)
● 변수 선언과 초기화(Initialize)
int score; // 변수 선언
score = 90; // 값 저장(초기화)
- 변수를 사용하기 위해서는 먼저 변수를 선언해주어야 한다.
- 변수를 선언한 이후부터는 변수를 사용할 수 있으나, 그 전에 변수를 초기화(initialize) 해주어야 한다.
메모리는 여러 프로그램이 공유하는 자원이므로, 다른 프로그램에 의해 저장된 쓰레기값(garbage value)이 남아있을 수 있기 때문이다.
- 변수에 값을 저장할 때는 대입연산자 '=' 를 이용한다.
● 선언과 동시에 초기화할 수도 있다
- 변수의 종류에 따라 초기화를 생략하는 경우도 있지만, 변수는 사용되기 전에 적절한 값으로 초기화하는 것이 좋다
- 지역변수는 사용되기 전에 반드시 초기화를 해야하지만, 클래스변수와 인스턴스변수는 초기화를 생략할 수 있다
int score = 90;
● 변수값 읽기 : 변수는 초기화가 되어야 읽을 수 있다.
※ 잘못된 코드 예시 ※
int value; // 변수 value 선언(초기화 X)
int result = value + 10;
※ 위의 코드를 맞게 수정해보자 ※
int value = 30; // 변수 value 가 30으로 초기화됨
int result = value 10; // 변수 vlaue 값을 읽고 10을 더한 결과값(40)을 변수 result에 저장
● 변수의 사용 범위 : 변수는 중괄호 블록 { } 내에서 선언되고 사용
5. 리터럴(literal)
리터럴이란? -> <"상수" 의 다른 이름 > 정도로 알고있으면 될 듯 하다.
12, 123, 3.14, "A" 와 같은 값들을 "상수"와 구분하기 위해 붙인 다른 이름이다.
프로그래밍에서는 "상수" 를 '값을 한 번 저장하면 변경할 수 없는 저장공간'으로 정의하였기 때문에, 이 데이터들을 상수와 구분하기 위해 붙인 이름이 "리터럴"이다.
- 소스 코드 내에서 직접 입력된 변수의 초기값(값 자체를 의미) ↔상수(constant) = 값을 한번만 저장할 수 있는 공간
- 종류 : 정수, 실수, 문자, 문자열, 논리
종류 | 예시 |
정수리터럴 | 10, -10, 10L, 0x6A |
실수리터럴 | 12.5, 12.5f, 0.13E2 |
문자리터럴 | 'A', '1", '가' |
문자열리터럴 | "자바", "java" |
논리리터럴 | True, False |
※ 리터럴이 있는데 굳이 상수가 필요한 이유?
-> 상수는 리터럴에 "의미있는 이름"을 붙여서 코드의 이해와 수정을 쉽게 만든다.
6. 데이터 타입
● 기본형(primitive type)
- 정수, 실수, 문자, 논리 리터럴을 직접 저장하는 타입
- 기본형에는 모두 8개의 타입(자료형)이 있으며 크게 논리형/문자형/정수형/실수형 으로 구분된다.
- 메모리의 최소 기억 단위인 bit 가 모여 byte 형
- 문자형인 char 형은 문자를 내부적으로 정수(유니코드)로 저장하기 때문에 정수형과 별반 다르지 않으며, 정수형 또는 실수형과 연산도 가능하다.
- 반면 boolean 형은 다른 기본형과 연산이 불가능하다.
- 정수형 데이터 중에서는 int형이 기본 자료형(default data type)이며, 실수형 중에서는 double 형이 기본 자료형이다.
7. 타입 변환(형변환)
● 데이터 타입을 다른 타입으로 변환하는 것
(예) byte ↔ int, int ↔ double
● 종류
① 자동(묵시적) 타입 변환 : Promotion
-> 작은 데이터 타입은 큰 데이터 타입으로 자동 타입 변환 가능
※ 타입들의 대소관계 비교 :
② 강제(명시적) 타입 변환 : Casting
● 큰 타입을 작은 타입 단위로 쪼개기
● 끝의 한 부분만 작은 타입으로 강제적 변환
(예) int 를 byte에 담기
③ 연산식에서 자동 타입 변환
● 연산은 같은 타입의 피연산자간에만 수행
- 서로 다른 타입의 피연산자는 같은 타입으로 변환
- 두 피연산자 중 크기가 같은 타입으로 자동 변환
(Ex) int type으로 계산 결과를 얻고 싶다면?
☞ double type 변수를 먼저 int로 변환 후 계산
'Language > JAVA' 카테고리의 다른 글
[JAVA] Object 클래스 (0) | 2024.05.06 |
---|---|
[JAVA] java.lang 패키지 (0) | 2024.04.29 |
[JAVA] 입력받기 (Scanner vs BufferedReader) (0) | 2023.10.03 |
[JAVA] 배열 출력하기 (반복문 / Arrays.toString()) (0) | 2023.06.03 |
[JAVA] 2.연산자(Java Operator) (0) | 2023.01.23 |