변수와 자료형, final, 커스텀 클래스

Dec 26, 2023
변수와 자료형, final, 커스텀 클래스
Contents
final
 

변수란?

데이터를 담아두는 곳으로 자료형에 맞는 공간을 미리 확보하는 개념으로 변수를 선언하지 않고 사용하게 되면 컴파일 오류가 발생한다.
변수의 구조는 다음과 같다
notion image
 
 
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 = '가';
 
notion image
 
하나의 자료형을 다른 자료형으로 변환하는 것을 “형변환” 이라 한다
형변환은 크게 두가지로 나누어지는데
 
  • 자동적인 형변환 : 컴퓨터에서 산술적인 연산을 하기 전에 피연산자의 타입을 통일하여야 한다.
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

Essential IT