Java面向对象之内部类(访问格式)
程序员文章站
2022-07-05 11:26:43
一、基础概念 1.内部类是定义在类中的类。A类需要直接访问B类中的成员时,可以将A类定义到B类中,作为B类的内部类存在。 2.内部类可以相当于外部类中的一个成员,可以被成员修饰符所修饰。(如:public private static) 3.静态内部类可以相当于一个外部类进行使用。 4.非静态的内部 ......
一、基础概念
1.内部类是定义在类中的类。A类需要直接访问B类中的成员时,可以将A类定义到B类中,作为B类的内部类存在。
2.内部类可以相当于外部类中的一个成员,可以被成员修饰符所修饰。(如:public private static)
3.静态内部类可以相当于一个外部类进行使用。
4.非静态的内部类只允许定义静态的常量,不能定义其他静态成员。
5.访问规则:
内部类可以直接访问外部类中的成员,因为内部类持有了外部类的引用。外部类名.this
外部类要访问内部类需要创建内部类的对象。
二、实例代码
1 //外部类Outer 2 class Outer 3 { 4 private static int num = 4; 5 6 //内部类Inner_1 7 class Inner_1 8 { 9 10 void show1() 11 { 12 System.out.println("内部类Inner_1 ,show1 "+num);//内部类Inner_1可以直接访问外部类Outer中的成员num 13 } 14 } 15 16 //外部类中的方法Method访问内部类Inner_1中的方法show1 17 public void Method() 18 { 19 Inner_1 in = new Inner_1(); 20 in.show1(); 21 } 22 23 //静态内部类Inner_2 24 static class Inner_2 25 { 26 void show2() 27 { 28 System.out.println("内部静态类Inner_2 ,show2 "+num); 29 } 30 static void show3() 31 { 32 System.out.println("内部静态类Inner_2 ,show3 "+num); 33 } 34 } 35 36 class Inner_4 37 { 38 static final int count = 5; //内部类中定义静态的常量 39 void show4() 40 { 41 System.out.println("内部类Inner_4 ,show4 "+count); 42 } 43 } 44 } 45 46 class InnerClassDemo 47 { 48 public static void main(String[] args) 49 { 50 //创建外部类对象,访问内部类。 51 Outer out = new Outer(); 52 out.Method(); 53 54 //创建非静态的内部类对象,可以通过创建外部类对象,被外部其他程序访问。 55 Outer.Inner_1 i1 = new Outer().new Inner_1(); 56 i1.show1(); 57 58 //创建静态内部类对象,并访问非静态成员。 59 Outer.Inner_2 i2 = new Outer.Inner_2(); 60 i2.show2(); 61 62 //创建静态内部类对象,并访问静态成员。 63 Outer.Inner_2.show3(); 64 Outer.Inner_2 i4 = new Outer.Inner_2(); 65 i4.show3(); 66 67 //创建非静态的内部类对象,并访问静态变量。 68 Outer.Inner_4 i5 = new Outer().new Inner_4(); 69 i5.show4(); 70 } 71 }
三、代码运行
推荐阅读
-
13_Java面向对象_第13天(static、final、匿名对象、内部类、包、修饰符、代码块)_讲义
-
java内部类的格式和访问规则
-
Java基础面向对象:访问修饰符、抽象类、接口
-
Java基础(面向对象继承、修饰符、内部类)
-
java面向对象思想(抽象 接口 多态 object 内部类 包装类 可变参数)
-
【JAVA面向对象编程机制——封装性】 2 Java访问权限限制(Java包 、Java类的访问权限 )
-
Java基础知识(三)面向对象、类和对象、封装继承多态、构造方法、内部类、包装类
-
Java面向对象之内部类(访问格式)
-
讲解Java中如何构造内部类对象以及访问对象
-
Java学习笔记15(面向对象八:匿名对象、内部类)