面型对象的三大特征
- 封装性
- 继承性
- 多态性
1.封装性
模块化:将属性和行为封装在类中,程序定义很多类
信息隐蔽:将类的细节部分隐藏起来,用户只通过受保护的接口访问某个类。
class Person{
private int age;//封装年龄
public int getAge(){return age;}
public void setAge(int a){age=a;}//使用者通过输出年龄或输入年龄
string name;
void sayHello(){......}
}
2.继承性(inheritance)
继承性
- 父类和子类之间共享数据的方法
继承的好处
- 更好的进行抽象与分类
- 增强代码的重用率
- 提高可维护性
父类
class Person{
int age;
string name;
void sayHello(){......}
}
子类
class Student extends Person{
string school;
double score;
void meetTeacher(){......}
}
3.多态性(polymorphism)
多态
- 不同的对象收到同一消息(调用方法)可产生完全不同的效果
- 简单的说就是写同一段代码系统可以自动识别她应该怎么做,执行不同的行为
- 实现的细节则由接收对象自行决定
foo(Person p){p.sayHello;}//调用Person对象打招呼sayHello
foo(new Student());//如果调用时是学生,她会用学生的打招呼函数
foo(new Teacher());//如果是老师,则会用老师的打招呼函数
面向对象设计思想的要点
认为客观世界有各种对象组成
程序的分析和设计都围绕着
- 有哪些对象类
- 每个类有哪些属性,哪些方法
- 类之间的关系(继承、关联等)
- 对象之间发送消息(调用方法)
文本转载自:中国大学MOOC “Java程序设计 - 唐大仕 北京大学” 课程PPT 感谢老师!!!