변수 선언 및 사용
- 변수를 선언하고 값을 대입하고 출력하는 프로그램
- 패키지명 : chapter2, 클래스명: Variable1
package chapter2;
public class Variable1 {
public static void main(String[] args) {
int age;
age = 25;
System.out.println(age);
}
}
변수 초기화하기
- 위의 코드는 변수명을 선언하고 변수에 값을 대입하는 방식이였다. 하지만 아래와 같이 변수 선언과 동시에 값을 대입할 수 있다.
package chapter2;
public class Variable2 {
public static void main(String[] args) {
int level = 10; // level 변수 선언과 동시에 값을 대입(초기화)
System.out.println(level);
}
}
변수 명명에 대한 규칙이 있다.
- 변수 이름은 영문자(대문자, 소문자)나 숫자를 사용할 수 있고, 특수 문자 중에는 $, _ 만 사용할 수 있다,
- 변수 이름은 숫자로 시작할 수 없다.
- 자바에서 이미 사용 중인 예약어는 사용할 수 없다.
자료형
- 자바에서 제공하는 자료형은 기본 자료형과 참조 자료형이 있다.
- 기본 자료형은 자바 라이브러리에서 기본으로 제공하며, 얼마만큼의 메모리를 어떻게 사용할 것인지가 이미 정해져 있다.
- 기본 자료형의 종류: 정수형(byte, short, int, long), 문자형(char), 실수형(float, double), 논리형(boolean)
- 기본 자료형들에도 각 자료형이 사용할 공간의 크기, 즉 바이트 수가 정해져 있다.

문자 자료형
여기서 문자를 변수에 대입하면 문자 그대로 저장되는 것이 아니라 그 문자에 해당하는 정수 값(아스키 코드 값)이 저장된다.
- 변수에 저장된 문자(ch1)를 int형으로 변환하여 출력하면 그 문자에 해당하는 정수 값을 알 수 있다.
- 또한 ch2처럼 문자형 변수에 정수 값을 대입하면 그 정수 값에 해당하는 문자가 출력된다.
- ch3와 같이 정수형 변수를 문자형으로 변환하여 출력하면 그 정수 값에 해당하는 문자를 출력한다.
package chapter2;
public class CharacterEx1 {
public static void main(String[] args) {
char ch1 = 'A';
System.out.println(ch1); //문자 출력
System.out.println((int)ch1); //문자에 해당하는 정수값(아스키 코드 값) 출력
char ch2 = 66; //정수 값 대입
System.out.println(ch2); //정수 값에 해당하는 문자 출력
int ch3 = 67;
System.out.println(ch3); //문자 정수 값 출력
System.out.println((char)ch3); //정수 값에 해당하는 문자 출력
}
}
- 문자형 변수와 다른 정수 자료형과의 차이점은 char형은 음수 값을 표현할 수 없다는 것이다.
package chapter2;
public class CharacterEx3 {
public static void main(String[] args) {
int a = 65;
int b = -66;
char a2 = 65;
//char b2 = -66; -> 문자형 변수(char형)에 음수를 넣으면 오류가 발생한다.
System.out.println((char)a);
System.out.println((char)b);
System.out.println(a2);
}
}
실수 자료형
- 실수 자료형은 float형과 double형이 있는데, 자바에서 실수는 double형을 기본으로 사용한다.
- float형(4바이트)에 비해 double형(8바이트)이 더 정밀하게 실수를 표현할 수 있기 때문이다.
package chapter2;
public class DoubleEx1 {
public static void main(String[] args) {
double dnum = 3.14; //float형(4바이트)에 비해 double형(8바이트)이 더 정밀하게 실수를 표현한다.
float fnum = 3.14F;
System.out.println(dnum);
System.out.println(fnum);
}
}
논리 자료형
- 논리 자료형은 어떤 변수의 참, 거짓의 값을 나타내는 데 사용한다. 종류는 boolean형 한 가지
package chapter2;
public class BooleanEx {
public static void main(String[] args) {
boolean isMarried = true; //boolean 변수를 선언하고 초기화
System.out.println(isMarried);
}
}
자료형 없이 변수 선언하기 (var)
- 자바 10부터는 자료형을 쓰지 않고도 변수를 사용할 수 있다. 이를 지역 변수 자료형 추론이라고 한다.
- 변수에 대입되는 자료를 보고 컴파일러가 추측하는 방식이다.
- 주의할 점은 컴파일러가 한번 추측하여 자료형을 결정했다면, 그 자료형 변수는 다른 자료형으로 사용할 수 없다는 것이다. 또한 이 방법은 지역 변수만 가능하다.
- 지역 변수는 프로그램의 { }내에서 사용할 수 있는 변수를 뜻한다.
package chapter2;
public class TypeInferrence {
public static void main(String[] args) {
var i = 10; //int i = 10으로 컴파일됨.
var j = 10.0; //double j = 10.0으로 컴파일됨.
var str = "hello"; //String str = "hello"로 컴파일됨
System.out.println(i);
System.out.println(j);
System.out.println(str);
str = "test"; // 다른 문자열은 대입 가능
//str = 3; -> str 변수는 String형으로 먼저 사용되었기 때문에 정수 값을 넣을 수 없다.
System.out.println(str);
}
}
// 하지만 이러한 자료형 추론은 실무에서는 거의 쓰이지 않을 것으로 예상된다. 코드 이해에 혼동을 줄 수 있기 때문이다.
상수 선언하기
- 프로그램에서는 변수가 아닌 변하지 않는 수가 필요하기도 하다. 이를 위해 항상 변하지 않는 값인 상수(Constant)를 사용하는데 final 예약어를 사용해 선언한다.
- 상수는 한번 선언하고 나서 뒤에 값을 변경하려고 하면 오류가 발생한다.
package chapter2;
public class Constant {
public static void main(String[] args) {
final int MAX_NUM = 100; //선언과 동시에 초기화
final int MIN_NUM;
MIN_NUM = 0; //사용하기 전에 초기화. 초기화하지 않으면 오류 발생
System.out.println(MAX_NUM);
System.out.println(MIN_NUM);
//MAX_NUM = 1000; -> 오류 발생. 상수는 값을 변경할 수 없음.
}
}
형 변환
묵시적 형 변환
- 바이트 크기가 작은 자료형에서 큰 자료형으로 대입하는 경우이다.
package chapter2;
public class ImplicitConversion {
public static void main(String[] args) {
byte bNum = 10;
int iNum = bNum; //byte형 값이 int형 변수로 대입됨
System.out.println(bNum);
System.out.println(iNum);
int iNum2 = 20;
float fNum = iNum2; //int형 값이 float형 변수로 대입됨.
System.out.println(iNum);
System.out.println(fNum);
double dNum;
dNum = fNum + iNum;
System.out.println(dNum);
}
}
명시적 형 변환
- 바이트 크기가 큰 자료형에서 작은 자료형으로 대입하는 경우이다.
- 강제로 형을 바꾸려면 바꿀 형을 괄호를 써서 명시해야 함
package chapter2;
public class ExplicitConversion {
public static void main(String[] args) {
double dNum1 = 1.2;
float fNum2 = 0.9f;
int iNum3 = (int)dNum1 + (int)fNum2; //두 실수가 각각 형 변환되어 더해짐
int iNum4 = (int)(dNum1 + fNum2); //두 실수의 합이 먼저 계산되고 형 변환됨
System.out.println(iNum3);
System.out.println(iNum4);
}
}'Data_Analysis_Track_33 > Java' 카테고리의 다른 글
| Java_주의할 점 필기자료(연산자 ~ 참조 타입) (0) | 2023.11.30 |
|---|---|
| Java_Java 환경 설정 (0) | 2023.11.29 |