상수(constant)
1. 상수(constant)란 뭘까?
상수는 "변하지 않는 수", 반드시 값이 초기화 되어야 하고 한번 초기화 되면 변경할 수 없게 하는 메모리 공간을 의미합니다. 이 특징 때문에 원주율 3.14, 1년의 12개월, 최대 사용 가능자의 수 등을 표현할 때 사용할 수 있습니다. 자바에서 상수를 선언하는 방법은 final 이라는 예약어를 사용합니다.
예시 코드
public class ConstantTest {
public static void main(String[] args) {
final int MAX_NUM = 10;
final int MIN_NUM;
MIN_NUM = 0;
System.out.println(MAX_NUM);
System.out.println(MIN_NUM);
// MAX_NUM = 100;
}
}
상수를 사용하면 "코드의 의미가 명확"해지고, 나중에 값을 변경해야 할 경우에도 쉽게 대응할 수 있습니다.
package basic.ch02;
/*
* 컴파일 시점과 --> .class 파일을 만들어 내는 과정 (javac 명령어 동작)
* 런타임 시점 --> Ctrl + F11 프로그램 실행 ~~~~~~ 실행 종료 까지
*
* JAVA 명령어는 프로그램을 실행 시키는 명령어 이다.
* javac 명령어는? 번역하는 과정이다.
*
*자바 언어로 코드를 작성하고 있어요
*JDK 도구를 설치 해야 자바 프로그래밍이 가능 -> 도구들이 존재
*JDI --> JRE(자바 프로그램 실행 환경이라고 한다.) (Java Runtime Environment)
*JRE --> JVM(자바 가상 머신) (Java Virtual Machine)
*JVM 은 .clss 파일을 실행 시켜주는 녀석이다.
*JVM 은 어떤 연산을 거쳐 이진코드(바이너리 파일로 변환 시켜서 수행하는 녀석이다)
*/
public class Constant {
// 메인 함수 - 코드의 시작점
public static void main(String[] args) {
// 상수 선언 --> 값이 한번 정해지면 변경할 수 없는 수(값, 데이터)
final int MAX_NUM = 10;
final int MIN_NUM;
MIN_NUM = 0;
// MAX_NUM = 100; // 컴파일 오류 발생한다.
// 중요 *******
// Ctrl + S 누르면 IDE 툴이 javac Constant.java 명령어를 수행한다.
// 명령어의 결과로 Constant.clss 파일이 생성 된다.
// Why? JVM 이해할 수 있는 언어이기 때문에 번역을 해주어야 한다.
System.out.println("------------------------------------------");
// 원주율 "상수"로 선언
final double PI = 3.14159;
// 원의 반지름을 "상수"로 선언 하자.
final int RADIUS = 10;
// 원의 둘레를 계산공식
System.out.println(2 * PI * RADIUS);
// 원의 면적 계산 (원 내부의 공간의 크기)
System.out.println(PI * RADIUS * RADIUS);
} // end of main
} // end of class
리터럴(literal)
원래 100, 5, 3.14, ‘T'와 같은 값들이 '상수'인데, 프로그래밍에서는 상수를 '값을 한번 저장하면 변경할 수 없는 저장공간'으로 정의하였기 때문에 이와 구분하기 위해 상수를 다른 이름으로 불러야만 했습니다. 그래서 상수 대신 리터럴이라는 용어를 사용한다. 리터럴은 단지 우리가 기존에 알고 있던 '상수'의 다른 이름일 뿐입니다.
정리
리터럴은 소스 코드 내에서 고정된 값을 직접 나타내는 데이터입니다. 예를 들어, 10, 123, 3.14, 'A'는 모두 리터럴입니다. 리터럴은 변수나 상수에 할당되는 값 자체를 표현하며, 이 값들은 프로그램 실행 중 변경될 수 없습니다.
리터럴은 상수와 비슷해 보일 수 있지만, 리터럴은 '값 자체'를 의미하고, 상수는 '값이 저장되는 변경 불가능한 메모리 공간'을 의미합니다.
상수는 값을 변경할 수 없는 변수이다. 리터럴은 고정값을 나타내는 표기법 [상수] == [리터럴] 이해 쉽게
도전 과제 1
사각형의 면적을 구하는 코드를 작성해보시오 단, 상수를 선언해서 활용하세요
package basic.ch02;
public class RectangleAreaCalculator {
public static void main(String[] args) {
// hint --> 가로 길이 , 세로 길이
// 식을 작성하고
final int WIDTH = 8;
final int HEIGHT = 9;
int area = WIDTH * HEIGHT;
// 결과 출력하기
System.out.println("사각형의 면적: "+area);
// 문자열은 특별한 녀석이다. 연산을 사용할 수 있습니다.
// 문자열 + 정수, 문자열 + 실수 .....
// 위 연산에 결과 값은 ---> 문자열 리턴 된다.
}
}
도전 과제 2
삼각형의 면적을 계산하는 코드를 작성해 보자. ( 밑변 * 높이 ) / 2
package basic.ch02;
public class TriangleAreaCalculator {
public static void main(String[] args) {
// 삼각형에 밑변 BASE, 단 상수로 선언
float Base = 10.0f;
// 삼각형의 높이 HEIGHT, 단 상수로 선언
float HEIGHT = 5.0f;
// 결과 값을 area 변수에 저장
float area = (Base * HEIGHT)/2;
System.out.println(" 삼각형의 면적 : " + area );
// String result = " 삼각형의 면적 : " + area;
// System.out.println(result);
} // end of main
} // end of class
'Java' 카테고리의 다른 글
| 2024.04.09 명령어를 통한 컴파일, 실행 (0) | 2024.04.10 |
|---|---|
| 2024.04.09 형 변환(type casting) (0) | 2024.04.10 |
| 2024.04.08 데이터 타입(Data Type) (0) | 2024.04.10 |
| 2024.04.08 변수(Variable) (0) | 2024.04.10 |
| 2024.04.09 Java 기초문법 상수, 형변환, 연산자, 빠른평가 (0) | 2024.04.09 |