面向对象的特征(封装、继承、多态)
-
封装的概念:类中成员,不进行封装:不安全测试
1).现在在当前类中,如果Student类中的成员,不进行封装,随便修改,访问!
2).给成员提供private权限之后,外部根本没法用!
2.权限的介绍
访问权限修饰符: private < 默认不写(注意不要添加default修饰)< protected < public
private :私有的 最小权限,被它修饰的成员只能够在本类中可以访问到;
public :公共的 最大权限,任何地方和任何人都能访问;
3.封装的步骤及分析
在Java 中的体现及步骤
1)把类中的字段私有化;
2)给每一个字段都提供一组getter setter方法 (方法的规范写法);setXxx,
在测试类中尝试创建对象,并通过调用getter setter方法完成 对字段的赋值和取值;
3)提供一个无参数的构造方法
4.封装的注意事项
注意:如果字段类型是boolean sex;
方法名字规范:
setSex
getSex---变成---->isSex
5.继承的概念
继承的概念:
1).问题:类的公共属性【字段,方法】
2).把公共的属性提取出来形成一个公共的类,让其他的类去继承:减少代码的冗余度
3).系列认识结合课件
6.继承的语法及可继承的东西
继承的语法:
class A{}
class B extends A{}
B这个类继承到了A类
1) 思考 : 一个父类中可能有哪些? 字段 方法 构造方法
2) 思考 : 可能还和访问权限有关 private public
3)验证 :非私有的字段 和方法 可以被继承到(暂时这样记忆-主要是从是否可以访问的层面考虑)
4)构造方法不能够被继承:java规定
5)子类可以继承到父类的特性class MyFrame extends java.awt.Frame{}
7.继承的特点
1).Java中类的继承只能够是单继承:
【一个儿子只有一个亲爹】
2)可以支持多重继承
【间接父类:类是可以有老祖宗的】
3)每一个类都有一个直接父类: 【一个人一定是有亲爹的】
如果没有看到显示的继承代码,那么就隐式继承就Object
【你自己没有整一个爹,安排一个爹】
8.多态的概念+参考课件
1)Animal aml = new Person();//一个动物变量中,可能存放子类对象的多种可能
2.)理解:使用aml:编译是看的是Animal类型,运行时看的是实际存放的对象[真实类型]
3)官方概念:编译时跟运行时类型不一致就产生了多态
4)民间理解:父类类型的变量,存放子类类型的对象,可能存放子类类型的对象有多种可能
5)多态存在的前提:必须有继承关系
9.多态的编译时运行时过程
1)编译时,看的是父类类型,会现在父类中,看有不有对应的方法,如果没有继续向上找{更高父类}
如果找到了,编译通过,如果找不到,编译失败报错
2)运行时:看真实类型,如果在真实类型中找到了,就运行真实类型中的函数,如果没有找到,向上找