다루두루

블로그 이미지

차케요

공부하면서 정리하는 노트같은 블로그입니다.

JAVA 4대 중첩클래스_2

[JAVA]자바 공부하기 2014. 2. 10. 02:28

 

 

 ▣ 정적 지역 익명 중첩클래스 

 

■ 지난 포스팅에서 자바의 [4대 중첩 클래스]의 개념과 "일반 중첩 클래스"에 대해서 알아봤었는데요.

▶ http://kd3302.tistory.com/118

 

이어서 나머지 세개의 중첩 클래스들을 살펴보도록 하겠습니다.

 


 

1. 지역중첩클래스

■ 일반적으로 class는 다시 사용하기 위해서 만드는데요. 이것을 많이 재사용하지 않고 특정 메서드에서 한번만 사용할거라면 굳이 class를 밖에다 작성하지 말고 한번만 사용할 메서드 내부(지역)에 한번만 작성하는것이라고 이해를 하면 될것입니다.

 

다음 예제를 살펴보죠.

■ 예제는 메인 메서드 안에 클래스를 작성한 상황인데요. 이처럼 일정한 메서드 안에서 한번만 사용하기 위해서 작성하는 메서드를 지역중첩 클래스라고 합니다. 에제는 메서드에서 AAA의 멤버만 호출해서 사용하고 있는데요. 만약에 AAA에서 메인메서드의 멤버를 사욯하고 싶다면 메인메서드의 멤버는 final로 선언이 되어 있어야 합니다.

 

■ AAA에서 메인메서드의 멤버 "x"를 사용하기 위해서 "x"를 final로 선언한 형태입니다.

마지막으로 지역중첩 클래스는 일반 중첩 클래스와 비슷하기 때문에 static 멤버를 선언하지 못합니다.

 


 

2 익명 중첩 클래스

■ 익명중첩클래스의 형태는 지역중첩 클래스에서 변형된 형태인데요. 이것은 이름의 뜻대로 class라는 예약어를 사용하지 못하고, class 이름을 가지지 못하고 단지 인스턴스의 생성과 내용부의 정의만 할 수 있습니다. 이것을 특정 메서드에서 호출하기 위해서는 class는 존재하고 있어야 합니다. 또한 만약에 이 클래스에서 메인메서드의 멤버를 호출하기 위해서는 메서드의 멤버 역시 final로 선언되어 있어야 합니다.

 

■ 여기서 주의해야 할것은 AAA의 y값을 private로 선언하면 에러가 발생하고, x는 final로 선언되어 있어야 한다는 것입니다. 또한 익명 중첩클래스에서는 생성자를 작성할 수 없습니다. 만약에 생성자를 작성하면 에러가 발생합니다.

 

 


3. 정적 중첩클래스

■ 지난 포스팅에서 일반 중첩 클래스를 작성할때 특징중의 하나가 static과 관련된 멤버를 선언할 수 없다는 것이었는데요. static을 사용해야 하는 상황이라면 이 중첩 클래스를 사용하면 됩니다. 형식은 단순하게 class 이름 앞에 static이라는 예약어만 붙여주면 됩니다.

 

 

이 클래스는 static의 특성상 객체를 독립적으로 생성할 수 있는데요. 다음과 같습니다.

AAAA.BBB bbb = new AAA.BBB();

static 메서드를 사용할 수 있고, static 멤버도 선언할 수 있습니다. 이처럼 반드시 안에 있는 class에 static을 선언해야 한다면 정적 중첩클래스를 사용하면 됩니다.

 

static의 특성이 일반 멤버를 static 메서드 내부에서 사용할 수 없듯이 이 경우도 BBB에서 AAA의 멤버를 사용하고 싶다면 AAA의 멤버는 static으로 선언되어 있어야 합니다.

 

 

■ 이렇게 해서 네개의 중첩 클래스의 특징들을 살펴봤습니다. 프로그램을 작성할때 이것들을 잘 사용하면 좀 더 효율적인 프로그램 작성이 가능할 것입니다.

저작자표시 비영리 변경금지 (새창열림)
Posted by 차케요

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • 더 보기

카테고리

NEW (900)
아이폰 개발 기초 (7)
취미 (16)
아두이노 (16)
[안드로이드] 어플만들기 (77)
안드로이드 기초 다지기 (61)
슈팅게임 만들기 (4)
[JAVA]자바 공부하기 (48)
C언어 알고리즘 (61)
[Unity3D]유니티3D 강좌 (7)
컴퓨터 (325)
포토샵CS2 강좌 (6)
유용한 프로그램 (244)
리눅스 노트정리 (22)
임베디드 리눅스 (11)
New블로그 (9)
음식의 효능 (4)
일반상식 (56)
HTML 공부 (40)
포토샵 공부 (36)
엑셀 (6)
파워포인트 공부 (19)
노트정리 (38)
일상 (33)
TV영화 (85)
방명록 : 관리자 : 글쓰기
차케요's Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

다루두루

공부하면서 정리하는 노트같은 블로그입니다.

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • NEW (900)
    • 아이폰 개발 기초 (7)
    • 취미 (16)
      • 아두이노 (16)
    • [안드로이드] 어플만들기 (77)
      • 안드로이드 기초 다지기 (61)
      • 슈팅게임 만들기 (4)
    • [JAVA]자바 공부하기 (48)
    • C언어 알고리즘 (61)
    • [Unity3D]유니티3D 강좌 (7)
    • 컴퓨터 (325)
      • 포토샵CS2 강좌 (6)
      • 유용한 프로그램 (244)
    • 리눅스 노트정리 (22)
      • 임베디드 리눅스 (11)
    • New블로그 (9)
    • 음식의 효능 (4)
    • 일반상식 (56)
    • HTML 공부 (40)
    • 포토샵 공부 (36)
    • 엑셀 (6)
    • 파워포인트 공부 (19)
    • 노트정리 (38)
    • 일상 (33)
    • TV영화 (85)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바