본문 바로가기
코딩/Java

Java에서 변수 타입 변환하기

by tomsdaily 2024. 6. 23.
반응형

Java는 강타입(Strongly Typed) 언어로, 변수의 타입을 명시적으로 선언해야 합니다. 그러나 때로는 변수의 타입을 변환해야 할 필요가 있습니다. 이번 글에서는 Java에서 변수의 타입을 변환하는 방법에 대해 알아보겠습니다.

1. 기본 타입 간의 변환

1.1 자동 변환 (Implicit Casting)

Java에서는 작은 크기의 데이터 타입에서 큰 크기의 데이터 타입으로 자동 변환이 가능합니다. 이를 암시적 변환(Implicit Casting)이라고 합니다.

int num = 10;
double d = num; // int -> double 자동 변환

1.2 명시적 변환 (Explicit Casting)

큰 크기의 데이터 타입을 작은 크기의 데이터 타입으로 변환할 때는 명시적 변환(Explicit Casting)을 사용해야 합니다. 이를 명시적 형변환이라고도 합니다.

double d = 10.5;
int num = (int) d; // double -> int 명시적 변환
System.out.println(num); // 출력: 10

2. 객체 타입 간의 변환

2.1 상속 관계에서의 변환

상속 관계에 있는 클래스들 간에는 업캐스팅(Upcasting)과 다운캐스팅(Downcasting)이 가능합니다.

업캐스팅 (Upcasting)

업캐스팅은 자식 클래스의 객체를 부모 클래스 타입으로 변환하는 것입니다. 이는 암시적으로 이루어집니다.

class Animal {
    void sound() {
        System.out.println("Animal sound");
    }
}

class Dog extends Animal {
    void sound() {
        System.out.println("Bark");
    }
}

Animal animal = new Dog(); // 업캐스팅
animal.sound(); // 출력: Bark

다운캐스팅 (Downcasting)

다운캐스팅은 부모 클래스 타입의 객체를 자식 클래스 타입으로 변환하는 것입니다. 이는 명시적으로 이루어져야 하며, 런타임 시 타입이 맞지 않으면 ClassCastException이 발생할 수 있습니다.

Animal animal = new Dog();
Dog dog = (Dog) animal; // 다운캐스팅
dog.sound(); // 출력: Bark

3. 문자열과 기본 타입 간의 변환

3.1 기본 타입을 문자열로 변환

기본 타입을 문자열로 변환할 때는 String.valueOf() 메서드를 사용하거나, + 연산자를 사용할 수 있습니다.

java

int num = 100;
String str1 = String.valueOf(num);
String str2 = num + ""; // 둘 다 "100"을 생성

3.2 문자열을 기본 타입으로 변환

문자열을 기본 타입으로 변환할 때는 각 기본 타입에 해당하는 래퍼 클래스의 parse 메서드를 사용합니다.

String str = "100";
int num = Integer.parseInt(str);
double d = Double.parseDouble(str);

4. 래퍼 클래스 간의 변환

래퍼 클래스 간의 변환은 생성자나 valueOf() 메서드를 사용하여 가능합니다.

Integer intObj = Integer.valueOf(100);
Double doubleObj = Double.valueOf(intObj.doubleValue());

결론

Java에서 변수의 타입을 변환하는 방법을 이해하는 것은 매우 중요합니다. 기본 타입 간의 변환, 객체 타입 간의 변환, 문자열과 기본 타입 간의 변환, 그리고 래퍼 클래스 간의 변환을 잘 이해하고 활용하면 더욱 효율적인 프로그래밍이 가능합니다. 각 변환 방법을 잘 익혀서 적절한 상황에 맞게 사용해 보세요.


이 글이 Java에서 변수 타입 변환을 이해하는 데 도움이 되길 바랍니다. 질문이나 추가적인 피드백이 있다면 언제든지 댓글로 남겨주세요!

 
반응형