:
class {
static class {
}
}
, .
,
..,
..( ).
C1, C_nested. , :
C1.C_nested obj=new C1.C_nested();
, , . . , , , .
:
class C1{
private C_nested obj1;
static class C_nested {
}
C_nested getNested(){
return obj1;
}
}
.class, $ . class. . toString() . getClass().getName(). . getClass().getCanonicalName() .
:
class {
interface {
}
}
static.
. , .
, , . , .
(inner)
, , static :
class {
class {
}
}
, .
:
:
=new ();
|
|
:
. 1 =
. new ();
. 2 =
. new ();
.
. this :
. this
- ( ). , , :
. this .
. this .( ).
, Java, JavaScript, parent . , java .
:
package java_gui_example;
public class OuterClass {
int a=5;
public OuterClass() {
}
public class InnerClass{
int x=1,y=1;
public class InnerClass2 {
int z=0;
InnerClass2(){
System.out.println("InnerClass2 object created");
};
void printParentClassNames(){
System.out.println("InnerClass.this.x="+InnerClass.this.x);
System.out.println("OuterClass.this.a="+OuterClass.this.a);
}
}
}
InnerClass inner1;
InnerClass.InnerClass2 inner2;
public void createInner() {
inner1=this.new InnerClass();
inner2=inner1.new InnerClass2();
System.out.println("inner1 name="+inner1.getClass().getName());
System.out.println("inner1 canonical name="+
inner1.getClass().getCanonicalName());
}
}
OuterClass
OuterClass outer1=new OuterClass();
:
outer1.createInner();
outer1.inner2.printParentClassNames();
, , OuterClass,
InnerClass inner1=this.new InnerClass();
InnerClass.InnerClass2 inner2= inner1.new InnerClass2();
OuterClass.InnerClass inner3=outer1.new InnerClass();
OuterClass.InnerClass.InnerClass2 inner4=inner3.new InnerClass2();
, , , , , , . . .
(local)
, , , . :
class LocalClass1 {
public LocalClass1(){
System.out.println("LocalClass1 object created");
}
};
LocalClass1 local1=new LocalClass1();
. , . , .
|
|