[TIL | 내일배움캠프] Java와 객체지향 02

KnitDev - BCJ·2025년 9월 16일

Java

목록 보기
2/8
post-thumbnail

래퍼클래스 = 속성 + 생성자 + 기능

  • 기본 자료형을 감싸고 있는(Wrapping) 것들(속성/생성자/기능) = 래퍼클래스
  • 내부적으로 바로 값을 출력하도록 처리해준다.

→ 기본 자료형은 속성과 기능을 가질 수 없지만 래퍼 클래스를 사용함으로 객체로서 속성과 기능을 부여할 수 있게 된다.

래퍼 클래스의 기능

  • <int자료형 변수>.toString()
    정수 자료형을 문자열로 바꿔주는 것

Auto-Boxing

기본형을 래퍼클래스로 변형해주는 것
내부적으로 컴파일러가 생성자를 호출하도록 만들어주는 과정

//아래와 같이 변수를 선언하면
Integer num1 = 10;
//Integer 클래스(래퍼 클래스)에서 기본 자료형을 감싸주는 처리를 한다.
Integer num1 = Integer.valueOf(10);

↕️

오토 언박싱

래퍼형을 기본형으로 바꿔주는 것

Integer num2 = 10;
int num3 = num2; //오류가 발생하지 않는다.
//왜냐면 
int a = num3.intValue();
//래퍼형 → 기본형으로 바꿔주는 언박싱 처리가 되었기 때문이다. 

⚠️래퍼클래스는 기본 자료형을 쓸 때보다 연산이 느리기 때문에 빠른 작업이 필요할 때는 기본 자료형을 쓰는 것이 좋다.

Static 변수와 메모리

  • 공용으로 변수를 사용하기 때문에 값을 입력할 때 주의해야 한다.
  • 프로그램이 종료될 때까지 메모리에 계속 남아있음(유지)
    그러니 메모리를 낭비하지 않도록 꼭 필요한 때에만 사용해야 함.

final

  • 프로그램 중에 절대 변하면 안되는 변수를 써야 할 때 final로 선언한다.
  • 한번 선언하면 오버라이딩 할 수 없다.(수정 불가)
  • 클래스로 final을 선언할 경우 상속할 수 없다.

불변 객체

final은 참조 주소의 변경은 막아주지만 내부 값의 변경은 막아주지 않는다.(→불변객체X)
불변객체를 사용하려면 내부 속성에 final을 붙여줘야 한다.

추상 클래스와 인터페이스의 차이점

  • 인터페이스는 인스턴스 변수를 선언할 수 없다.
    (추상클래스는 가능)
  • 계층적 구조를 표현하면서 공통 속성과 기능을 재사용해야할 때 추상클래스를 사용
profile
우당탕탕얼레벌레 개발 일지와 일상

0개의 댓글