摘要:韦东山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 }
编译运行结果:
![](https://i-blog.csdnimg.cn/blog_migrate/3da442869f32ec0169946148ec6939e7.png)
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 }
编译运行结果
![](https://i-blog.csdnimg.cn/blog_migrate/b9e58bc65a1890bb80c8c2eaaf5ec932.png)
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 }
编译运行结果
![](https://i-blog.csdnimg.cn/blog_migrate/c5653be4cc6496bc7674cdf604fe24ce.png)
相关代码存放在github,可以下载https://github.com/zzb2760715357/100ask
![](https://i-blog.csdnimg.cn/blog_migrate/35be6254bd7fc7779fec270d67e62fb8.png)
觉得不错,就给我点小支持吧,蟹蟹