Contents
final변수란?
데이터를 담아두는 곳으로 자료형에 맞는 공간을 미리 확보하는 개념으로 변수를 선언하지 않고 사용하게 되면 컴파일 오류가 발생한다.
변수의 구조는 다음과 같다

package ex01;
/**
* 변수 작성법
* 1. 카멜 표기법 사용
* 2. 숫자를 먼저 사용하지 않는다.
* 3. 특수문자는 사용하지 않는다.
*/
public class IdenEx01 {
public static void main(String[] args) {
// int public= 1;
int user_money; // 절대 사용안함
int userMoney; // 낙타 표기법
// int abc#;
int method;
double abc$$; // 특수문자 사용하지 말자
// int 1stMoney;
}
}
자바에서 주로 사용할 수 있는 다섯 가지 변수 유형
- int : 정수 값을 저장하는 변수로, 21억까지 저장할 수 있다. (4바이트)
- double : 실수 값을 저장하는 변수로, 21억까지 저장할 수 있다. (8바이트)
- long : 큰 정수 값을 저장하는 변수로, 200억까지 저장할 수 있다. (8바이트)
- boolean : 참 또는 거짓 값을 저장하는 변수로, 1비트로 표현된다. false는 0, true는 1.
- char : 문자를 저장하는 변수로, '가'와 같은 문자를 저장할 수 있다.
int n1 = 1; // 21억까지 (4byte)
double d1 = 1.5; // 21억까지 (8byte)
long big1 = 20000000000l; // 경까지 (8byte)
boolean b1 = true; // true, false (1 bit) false는 0 true는 1 사용
char c1 = '가';

하나의 자료형을 다른 자료형으로 변환하는 것을 “형변환” 이라 한다
형변환은 크게 두가지로 나누어지는데
- 자동적인 형변환 : 컴퓨터에서 산술적인 연산을 하기 전에 피연산자의 타입을 통일하여야 한다.
double sum = 1.3 + 12; // 1.3 + 12.0으로 변환된다.
- 강제적인 형변환 : 연산자를 사용해 강제적으로 형변환 하는것
package ex02;
public class CastEx01 {
public static void main(String[] args) {
int n1 = 1; //4칸
double d1 = 1.5; //8칸
n1 = 2;
d1 = n1; // 묵시적 형변환, 8칸에 4칸을 넣음
System.out.println(d1);
n1 = (int) d1; //다운캐스팅, 작은 자료형을 넣기 위해 double을 다운시켜 넣는다.
System.out.println(n1);
}
}
실수형 변수를 정수형 변수에 저장하면 소수점 이하가 없어진다.
final
자료형에 값을 한번만 설정할 수 있는 강제 키워드이다.
final은 최초의 값이 할당되면 값 변경이 불가능하다
package ex02;
public class CastEx01 {
public static void main(String[] args) {
int num = 1; //변수
final int sum = 10; //상수(변하지 않는 값) Read only
num = 2;
// sum = 20;
}
}
커스텀 클래스
package ex04;
class Person1{
static int age = 20; // static을 먼저 찾는다
char gender = '여';
}
public class MemEx01 {
public static void hello(String[] args) {
System.out.println(Person1.age);
}
}
실행 결과
D:\tools\jdk-21.0.1\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.3\lib\idea_rt.jar=52288:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.3\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath D:\workspace\java_lec\study\out\production\study ex04.MemEx01
Error: Main method not found in class ex04.MemEx01, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
Process finished with exit code 1
main이 있어야 한다
package ex04;
class Person1{
static int age = 20; // static을 먼저 찾는다
char gender = '여';
}
public class MemEx01 {
public void main(String[] args) {
System.out.println(Person1.age);
}
}
실행 결과
D:\tools\jdk-21.0.1\bin\java.exe -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:52333,suspend=y,server=n -javaagent:C:\Users\G\AppData\Local\JetBrains\IdeaIC2023.3\captureAgent\debugger-agent.jar -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath "D:\workspace\java_lec\study\out\production\study;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.3\lib\idea_rt.jar" ex04.MemEx01
Connected to the target VM, address: '127.0.0.1:52333', transport: 'socket'
Error: Main method is not static in class ex04.MemEx01, please define the main method as:
public static void main(String[] args)
Disconnected from the target VM, address: '127.0.0.1:52333', transport: 'socket'
Process finished with exit code 1
main에 static이 있어야 한다
Share article