1面向过程
概念:面对一个问题,考虑从顶向下逐步求精去分析问题和解决问题
特征:自顶向下逐步求精,不去考虑对象的存在
2面向对象
概念:面对一个问题,考虑解决该问题需要多少个对象,每个对象有哪些特征(属性、成员变量)和行为(方法),以及对象之间如何协作,最后调用对象的方法来解决问题
步骤:1 定义类
2 在类中定义属性和方法
3 创建对象
4 调用方法
3面向对象的特征
3.1封装
1相同属性和行为的一组对象封装成一个类
2属性私有化,为属性提供getter/setter方法访问属性,好处确保数据完整性,过滤掉脏数据(int age=-1)
3最小化公开原则,首先考虑private,如果你定义的方法要让外界使用(当前类的外部),可以将其公有化public
4隐藏实现细节
小结:封装涉及的关键字 private friendly(默认) 如果一个属性和方法没有定义访问修饰符,Java编译器会默认定义一个friendly(友善的) protected(保护)用户继承 public( any call) 任何地方都可以调用
访问修饰符 | 同一类 | 同一包 | 继承(子类) | 包外部 |
---|---|---|---|---|
(1)private | Yes | NO | NO | NO |
(2)friendly 默认(不是java关键字) | Yes | Yes | NO | NO |
(3)protected | Yes | Yes | Yes | NO |
(4)public | Yes | Yes | Yes | Yes |
3.2继承
is a的关系
父类(超类、基类)
子类 (导出类)
继承是父和子之间的关系
涉及的关键字:extends
Java只支持单继承
父类:通常定义共有的行为(所有的人类都能够吃饭、睡觉)
子类:定义特殊的行为(学生能够学习),还可以覆盖(重写)父类的行为(方法)
小结:继承是一个垂直关系父在上,子在下
继承能够达到代码的重复使用(复用),子类可以复用父类的非私有行为
子类也可以覆盖父类的行为
抽象类
不能new对象的类叫做抽象类
注意:工作中如果定义了抽象类,最好为抽象类定义抽象方法,否则会失去意义
super超级
java中super表示父类的对象
3.3多态
特征:编译期不知道创建啥类型的对象,只有在运行期才知道
小结:程序在运行期创建对象的类型(编译期不知道对象的确切类型,sh在运行期才知道是什么类型),调用恰当的方法。
多态:能够将做什么和怎么做分离
支撑点:1方法的覆盖
2向上转型