1. 상수(constant)란 뭘까?
상수는 변하지 않는 수, 반드시 값이 초기화 되어야 하고 한번 초기화 되면 변경할 수 없게 하는 메모리 공간을 의미합니다. 이 특징 때문에 원주율 3.14, 1년의 12개월, 최대 사용 가능자의 수 등을 표현할 때 사용할 수 있습니다. 자바에서 상수를 선언하는 방법은 final 이라는 예약어를 사용합니다.
예시코드
package basic.ch02;
/**
*
* 컴파일 시점과 -> .class 파일을 만들어 내는 과정이다.(Javac 라는 명령어가 동작함)
* 런타임 시점 -> ctrl+F11 프로그램을 실행하는것 부터 실행종료 까지다.
*
* java 라는 명령어는 프로그램을 실행 시키는 명령어 이다.
* javac 라는 명령어는 번역하는 과정이다.
*
* 자바 언어로 코드를 작성하고 있습니다
* JDK 라는 도구를 설치 해야 자바 프로그래밍이 가능
* JDK -> JRE(자바 프로그램 실행 환경이다)
* JRE 안에는 JVM(자바 가상 머신) 이란게 있다
* JVM 은 .class 파일을 실행 시켜주는 녀석이다.
* 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.class 파일이 생성 된다.
//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 UN = 65; //밑변
final int UP = 97; //높이
//글자와 합쳐질땐 "글자 : " + m * u); 식으로 해야함
//문자열은 특별한 녀석이다. 연산을 사용할 수 있습니다.
//문자열 + 정수, 문자열 + 실수 등등
System.out.println("사각형의 면적 : " + UN * UP);
}
}
2.삼각형의 면적을 구해보자
package basic.ch02;
public class TraingleAreaCalculator {
public static void main(String[] args) {
//삼각형에 밑변 BASE, 단 상수로 선언
final double BASE = 3.14;
//삼각형의 높이 HEIGHT, 단 상수로 선언
final double HEIGHT = 9.154;
//결과 값을 area 변수에 저장
double area = (BASE * HEIGHT) / 2;
//결과 출력하기
System.out.println("삼각형의 면적 : " + area);
//String result = "삼각형의 면적 : " + area;
//System.out.println(result);
//이렇게도 할수있다.
}
}
'Java' 카테고리의 다른 글
연산자에 관하여 (0) | 2024.04.09 |
---|---|
CMD명령어를 통한 컴파일, 실행 방법 (0) | 2024.04.09 |
형 변환(type casting) (0) | 2024.04.09 |
자바 데이터 타입 (0) | 2024.04.08 |
변수와 자료형 (0) | 2024.04.08 |