JAVA 내부 클래스·멤버 클래스
클래스 내의 변수와 방법과 마찬가지로 클래스를 구성원으로 성명할 수 있다.
static을 가진 구성원 클래스와 비static 구성원 클래스는 완전히 다르다.
구성원은 필드, 메서드, 내부 클래스입니다.
구성원 중의 내부 반은 구성원류다.
구성원 선언에 관해서는 static을 넣을지 안 넣을지 사용 방법에 큰 차이가 나는 것이 특징이다.
static 구성원 클래스
static 구성원 클래스와 외부 클래스 및 실례의 관계가 비교적 희박하다
"내부류가 아니라 일반적인 다른 류로 선언하는 상황"
”.
static 멤버반이란
일반 기타 반과static 구성원 반의 차이
・기본적으로 "외부 클래스. 구성원 클래스"로 사용됩니다.
· 외부 반의 구성원을 방문할 수 있으나static에만 한정됩니다.
_________________________________________________________ ・기본적으로 "외부 클래스. 구성원 클래스"로 사용됩니다.→
Outer.Innner ic = new Outer.Inner();
static 구성원 클래스 없음
static이 없는 구성원 클래스 (내부 클래스) 는
외부 클래스에서 발생하는 각 실례와 강렬한 관련이 있는 클래스 정의.
비static의 내부 클래스는 다음과 같습니다.
외부 클래스 구성원 중 하나로 정의된 내부 클래스에서
static이 지정되지 않은 것을 가리킨다.
멤버 클래스 인스턴스는 다음과 같습니다.
반드시 어떤 외부류의 실례와 결합된 형식으로 생겨난다.
static이 없는 멤버반은...
・기본적으로 "외부 클래스. 구성원 클래스"로 사용됩니다.
· 링크의 외부 실례에 접근할 수 있는 비static 구성원입니다.
_________________________________________________________ static가 없는 구성원 클래스의 실례 생성은 다음과 같은 특수 문법을 사용합니다.
static이 없는 구성원급의 실례화
・외부 클래스 인스턴스 변수 이름새 구성원 클래스 구조기 호출
ex)
Outer o = new Outer();//まず外部インスタンスを生成
Outer.Inner = o.new Inner();//oと繋がるInnerインスタンスを生成
▪️Test93.javastatic 구성원 클래스 사용 예시//▪staticメンバークラスの利用例
//外部クラス
class Outer {
int outerField;
static int a;
// staticなメンバークラス
static class Inner {
void innerMethod() {
// staticな外部クラスメンバのみ利用可
a = 10;
}
}
// 外部クラスの中にあるメソッド
void outerMethod() {
// 外部クラスからはInnerで利用可
Inner ic = new Inner();
}
}
// 無関係なクラス
class Test93 {
public static void main(String[] args) {
// 無関係なクラスからstaticなメンバークラスにアクセスするにはOuter.Innerで利用
Outer.Inner ic = new Outer.Inner();
}
}
내부 클래스(내부 클래스)
내부반
중첩(=중첩) 클래스에 static 선언이 없는
▪️Test94.java 비static 구성원 클래스(내부 클래스)의 사용 예시 ①//*非staticメンバークラス(インナークラス)の利用例
class Outer {
static int outerField;
int b;
class Inner {
void innerMethod() {
outerField = 10;
b = 5;
}
}
void outerMethod() {
Inner ic = new Inner();
}
}
class Test94 {
public static void main(String[] args) {
Outer o = new Outer();
Outer.Inner in = o.new Inner();
}
}
▪️Test95.java 비static 구성원 클래스(내부 클래스)의 사용 예시 ②//*非staticメンバークラス(インナークラス)の利用例
class OuterClass {
int outerField;
int c;
//インナークラス
class InnerClass {
void method2() {
c = 13;
}
}
void method() {
InnerClass ic = new InnerClass();
}
InnerClass ic3 = new InnerClass();
}
class Test95 {
public static void main(String[] args) {
// 全く無関係なクラスからは
// InnerClass ic2 = new InnerClass();では
// InnerClassのインスタンス生成できない
OuterClass oc = new OuterClass();
// 非staticメンバークラスのインスタンス化
OuterClass.InnerClass oi = oc.new InnerClass();
}
}
총결산
static의 내부반은 내부반이 아니라 구성원이다.
Nested Class
Reference
이 문제에 관하여(JAVA 내부 클래스·멤버 클래스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/icelandnono/items/d30bce978bea8939b8a1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
//*非staticメンバークラス(インナークラス)の利用例
class Outer {
static int outerField;
int b;
class Inner {
void innerMethod() {
outerField = 10;
b = 5;
}
}
void outerMethod() {
Inner ic = new Inner();
}
}
class Test94 {
public static void main(String[] args) {
Outer o = new Outer();
Outer.Inner in = o.new Inner();
}
}
//*非staticメンバークラス(インナークラス)の利用例
class OuterClass {
int outerField;
int c;
//インナークラス
class InnerClass {
void method2() {
c = 13;
}
}
void method() {
InnerClass ic = new InnerClass();
}
InnerClass ic3 = new InnerClass();
}
class Test95 {
public static void main(String[] args) {
// 全く無関係なクラスからは
// InnerClass ic2 = new InnerClass();では
// InnerClassのインスタンス生成できない
OuterClass oc = new OuterClass();
// 非staticメンバークラスのインスタンス化
OuterClass.InnerClass oi = oc.new InnerClass();
}
}
static의 내부반은 내부반이 아니라 구성원이다.
Nested Class
Reference
이 문제에 관하여(JAVA 내부 클래스·멤버 클래스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/icelandnono/items/d30bce978bea8939b8a1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)