1. 다운캐스팅과 언박싱의 차이
캐스팅이란?? 자바의 상속관계에 있는 관계에 부모자식간의 클래스의 형변환을 해주는것이 캐스팅이다.
업캐스팅 : 자식 클래스의 객체가 부모 클래스 타입으로 형변환 되는 것을 말한다.
p가 Student 객체를 가리키지만, P는 person타입이기 떄문에 Person클래스의 멤버에만 접근이 가능하다. 그렇게 때문에
p.check에서 컴파일 타임 에러가 발생한다.
class Person{
String name;
Person(String name){
this.name = name;
}
}
class Student extends Person{
String check;
Student(String name){
super(name);
}
}
public class Main{
public static void main(String[] args){
Student s = new Student("홍길동");
Person p = s; // 업캐스팅
p.name = "이름이다.";
p.check = "컴파일 에러 발생"; // 컴파일 에러 발생
}
}
다운캐스팅 : 업캐스팅과 반대로 캐스팅 하는 것을 다운캐스팅이라고 한다 .
Student s = (Student)p
박싱과 언박싱
자바 변수의 기본형에 대응되는 Wrapper class는 다음과 같습니다
여기서 박싱은 기본자료형의 데이터를 대응되는 래퍼 클래스로 만드는 동작을 의미합니다
변수를 다음과 같이 설정을 하고 Wrapper class으로 박싱되는 과정입니다.
반대로 언박싱은 래퍼 클래스에서 기본 자료형으로 변환시키는 것을 의미한다
'JAVA' 카테고리의 다른 글
입출력 I / O (0) | 2023.03.20 |
---|---|
Java 프레임웍 전체 복습! (1) (0) | 2023.03.19 |
java 객체지향 개념1 헷갈리는거 (1) | 2023.03.14 |
JAVA 기본개념 몰랐던거 정리 (0) | 2023.02.27 |
새로이 알게된 replaceAll문법 (0) | 2023.02.19 |