일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Android Bluetooth
- 로그캣 색상변경
- apk변환
- Opacity Hex
- 안드로이드
- target29
- 앱강종
- 디바이스ID
- Android
- 바텀네비
- Bluetooth 스캔
- bottomNavigation animation
- Android10
- targetSDK29
- 안드로이드apk변환
- BottomNavigation
- 투명도 hex값
- 안드로이드 로그캣
- aab파일apk변환
- Android OS 10
- 고유식별자
- svn체크아웃
- retrieveExplicitStyle
- 바텀네비게이션
- 로그캣 색상지정
- lottieAnimation
- 로띠애니메이션
- 안드로이드 디버깅툴
- 앱강종현상
- 안드로이드aab변환
- Today
- Total
공부하는 다락방
열혈강의 Java프로그래밍 Round 12 본문
# 중첩 클래스 (Inner Class)
- 클래스 내부에 또 다른 클래스를 가짐으로 클래스 관리의 효율을 높인 것(static 포함불가)
* Inner클래스는 그 자체만으로도 공유의 개념을 가지고 있음. 그러기 때문에 Outer클래스의 멤버필드가 private으로 되어있어도 공유해서 사용 가능.
# 중첩 클래스의 형식과 생성파일
- 형식) class Outer{ class Inner{...}}
- 생성파일) Outer.class, Outer$Inner.class
# 중첩 클래스 객체 생성
- Outer.Inner oi = new Outer().new Inner();
ex) Outer ot = new Outer(); //Outer 클래스의 객체생성
Outer.Inner oi = ot.new Inner(); //Inner 클래스 객체생성은 Outer클래스 객체를 통해서 생성시켜야 함.
=================================================================================
# 정적 중첩 클래스 (static Inner Class)
- 중첩 클래스 내부에 static 멤버를 포함할 수 있는 형태(Outer의 non-static 멤버 포함 불가)
* Outer클래스의 멤버필드 중 static 예약어가 있는 변수만 사용할 수 있음. Inner클래스 내부에 선언되어있는 변수는 static이던 아니던 상관없음.
# 정적 중첩 클래스의 형식과 생성파일
- 형식) class Outer { static class Inner {...}}
- 생성파일) Outer.class, Outer$Inner.class
# 정적 중첩 클래스 객체 생성
- Outer.Inner oi = new Outer.Inner();
* static 은 전체 공유이기 때문에 개별적으로 묶어서 공유할 필요가 없음. 따라서 Outer클래스로 객체 생성.
ex) Outer1.Inner1 oi = new Outer1.Inner1();
* 만약 내부클래스의 static 변수가 밖에서 접근 가능한 경우 출력하고 싶을 때 System.out.println("b ==>" + Outer1.Inner1.b); 클래스로 바로 접근 해서 출력.
*** static Inner클래스에 메인메서드를 선언할 수 있음. 실행하기 위해선 그 메인 메서드가 포함되어있는 모든 클래스 경로를 적어줘야 함.
ex) EX_03$Sub (메인메서드가 있는 클래스까지 경로 적어야 함.)
=================================================================================
# 지역 중첩 클래스 (Local Inner Class) => 익명Inner클래스의 전신, 메서드 안에 클래스가 들어갈 수 있음.
- 메서드 실행 시에 사용되는 클래스를 정의한 형식으로 접근자나 지정어를 가질 수 없음.
# 지역 중첩 클래스의 형식 및 생성 파일
- 형식) class Outer{
method() { class Inner{ ... }}}
- 생성파일) Outer.class, Outer$숫자Inner.class
# 객체 생성은 외부에서 할 수 없음.
=================================================================================
# 익명 중첩 클래스 (Anonymous Inner Class)
- 기존 클래스의 특정 메서드를 오버라이딩 하여 원하는 형태로 재정의 하여 사용하는 방식
- 외부 멤버 중 final만 포함 할 수 있음.
* 주로 이벤트, GUI 파트에서 사용.
** 다른 클래스의 있는 멤버필드를 객체 생성시 재정의해서 사용 가능.
*** 또 다른 메서드를 만들 수 는 있지만 호출은 불가. 멤버필드를 재정의한 메소드에서 호출 가능.
# 익명 중첩 클래스의 형식 및 생성파일
- 형식) class Inner{...}
class Outer{ method() { new Inner(){...}}}
- 생성파일) Outer.class, Outer$숫자.class
# new Inner() 자체가 객체 생성임.
'Java' 카테고리의 다른 글
열혈강의 Java프로그래밍 Round 14 (0) | 2014.12.31 |
---|---|
열혈강의 Java프로그래밍 Round 13 (0) | 2014.12.23 |
열혈강의 Java프로그래밍 Round 11 (0) | 2014.12.11 |
열혈강의 Java프로그래밍 Round 10 (0) | 2014.12.10 |
열혈강의 Java프로그래밍 Round 9 (0) | 2014.12.09 |