/*
内部类:
成员内部类 -- 定义在成员位置
局部内部类 -- 定义在局部位置
内部类调用外部类成员
直接使用
外部类想使用内部类成员
创建内部类对象,调用/使用该对象的方法/变量
在测试类中使用内部类
1.在测试类中创建外部类对象,调用包含有内部类对象的方法(diaoYN),间接执行使用了内部类中的成员变量
2.在测试类中直接创建内部类对象,格式如下:
外部类名.内部类名 变量 = new 外部类名().new 内部类名();
= 外部类对象.内部类对象;
Outer.Inner1 oi = new Outer().new Inner1();
oi.show();
class Body
{
private class Heart
{
public void operate()
{
System.out.println("心脏搭桥手术");
}
}
public void zhenDuan()
{
if(你是不是医生)
{
Heart h = new Heart();
h.operate();
}
}
}
class Test
{
Body.Heart bh = new Body().new Heart();
bh.operate();
Body b = new Body();
b.zhenDuan();
}
class Outer
{
static int age;
static class Inner2
{
public void show()
{
}
public static void show2()
{
//****
}
}
Outer.Inner2.show2();
}
*/
class Outer
{
public int num = 20;
/*
public int getNum()
{
return num;
}
*/
//成员内部类
class Inner1
{
public int innerNum = 30;
public void show()
{ //直接使用
System.out.println(num);
}
}
public void method()
{
int x = 100;
}
//只要这个方法被调用,我就输出了内部类中的成员变量
public void diaoYN()
{
Inner1 i1 = new Inner1();
System.out.println(i1.innerNum); //30
}
}
class OuterTest
{
public static void main(String[] args)
{
Outer o = new Outer();
o.diaoYN();
//外部类名.内部类名 变量 = new 外部类名().new 内部类名();
//该语句创建了一个内部类对象
Outer.Inner1 oi = new Outer().new Inner1();
System.out.println(oi.innerNum);
oi.show();
}
} |
|