JAVA零基础学习笔记09

一、代码块

类的执行顺序如下一图:
在这里插入图片描述
非静态代码块与静态代码块的特点与区别,如下一图:
静态代码块内部不能有this,super;
静态代码块和类变量一样在多次new时只加载一次。
在这里插入图片描述
用途一:
实际开发过程中多使用静态代码块,用于初始化类的静态属性(如类变量)
举例:
(1):创建类 TestPerson,并创建其属性;
(2):在类 Person 中,静态实例化类 TestPerson,然后在静态代码块中初始化类 TestPerson 的静态属性。
在这里插入图片描述
在这里插入图片描述
用途二:
在new对象时,后面跟一对 大括号; ,在里面 Alt + / ,可以选择重写类的方法,说明构建了没有类名的Person的匿名子类。此为匿名内部类。
由于没有类名,就不能在构造方法中初始化属性,此时由代码块代劳。
在这里插入图片描述
举例:
输出结果为:
luxy
重写
在这里插入图片描述

二、关键字 final
在这里插入图片描述
1、final 修饰类
在这里插入图片描述
2、final 修饰方法
在这里插入图片描述
3、final 修饰变量-常量
只能赋值一次,此时已经不能再赋值了。
在这里插入图片描述
final 应用举例:
留意可在构造方法中给final变量赋值,而且并没有提前显示赋值。
在这里插入图片描述

三、抽象类
在这里插入图片描述
举例:
(1):新建父类Animal,记得使用abstract关键字;
(2):创建子类,不需要abstract修饰,鼠标移到Dog上,在报错解决方案中选择重写方法,模板自动跳出;
(3):在main方法中实例化类 Dog,并调用move方法。
程序如下二图:
在这里插入图片描述
在这里插入图片描述
问题:
在这里插入图片描述
练习:
在这里插入图片描述
创建抽象父类及其子类,Manger类中加个 int bonus;即可。
在这里插入图片描述
在main方法中调用
在这里插入图片描述
输出结果为:
普通员工
12433
luxy
2344.0

四、模板设计模式
在这里插入图片描述
举例如下:
第一步,建立抽象类(大纲)
在这里插入图片描述
第二步,建立子类,alt+/ 重写code方法
在这里插入图片描述
第三步,在main方法中使用
在这里插入图片描述
输出结果为:
在这里插入图片描述

五、接口(1)
在这里插入图片描述
接口在定义属性与方法的时候都有默认的修饰词,如下一图:
在这里插入图片描述
新建接口:右击包-new-interface
演示:
第一步,建立第一个接口
在这里插入图片描述
第二步,建立第二个接口
在这里插入图片描述
第三步,新建类来连接这两个接口
在这里插入图片描述
第四步,新建接口来继承接口
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
接口与抽象类:
在模板方法设计模式中,父类需要是稳定的抽象类,子类要对父类的所有抽象方法实例化才能使用。
万一父类更改,众多子类都会收到影响,非常麻烦。
在遇到确实需要在父类中增加抽象方法的情况下,可以使用接口。
在这里插入图片描述
五、接口(2)
举例:
在这里插入图片描述
操作步骤:
(1)建立Person类作为父类
在这里插入图片描述
(2)建立Cooking接口与Sing接口
在这里插入图片描述
在这里插入图片描述
(3)建立SCTeacher类来继承父类并使用两个接口,记得重写所有抽象方法
在这里插入图片描述
(4)建立Test类,在main方法中验证
注意:new SCTeacher()对象后可以使用实例化的方法,
也可以使用Cooking来new SCTeacher(),但是只能使用从Cooking重写来的方法。
在这里插入图片描述
需要注意的:
在这里插入图片描述

六、工厂模式
在真正开发工作中,是进行合作开发的
在这里插入图片描述
步骤:
(1)创建产品接口BWM,建立抽象方法;
(2)创建类使用这个接口,实例化方法;
在这里插入图片描述
(3)创建工厂接口,建立抽象对象;
(4)创建生产工厂类使用工厂接口;
在这里插入图片描述
(5)建立Test类,在main方法中验证
在这里插入图片描述
总结:
开发人员A操作(1)(2)改动项目,使用(3)(4)与开发人员B对接;
开发人员A改动(1)(2)不会影响到开发人员B。

七、内部类
(1)首先说明一下内部类,即在类的内部创建类。
举例:
在这里插入图片描述
在这里插入图片描述
由于在内部类A中直接调用外部类的方法,所以getInfo()程序执行了两次。
(2)另外,可以创建多个内部类,如下图:
在这里插入图片描述
(3)内部类的作用:解决java不能多重继承的问题。
第一步:建立类A、B、C与其中的方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如此,达到了类A间接继承类B与C的效果。

八、面向对象总结
在这里插入图片描述
与视频结合看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值