Java_language

상수, 리터럴, 형 변환

헬로제이콥 2025. 11. 17. 17:58

 

💻 Java 핵심 개념 예제: 상수, 리터럴, 형 변환

안녕하세요! 프로그래밍 학습에 중요한 **상수(Constant), 리터럴(Literal), 형 변환(Casting)**의 개념을 자바(Java) 예제 코드를 통해 쉽고 명확하게 정리했습니다. 이 내용을 티스토리에 바로 게시할 수 있도록 마크다운 형식으로 작성했습니다.


1. 상수(Constant)와 리터럴(Literal) 예제 ✨

💡 핵심 개념 정리

  • 상수 (Constant): final 키워드를 사용하여 선언하며, 프로그램 실행 중에 값이 절대 변하지 않는 변수입니다. 보통 대문자로 작성합니다. (예: $\pi$ 값, 고정된 세율, 변하지 않는 가격 등)
  • 리터럴 (Literal): 소스 코드에 직접 적은 값 자체를 의미합니다. 변수에 대입되는 숫자, 문자, 문자열 등이 모두 리터럴입니다. (예: 3.14, 10, 'A', "Hello" 등)

📌 예제 1: 원의 둘레 계산 (상수 사용)

원의 둘레를 계산하는 예제에서 $\pi$ 값을 상수로 선언합니다.

Java
 
public class CircleExample {
    public static void main(String[] args) {
        // [1] final double PI = 3.14; // 상수
        final double PI = 3.14; 
        
        // [2] double radius = 5; // 반지름 (리터럴)
        double radius = 5; 
        
        double result = 2 * PI * radius;
        System.out.println("원의 둘레: " + result); // 출력: 원의 둘레: 31.4
    }
}
  • final double PI = 3.14; : PI는 상수입니다. final 키워드 덕분에 프로그램 어디에서도 이 값을 바꿀 수 없습니다.
  • 3.145 : 코드에 직접 적은 값이므로 리터럴입니다.

📌 예제 2: 일일 지출 계산 (리터럴 예시)

변하지 않는 상품 가격을 상수로, 매일 달라지는 구매 수량은 리터럴로 활용하는 예제입니다.

Java
 
public class DailyCost {
    public static void main(String[] args) {
        // [1] final int COFFEE_PRICE = 2000; // 상수
        final int COFFEE_PRICE = 2000; 
        
        // [2] int cups = 3; // 리터럴 (오늘의 구매 수량)
        int cups = 3; 
        
        int total = COFFEE_PRICE * cups;
        System.out.println("오늘 커피값 총합: " + total + "원"); // 출력: 오늘 커피값 총합: 6000원
    }
}
  • COFFEE_PRICE : 값이 바뀌면 안 되는 상수입니다.
  • 20003 : 코드에 직접 적어 넣은 값인 리터럴입니다.


2. 형 변환(Casting) 예제 🔄

형 변환이란, 하나의 자료형을 다른 자료형으로 바꾸는 것을 의미합니다. 크게 **자동 형 변환(묵시적 형 변환)**과 **강제 형 변환(명시적 형 변환)**이 있습니다.

📌 예제 1: 정수 → 실수 변환 (자동 형 변환)

자동 형 변환작은 자료형에서 큰 자료형으로 변환할 때 데이터 손실이 없으므로 자바가 자동으로 처리해 줍니다.

Java
 
public class AutoCastingExample {
    public static void main(String[] args) {
        int num = 10; // 정수 (4-byte)
        
        // int형 변수 num이 double형 result에 대입될 때 자동 형 변환 발생
        double result = num; // 자동 형 변환 (int → double, 8-byte)
        
        System.out.println("원래 값(int): " + num);
        System.out.println("자동 형 변환 결과(double): " + result); 
        // 출력: 자동 형 변환 결과(double): 10.0
    }
}
  • int (4바이트) → double (8바이트) 변환: 크기가 더 큰 자료형으로 변환되므로, 데이터 손실 없이 자동으로 변환됩니다. 10이 10.0이 됩니다.

📌 예제 2: 실수 → 정수 변환 (강제 형 변환)

강제 형 변환큰 자료형에서 작은 자료형으로 변환할 때 데이터 손실이 발생할 수 있으므로, 개발자가 변환할 자료형을 (자료형) 형태로 명시해야 합니다.

Java
 
public class ForceCastingExample {
    public static void main(String[] args) {
        double score = 95.7; // 실수
        
        // (int)를 붙여 강제로 int형으로 변환
        int intScore = (int) score; // 강제 형 변환 (double → int)
        
        System.out.println("원래 점수(double): " + score);
        System.out.println("강제 형 변환 후(int): " + intScore);
        // 출력: 강제 형 변환 후(int): 95
    }
}
  • (int) score: double을 강제로 int로 변환하라는 명령입니다. 이 과정에서 소수점 이하(.7) 부분이 버려져 데이터 손실이 발생합니다.

'Java_language' 카테고리의 다른 글

자바 연산자  (0) 2025.11.17
연산자 & 조건문  (0) 2025.11.17
자바(Java) 변수: 값을 담는 '상자'로 쉽게 이해하기!  (0) 2025.11.13
Scanner 입력받기  (0) 2025.11.12
간단한 사칙연산 계산기  (0) 2025.11.12