10. 연산자(Operators)

박은서's avatar
Dec 08, 2025
10. 연산자(Operators)

1. 형변환(Type Casting)

교재 p.61-63 2.2 변수와 자료형

1️⃣ 형변환이란?

한 자료형의 값을 다른 자료형으로 변환하는 것

2️⃣ 형변환이 필요한 이유

자료형마다 저장 크기와 표현 범위가 다름 → 컴퓨터는 자료형이 다르면 계산이나 저장을 마음대로 할 수 없음
int a = 10; double b = a; // int → double
➡ 정수 값을 실수 변수에 저장하려면 형변환이 필요

3️⃣ 형변환의 종류

2) 자동 형변환(묵시적 형변환, Upcasting)

개념
  • 작은 타입 → 큰 타입
  • 데이터 손실 ❌
  • 자바가 자동으로 처리
작은 타입
큰 타입
byte
short
short
int
int
long
long
float
float
double
작은 타입
큰 타입
char
int
int
long
long
float
float
double
int a = 10; double b = a; // 자동 형변환
자동으로 형변환을 해주는 이유 → 정보가 손실될 위험이 없기 때문

⚠️ char 형변환(시험 단골)

char c ='A'; int n = c; // 65
int x = 66; char y = (char)x; // 'B'
➡ char ↔ int 변환 가능 (ASCII/Unicode)

3) 강제 형변환(명시적 형변환, Downcasting)

개념
  • 큰 타입 → 작은 타입
  • 데이터 손실 위험성 ⭕
  • 직접 명시해야 함
double a = 3.14; int b = (int) a; // 강제 형변환 // 결과 b = 3; // 소수점 .14는 버려짐 -> 데이터 손실
왜 강제로 형변환 해야 하는 이유 → 정보의 손실 위험성 때문에 개발자가 책임지고 변환한다는 의미

4) 참조형 형변환 (객체 타입 형변환)

참조형(클래스)도 형변환이 가능함
⚠️ 단, 상속 관계에서만 가능
① 업캐스팅(Upcasting) - 자동
자식 클래스 → 부모 클래스
Dog d = new Dog(); Animal a = d; // 자동 형변환
② 다운캐스팅(Downcasting) - 강제
부모 클래스 → 자식 클래스
Animal a = new Dog(); Dog d = (Dog) a; // 강제 형변환

5) 기본형 ↔ 참조형 형변환 (Wrapper)

오토박싱 / 언박싱
Integer a= 10; // 오토박싱 (int → Integer) int b = a; // 언박싱 (Integer → int)
⚠️ 자바에서 오토박싱과 언방식 다 자동 지원 되지만 🚨null 값 주의🚨
→ Integer는 null값 넣을 수 있지만, int 자료형은 null 값 들어갈 수 없음
Integer n = null; int m = n; // NullPointerException

4️⃣ 실습

package ex02; public class TypeConversion { public static void main(String[] args) { int i; double f; f = 1 / 5; System.out.println(f); f = (double) 1 / 5; System.out.println(f); i = (int) 1.7 + (int) 1.8; System.out.println(i); } }
 
Share article