码迷,mamicode.com
首页 > 编程语言 > 详细

Java第六天

时间:2016-10-26 22:36:44      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:ring   main   建立   []   system   类构造   简写   构造   print   

一般情况下java中的类不能用static修饰,唯一可以修饰的是内部类

内部类的特点:

1.内部类可以直接访问外部类中的成员

2.外部类要访问内部类,必须建立内部类的对象

 

一般用于类的设计

分析事物时,发现该事物描述中还有事物,而且这个事物还在访问被描述的事物的内容。这时就是还有的事物定义成内部类来描述。

如果内部类中定义了静态成员,那么该内部类也必须是静态的。

 

为什么内部类能直接访问外部类的成员呢?

那是因为内部类持有了外部类的引用。 外部类名.this

 

内部类可以存放在局部位置上。

内部类在局部位置上只能访问局部中被final修饰的局部变量。

 

匿名内部类。就是内部类的简写格式。

前提:内部类必须继承或者实现一个外部类或者接口,其实就是一个匿名子类对象。

格式:new 父类or接口(){子类内容}.调用

 

代码实现:

 1 class Demo2
 2 {
 3     public static void main(String[] args)
 4     {
 5         Outer1 o=new Outer1();
 6         o.method();
 7     }
 8 }
 9 
10 abstract class Father//父类
11 {
12     abstract void show();
13 }
14 class Outer1
15 {
16     int num=10;
17     void method()
18     {
19         new Father()//匿名内部类
20         {
21             void show()
22             {
23                 System.out.println("SHOW......"+num);
24             }
25         }.show();
26     }
27 }

通常的使用场景之一:

当函数参数是接口类型时,而且接口中的方法不超过3个,可以用匿名内部类作为实际参数进行传递

代码实现:

 1 interface Inter
 2 {
 3     void show1();
 4     void show2();
 5 }
 6 
 7 class Demo3
 8 {
 9     public static void main(String[] args)
10     {
11         int num=20;
12         show(new Inter(){
13             public void show1()
14             {
15                 System.out.println("show111111.........."+num);
16             }
17             public void show2()
18             {
19                 System.out.println("show222222.........."+num);
20             }
21         });
22     }
23     public static void show(Inter in)
24     {
25         in.show1();
26         in.show2();
27     }
28 }

 java中创建对象是构造函数,构造代码块,父类构造函数之间的调用顺序:

技术分享

Java第六天

标签:ring   main   建立   []   system   类构造   简写   构造   print   

原文地址:http://www.cnblogs.com/pushudepu/p/6002043.html

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!