public class Test1_OutterAndInner {
Outter outter= new Outter();//1:创建外部类对象
Outter.Inner inner= outter.new Inner();//2:通过外部类对象创建内部类
//上面两行代码可以简写成如下形式:Outter.Inner inner=new Outter.new Inner();
System.out.println("Outter中Inner的name为:"+inner.name);
//-----------------------------------------------------------------------------
//在访问静态内部类时,静态内部类 是类相关的 ,所以无需先new外部类对象
//故静态内部类对象的创建为:Outter2.inner inner= new Outter2.inner();//只有一个new
System.out.println("Outter2中Inner2的weight为:"+Outter2.Inner2.weight);
new Outter3().show();
}
}
class Outter3{
void show(){
/* 在声明局部内部类Inner3之前如果使用了,则编译报错--->注意局部内部类要先声明,后使用
* Inner3 i3= new Inner3();
System.out.println("Outter3中Inner3中的cm为:"+i3.cm);
*/
class Inner3{ //局部内部类:当类出现在局部位置时 什么是局部位置呢?{ }括起来的中间,当然,类体除外
int cm=3;
}
Inner3 i3= new Inner3();//注意局部内部类要先声明,后使用
System.out.println("Outter3中Inner3中的cm为:"+i3.cm);
}
}
//内部类:类中还有类,可以出现在类中的任何位置。 这样的类叫做内部类,嵌套类
class Outter{//1:成员内部类
class Inner{//我们称Inner为Outer的内部类,称Outter为Inner的外部类
String name="小明"; //称Test1_OutterAndInner以及其他包中的类为Innner的外部【其他】类。
}
}
class Outter2{
static class Inner2{//静态内部类,类被static修饰了
int age=5; //原来学习的时候,说了类只被public修饰或者不修饰
static double weight =98.0; //现在学到了,当类作为内部类,作为外部类的成员时,可以被其他成员修饰符修饰
}
}
class A{
void haha(){
}
}
public static void main(String[] args) {
【一:访问成员内部类】
//Outter.Inner inner1= new Inner();//内部类对象的创建,需要由外部类对象来创建--->创建外部类对象Outter outter= new Outter();//1:创建外部类对象
Outter.Inner inner= outter.new Inner();//2:通过外部类对象创建内部类
//上面两行代码可以简写成如下形式:Outter.Inner inner=new Outter.new Inner();
System.out.println("Outter中Inner的name为:"+inner.name);
//-----------------------------------------------------------------------------
//在访问静态内部类时,静态内部类 是类相关的 ,所以无需先new外部类对象
//故静态内部类对象的创建为:Outter2.inner inner= new Outter2.inner();//只有一个new
【二:访问静态内部类】
Outter2.Inner2 inner2= new Outter2.Inner2();
System.out.println("Outter2中Inner2的AGE为:"+inner2.age);System.out.println("Outter2中Inner2的weight为:"+Outter2.Inner2.weight);
//---------------------------------------------------------------------------------
【三:访问局部内部类】
//局部内部类的访问:只能在局部中进行访问new Outter3().show();
}
}
class Outter3{
void show(){
/* 在声明局部内部类Inner3之前如果使用了,则编译报错--->注意局部内部类要先声明,后使用
* Inner3 i3= new Inner3();
System.out.println("Outter3中Inner3中的cm为:"+i3.cm);
*/
class Inner3{ //局部内部类:当类出现在局部位置时 什么是局部位置呢?{ }括起来的中间,当然,类体除外
int cm=3;
}
Inner3 i3= new Inner3();//注意局部内部类要先声明,后使用
System.out.println("Outter3中Inner3中的cm为:"+i3.cm);
}
}
//内部类:类中还有类,可以出现在类中的任何位置。 这样的类叫做内部类,嵌套类
class Outter{//1:成员内部类
class Inner{//我们称Inner为Outer的内部类,称Outter为Inner的外部类
String name="小明"; //称Test1_OutterAndInner以及其他包中的类为Innner的外部【其他】类。
}
}
class Outter2{
static class Inner2{//静态内部类,类被static修饰了
int age=5; //原来学习的时候,说了类只被public修饰或者不修饰
static double weight =98.0; //现在学到了,当类作为内部类,作为外部类的成员时,可以被其他成员修饰符修饰
}
}
class A{
void haha(){
}
}