转载

Java面向对象之内部类(访问格式)

一、基础概念

1.内部类是定义在类中的类。A类需要直接访问B类中的成员时,可以将A类定义到B类中,作为B类的内部类存在。

2.内部类可以相当于外部类中的一个成员,可以被成员修饰符所修饰。(如:public private static)

3.静态内部类可以相当于一个外部类进行使用。

4.非静态的内部类只允许定义静态的常量,不能定义其他静态成员。

5.访问规则:

内部类可以直接访问外部类中的成员,因为内部类持有了外部类的引用。外部类名.this

外部类要访问内部类需要创建内部类的对象。

二、实例代码

//外部类Outer

class Outer

{

private static int num = 4;

//内部类Inner_1

class Inner_1

{

void show1()

{

System.out.println("内部类Inner_1 ,show1  "+num);//内部类Inner_1可以直接访问外部类Outer中的成员num

}

}

//外部类中的方法Method访问内部类Inner_1中的方法show1

public void Method()

{

Inner_1 in = new Inner_1();

in.show1();

}

//静态内部类Inner_2

static class Inner_2

{

void show2()

{

System.out.println("内部静态类Inner_2 ,show2  "+num);

}

static void show3()

{

System.out.println("内部静态类Inner_2 ,show3  "+num);

}

}

class Inner_4

{

static final int count = 5;    //内部类中定义静态的常量

void show4()

{

System.out.println("内部类Inner_4 ,show4  "+count);

}

}

}

class InnerClassDemo

{

public static void main(String[] args)

{

//创建外部类对象,访问内部类。

Outer out = new Outer();

out.Method();

//创建非静态的内部类对象,可以通过创建外部类对象,被外部其他程序访问。

Outer.Inner_1 i1 = new Outer().new Inner_1();

i1.show1();

//创建静态内部类对象,并访问非静态成员。

Outer.Inner_2 i2 = new Outer.Inner_2();

i2.show2();

//创建静态内部类对象,并访问静态成员。

Outer.Inner_2.show3();

Outer.Inner_2 i4 = new Outer.Inner_2();

i4.show3();

//创建非静态的内部类对象,并访问静态变量。

Outer.Inner_4 i5 = new Outer().new Inner_4();

i5.show4();

}

}

<strong style="font-size: 14px; font-family: 'PingFang SC', 'Helvetica Neue', Helvetica, Arial, sans-serif;">三、代码运行</strong>

Java面向对象之内部类(访问格式)

本文永久更新链接地址: https://www.linuxidc.com/Linux/2018-05/152233.htm

原文  https://www.linuxidc.com/Linux/2018-05/152233.htm
正文到此结束
Loading...