2019-03-08 Java Inner 01
2019-03-08 本文已影响0人
yangsunior
内部类的访问特点
- 内部类可以直接访问外部类中的成员。
- 外部类要访问内部类,必须建立内部类的对象。
class Outer
{
private static int num = 31;
class Inner// 内部类。
{
void show()
{
System.out.println("show run..."+num);
}
}
public void method()
{
Inner in = new Inner();
in.show();
}
}
- 1. demo 1
class InnerClassDemo
{
public static void main(String[] args)
{
Outer out = new Outer();
out.method();
}
}
OUTPUT:
show run...31
- 2. demo 2
class InnerClassDemo
{
public static void main(String[] args)
{
Outer.Inner in = new Outer().new Inner();
in.show();
}
}
OUTPUT:
show run...31
注: 这种写法目前不是很明白,以后再议。
-
3. demo 3
如果内部类是静态的。 相当于一个外部类
class Outer
{
private static int num = 31;
static class Inner// 内部类。
{
void show()
{
System.out.println("show run..."+num);
}
}
public void method()
{
Inner in = new Inner();
in.show();
}
}
class InnerClassDemo
{
public static void main(String[] args)
{
Outer.Inner in = new Outer.Inner();
in.show();
}
}
OUTPUT:
show run...31
- 4. demo 4
class Outer
{
private static int num = 31;
static class Inner// 内部类。
{
static void function()//如果内部类中定义了静态成员,该内部类也必须是静态的。
{
System.out.println("function run ...."+num);
}
}
}
class InnerClassDemo
{
public static void main(String[] args)
{
//如果内部类是静态的,成员是静态的。
Outer.Inner.function();
}
}
OUTPUT:
function run ....31
何时用到内部类?
-
一把用于类的设计。
-
分析事物时发现该事物描述中还有事物,而且这个事物还在访问被描述事物的内容。
这时就是还有的事物定义成内部类来描述。