面向对象的三大特征:封装 继承 多态

封装:

封装的概念:

代码的整合,

封装的层次:

函数的封装: 把一组操作整合在一起
类的封装: 把属性和方法整合在一起
结构的封装:根据操作的性质(模型/控制操作/交互视图)进行结构设计封装

封装的操作:

1.将属性设为private 使属性私有制,只能在本类中被调用
2.提供getter和setter 使字段变成属性
3.基本数据类型的封装类型:
Java中要保证所有的成员都是完全面向对象的,所以java为基本数据类型也设计了一套对象类型(单词一致,首字母大写)
byte – Byte
short-Short
int-Integer
long-Long
float-Float
double-Double
char-Character
boolean-Boolean
实际项目开发中, javabean中的成员(属性)的类型要求用封装类型
赋值时,和基本类型无差别
封装类型和String之间的转换

封装的作用:

从源头控制字段的赋值(setter)
把字段变为只读(只有getter)
把字段的使用限制在类的内部(不加getter和setter,只加private)

拓展的封装思想:
把重要的数据限制在类的内部, 对外提供安全的访问和修改方式

private

只能在本类中被调用
所以对属性的调用或者赋值只能通过封装的get和set方法,或者构造方法

static:

概念:

1.是一个修饰符 , 用来修饰成员字段和成员方法(也可以修饰类)。
2.当静态方法中调用了类中的成员属性,就要求成员属性也必须声明为静态。

作用:

1.被静态修饰的内容只属于类本身,不属于任何对象
2. 产生的原因: 类中存在一类方法,它们和该类的对象并没有直接关系

操作:
在类的外部访问时:
	类名.静态成员
在类的内部访问时:

有一类方法,随着调用它的对象的不同而产生不同的结果 – 实例方法
有一类方法,不会根据调用对象的不同产生变化,只需要类直接调用 – 静态方法
在这里插入图片描述

8种封装类:

byte – Byte
short-Short
int-Integer
long-Long
float-Float
double-Double
char-Character
boolean-Boolean

访问修饰符:

在这里插入图片描述

继承:

关键字 extends super

继承后的初始化顺序:
静态信息加载是按照类里面的顺序加载的,与访问修饰符无关
在这里插入图片描述
在这里插入图片描述

super()关键字:代表父类引用。

在这里插入图片描述
在这里插入图片描述

通过super调用父类指定的构造方法,必须在子类的构造方法的第一行使用super()
访问构造方法时:this和super 都是要抢占第一行的位置,所以一山不容二虎

在这里插入图片描述

重写:

在这里插入图片描述

关于instanceof的使用

if (userDao.login(user) instanceof VipUser ) {
//判断是否是vip用户就是判断返回的对象是不是Vipuser类型的实例(userDao.login(user))这个就是调用方法返回值
VipUser login=(VipUser)userDao.login(user);
//是的话可以强转为vipuser类型的对象,即可调用getvipId方法(vipuser对象才可以的)

多态

多态的使用思想

1.先构建父子的类型的体系
2.在使用类型的时候用父类作为高级(兼容性,拓展)
3.只要声明新的子类类型,它和原有操作就完全兼容

使用场景

当代码中的数据类型是高级类型的时候(返回类型/参数类型/声明对象类型),程序会按照实际的引用来执行子类自己的重写方法

多态:满足继承关系,父类引用指向子类对象
编译时多态,运行时多态

向上转型=隐式转型=自动转型-

父类引用指向子类实例。
可以调用子类重写父类的方法以及父类派生的方法,无法调用子类独有方法。
小类转型为大类

概念
多种形态
Java不允许声明重名的字段/方法(如何判断调用了谁?)
从设计的角度,java的设计思想是名字用一样的,提现不同的功能(区分?)

方法的多态

重载:
在一个类中,存在一组方法,它们的方法名一致,但参数各不相同(数量或类型),这一组方法就构成了重载,用单词overload表示
作用: 让一个同名的方法组通过参数就可以完成不同的调用
重载和返回值无关
重写
在继承过程中,如果子类声明了一个方法,和父类的方法声明完全一致,只有操作不同,父类和子类的方法就构成了重写
重写时,方法的声明部分(访问权限/返回类型/参数/方法名)都必须完全一致
用单词override表示,也被叫做覆盖
作用: 让子类和父类具有相同的行为,但,执行方式却不同,为对象的多态准备
@Override 重写的注解,作用是检查是否符合重写格式

对象的多态

上转型对象
声明为高级类型(父类),传递引用的时候赋值为低级类型(子类), 声明对象就是上转型对象
上转型对象在执行到有重写的方法时,会执行子类
上转型对象可以调用父类中声明的方法(继承)
上转型对象不可以调用子类独有的方法
下转型对象
声明为低级类型(子类),传递引用的时候赋值为高级类型(父类)
装箱和拆箱
调用方法的时候,需要用强转还原原本类型(必须和原类型一致)

向下转型=强制类型转换

子类引用指向父类对象,此处必须进行强转,可以调用子类独有的方法。
Cat temp=(Cat)two;//这里就是子类引用指向父类对象
Instanceof 运算符:判定向下转型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值