面向对象的三大特征
封装性
继承性
多态性
封装性
- 模块化:将属性和行为封装在类中,程序定义很多类
- 信息隐蔽:将类的细节部分隐藏起来
用户只通过受保护的接口访问某个类
class Person{
private int age;
public int getAge(){ return age;}
public void setAge(int a){ age=a;}
String name;
void sayHello(){...}
}
继承(inheritance)
- 继承性
父类和子类之间共享数据和方法 - 继承的好处
(1)更好地进行抽象与分类
(2)增强代码的重用率
(3)提高可维护性
class Person{
int age;
String name;
void sayHello(){...}
}
class Student extends Person{
String school;
double score;
void meetTeacher(){...}
}
多态(polymorphism)
- 多态
(1)不同的对象收到同一个消息(调用方法)可产生完全不同的效果
(2)实现的细节则由接收对象自行决定
foo( Person p ){ p.sayHello(); }
foo( new Student() );
foo( new Teacher() );
面向对象设计思想的要点
- 认为客观世界由各种对象组成
- 程序的分析和设计都围绕着
(1)有哪些对象类
(2)每个类有哪些属性、哪些办法
(3)类之间的关系(继承、关联等)
(4)对象之间发送消息(调用方法)