java获取上个月的第三周_学习Java的第三周

方法重载(Overload):

1.1在一个类中定义多个相同名称的方法。

1.2要求:

1).方法名称相同

2).参数列表不同

3).与访问修饰符、返回值无关

1.3好处:

1).屏蔽用户的使用差异,方便。

可根据传入的参数不同调用不同的方法

构造方法(Constructor):

2.1概念:类中的特殊方法,主要用于创建对象。用于对象初始化

2.2特点:

1).名称与类名完全相同(包括大小写)。

2).没有返回值类型。

3).创建对象时(new对象时),触发构造方法的调用,不可通过句点的形式手工调用。

2.3注意:如果没有在类中显示定义过构造方法,则编译器默认提供无参构造方法。

2.4注意:如果已经手动添加过有参构造方法,则无参构造方法不再默认提供,可结合需求自行添加。(建议,必须手动添加无参构造方法)

2.5 构造方法也可以重载,规则和方法的重载一样

this关键字:

3.1this代表“当前实例”,即是模板中的当前对象,模板服务与哪个对象,this就指向哪个对象。

3.2 this第一种用法:调用本类中的实例属性、实例方法。例如:this.name、this.run()

3.3this第二种用法:调用本类中的其他构造方法。例如:this()、this(实参)。注意:必须在构造方法的首行,并且必须在构造方法中使用。

4.对象的创建过程

内存中开辟对象空间

为各个属性赋予初始值

执行构造方法中的代码

[将对象的地址赋值给变量]

5.封装:

概念:尽可能隐藏对象的内部实现细节,控制对象的修改及访问的权限。

private的访问修饰符,修饰属性,达到本类可见的效果。

get/set方法是外界访问私有属性的唯一通道,方法内部可对数据进行过滤。(可在set方法中添加过滤条件)

提供公共访问方法,以保证数据可以正常录入。

5.数据私有化行为公开化

继承:

6.1程序中的继承,是类与类之间特征和行为的一种赠与或获得。

6.2类与类之间必须满足“is a”的关系。

6.3父类的选择:功能越精细,重合点越多的,越接近直接父类。

6.4父类的抽象:根据程序需要使用到的多个具体类,进行共性的提取,进而定义父类。

6.5在一组相同或类似的类中,抽取出共性的特征和行为,定义在父类中,实现重用。

6.6产生继承关系之后,子类可以使用父类中的属性和方法,也可定义子类独有的属性和方法。

6.7完整的子类 = 父类共性 + 子类独有

6.8好处:既提高代码的复用性,又提高代码的可扩展性。

6.9Java为单继承,一个类只能有一个直接父类,但可以多级继承,属性和方法逐级叠加。

6.10访问修饰符://其他:不在一个包中,还没有继承关系

59681db8d4be8ef7ceda1360eb5f813a.png

6.11不可继承:

1).父类的构造方法,子类不可继承。

2).父类中由private修饰的成员,不可继承(不可见)。

3).父类中由default修饰的成员,子类不在同包时,不可继承(不可见)。

6.12方法的覆盖/重写(Override)

1).当父类提供的方法无法满足子类需求时,可以在子类中定义和父类相同的方法进行覆盖。

2).要求:

a).方法名、参数表、返回值,必须与父类完全相同。

b).访问修饰符应与父类相同或比父类更宽泛。

3).执行机制:子类覆盖父类方法后,优先执行子类覆盖后的方法版本。

super关键字:

7.1第一种用法:在子类中,可以通过" super. "的形式访问父类的属性和方法,可解决一定的属性遮蔽、方法覆盖后的父类成员调用问题。

7.2第二种用法:super() 表示在子类构造方法的首行,调用父类的无参构造方法。不写会默认在子类构造函数首行中隐藏写。

继承关系下的对象创建:

8.1 继承关系下,构建子类对象时,会先构建父类对象。

8.2 由“父类共性”+ “子类独有”组合成一个完整的子类对象。

继承关系下的对象创建流程:

9.1构建父类对象(父类对象初始化自身属性,执行构造方法中的逻辑代码)

9.2初始化自身属性

9.3执行自身构造方法中的逻辑代码

注意:

10.1如果子类构造方法中,没有显示定义super()或super(实参),则默认提供super()。

10.2同一个子类构造方法中,super()、this()不可同时存在。

11.多态:

11.0 多态指允许不同类的对象(同一父类的子类对象)对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)同一类型变量(父类类型)在调用相同的方法(子类重写父类的方法)时结果不同。

11.1概念:父类引用指向子类对象,从而产生多种形态。

11.2构成多态的前提,二者之间必须具有直接或间接的继承关系,父类引用可指向子类对象,进而形成多态。

11.3父类引用仅可调用父类中所声明的属性和方法,不可调用子类独有的属性和方法。

11.4多态两种应用场景:

1).场景一:使用父类作为方法形参,实现多态

调用方法时,可传递的实参类型包括:本类型对象+其所有的子类对象。

2).使用父类作为方法返回值,实现多态。

调用方法后,可得到的结果类型包括:本类型对象+其所有的子类对象。

12.装箱和拆箱:

1).装箱:父类引用中保存真实子类对象,称为向上转型(多态核心概念)。

2).拆箱:将父类应用中的真实子类对象,强转回子类本身类型,称为向下转型。

3).注意:向下转型时,如果父类引用中的子类对象的类型与目标类型不匹配,则会发生类型转换异常。java.lang.ClassCastException

13.instanceof关键字:

1).语法:父类引用 instanceof 类型(返回boolean类型的结果)

总结:

1).多态的两种应用场景:

a).使用父类作为方法形参,实现多态。

调用方法时,可传递的实参类型包括:本类型对象+其所有的子类对象。

b).使用父类作为方法返回值,实现多态。

调用方法后,可得到的结果类型包括:本类型对象+其所有的子类对象。

2).多态的作用:

a).屏蔽子类间的差异。

b).灵活、耦合度低。

时间与空间的平衡、效率与安全的平衡

二.抽象:

程序当中,哪些对象不该new?

Animal Vehicle(交通工具) new Vehicle(

父类:不够完整、不够具体、不该独立存在,如何解决?通过abstract修饰类,意为抽象类,不能new对象

1.abstract的意思:抽象的,似是而非的,像,却又不是,具备某种对象的特征,但不完整。

2.abstract修饰类,意为“不够完整、不够具体,不该独立存在”

I.即为抽象类,不能独立new对象。

II.可被子类继承,对子类提供共性的属性和方法。

III.可声明引用,更纯粹的使用多态。

IV.抽象类的构造方法的作用:构建子类对象时,先构建父类对象,由父类共性+子类独有组成完整的子类对象。

Abstract修饰方法

1).抽象方法没有方法体连大括号都没有,只有声明部分加分号结束

2)有抽象方法的类一定是抽象类,抽象类不一定有抽象方法

3)抽象方法一定要在子类中重写抽象方法

3.总结:

I.abstract修饰类:不能new对象,但可以声明引用。

II.abstract修饰方法:只有方法声明,没有方法实现。(需包含在抽象类中)

III.抽象类中不一定由抽象方法,但由抽象方法的类一定是抽象类。

IV.子类继承抽象类之后,必须覆盖父类当中所有的抽象方法,否则子类还是抽象类。

da56f5d4dfcfdad4d6642c6dbc93c163.png

de638df49f1d5a3342eecff86bcb011e.png

weixin_44077166

发布了4 篇原创文章 · 获赞 0 · 访问量 224

私信

关注

标签:Java,构造方法,对象,子类,第三周,多态,学习,父类,方法

来源: https://blog.csdn.net/weixin_44077166/article/details/104445214

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值