瑞翼工坊项目纪实(十二)

作者:738b71676587 — 已发布 2018/11/27 15:25:00 GMT+0, 上次修改时间: 2022-05-21T07:32:38+00:00
当当当!本周三19:00整瑞翼工坊准时开讲啦!

    今天主讲的内容是Java中的《内部类》与《泛型》。首先由袁宏鹏给同学们讲Java的《内部类》。

内部类的主要内容

    内部类的概念:Java支持在一个类中声明另一个类,这样的类称作内部类,而包含内部类的类成为内部类的外嵌类。

内部类的本质:内部类与包含它的外嵌类有比较密切的关系,而与其它类关系不大,定义在类内部,可以实现对外部完全隐藏,可以有更好的封装性,代码实现上也往往更为简洁。每个内部类最后都被编译为一个独立的字节码文件。该字节吗文件的名称为“外嵌类名称$内部类名称.class”

    Java中根据定义的位置和方式不同,主要有4种内部类:静态内部类、成员内部类、方法内部类、匿名内部类。

    1.静态内部类概念:静态内部类在语法上与其它内部类区别不大。可以有静态变量,静态方法,成员方法,成员变量,构造方法等。

静态内部类的使用方法

a. 静态内部类可以访问外嵌类的静态变量和方法,但不可以访问实例变量和实例方法,在类内部可直接使用内部静态类,

b.静态内部类可以被外部使用,只是需要通过“外嵌类.静态内部类”的方式使用。

    2.成员内部类:成员内部类对象总是与一个外部类对象相连的,在外部使用时,它不能通过new Outer1.Inner1()的方式创建对象,而是要先创建一个外嵌类的对象,再使用“外嵌类对象.new 内部类()”的方法创建内部类对象。

    成员内部类的使用情景:如果内部类与外部类关系密切,需要访问外部类的实例变量或方法,则可以考虑定义为成员内部类。外部类的一些方法的返回值可能是某个接口,为了返回这个接口,外部类方法可能使用内部类实现这个接口,这个内部类可被设为private对外完全隐藏。

    3. 方法内部类的使用:内部类还可以定义在一个方法体中。方法内部类只能在定义的方法内被使用。如果方法是实例方法,则除了静态变量和方法,内部类还可以直接访问外嵌类的实例变量和方法。如果方法是静态方法,则方法内部类只能访问外嵌类的静态变量和方法。方法内部类还可以直接访问方法的参数和方法中的局部变量,不过这些变量必须被声明为final.

    4.匿名内部类:匿名内部类没有单独的类定义,它在创建对象的同时定义类,语法如下:

new 父类(参数列表){

//匿名内部类实现部分

}

new 父接口(参数列表){

//匿名内部类实现部分

}

    匿名内部类是与new关联的,在创建对象的时候定义类,new后面是父类或者父接口,然后是圆括号(),里面可以传递给父类构造方法的参数。

工坊12-1.jpg

    每次瑞翼工坊的时间感觉都是一眨眼,感谢同学们的积极配合,更感谢同学们的理解与包容,如果大家对上课的任何地方有什么不满意或者建议,欢迎大家在评论区留言,今后请大家多多指教哦!