Java - Wrapper, Inner class

고태희·2022년 1월 26일
0

Java

목록 보기
5/5
post-thumbnail

먼저 Data Type에 대해서 알아보면 다음과 같다.

char는 문자형, 정수형 어디에도 들어가더라

primitive type

  • 기본형으로 값을 초기화하지 않아도 default value로 초기화 된다.
  • 실제 값을 저장하는 공간으로 스택에 저장된다.

reference type

  • 참조형으로 값을 초기화하지 않으면 null이 기본값이 된다. 따라서, 빈 객체에 접근하면 NullPointException이 발생할 것이다.
  • 주소값을 저장하는 공간으로 힙에 저장된다.

Wrapper Class

정의

쉽게 말하면, 8가지의 기본형들에 대해서 객체로 포장해 주는 클래스를 "래퍼 클래스"라고 한다.

예를 들어, 메소드의 인수가 기본형이 아닌 객체 타입만이 요구되는 경우 기본형을 그대로 사용할 수 없으니 래퍼클래스를 사용하게 되는 타이밍이다.

사용법


대부분 첫글자를 대문자로 바꾸면 되지만, int 와 char형은 첫글자를 대문자로 하고, 추가로 풀네임을 사용한다.

래퍼 클래스는 객체이다.

객체는 당연히 연산이 되지 않으므로, 연산을 필요로 하는 경우에는 다음과 같이 사용하면 된다.

주석 부분을 사실 그대로 사용해도 되는데 그것이 되는 이유는 오토 박싱오토 언박싱 기능덕분이다.

오토 박싱 : 컴파일러에 의해 기본타입이 자동으로 래퍼클래스로 변환되는 것.

Inner Class

정의

말 그대로 내부 클래스

클래스 내의 클래스를 사용하는 것을 Inner Class라고 한다.
장점

  • 논리 그룹 클래스와 인터페이스 내부에 있기 때문에 더 읽기 쉽고, 유지 가능한 코드 개발에 사용
  • 작성하는데 더 적은 코드가 사용된다.

Inner Class를 생성 시, bin폴더에 Outer$~~~.class 파일이 생성되는데, src폴더에서는 생성되지 않지만 저런 모양으로 생성되게 된다

종류

static class

member class

  • Outer Class 객체 먼저 생성
  • 만든 객체에서 멤버 변수를 사용하듯이 member class를 사용하면 된다

class가 변수가 된다고 생각하면된다

anonymous class

익명함수처럼 사용하는 익명 이너 클래스
인터페이스나 추상클래스를 사용시 많이 사용하게 된다.

local class

잘안써서 정리 안해버려~

0개의 댓글