第2课第7节_Java面向对象编程_内部类_P【学习笔记】

摘要:韦东山android视频学习笔记 

1、什么是内部类:在类的内部定义一个类,内部类可以访问类的私有属性

 1 class Outer{
 2     private int a = 10;
 3     class Inner{
 4         public void printInfo(){
 5             System.out.println("a = " + a);
 6         }
 7     }
 8 }
 9 
10 
11 
12 public class InnerDemo{
13     public static void main(String args[]){
14         Outer o = new Outer();
15         Outer.Inner i =  o.new Inner();
16         i.printInfo();
17     }
18 }

编译运行结果:

2、静态内部类可以不用先实例化类对象,在实例化内部类。需要static关键字.

 1 class Outer{
 2     private static  int a = 10;
 3     static class Inner{
 4         public void printInfo(){
 5             System.out.println("a = " + a);
 6         }
 7     }
 8 }
 9 
10 
11 
12 public class InnerDemo{
13     public static void main(String args[]){
14         //Outer o = new Outer();`
15         Outer.Inner i = new Outer.Inner();
16         i.printInfo();
17     }
18 }

编译运行结果

3、匿名内部类,有些类只定义一次之后就不在使用,可以使用匿名内部类。

 1 interface A{
 2     public void printInfo();
 3 }
 4 
 5 class B implements A{
 6     public void printInfo(){
 7         System.out.println("Hello,world!1");
 8     }
 9 }    
10 
11 
12 public class Anony{
13     public static void main(String args[]){
14         testFunc(new B());
15         testFunc(new A(){
16             public void printInfo(){
17                 System.out.println("Hello,world!2");
18             }
19         });
20     }
21 
22     public static void testFunc(A a){
23         a.printInfo();
24     }
25     
26 }

编译运行结果

 相关代码存放在github,可以下载https://github.com/zzb2760715357/100ask 

原文地址:https://www.cnblogs.com/zzb-Dream-90Time/p/10933992.html