对象和类
类:具有共同属性和行为的对象集合。
属性 | 变量(字段 field) |
行为 | 函数(方法 methods) |
对象:
有两方面的含义: | |
---|---|
在现实世界中 | 是客观世界中的一个实体 |
在计算机世界中 | 是一个可标识的存储区域 |
类与对象的关系(区别):
- 类是对象的抽象,对象是类的一个实例(注意:类和对象有时都统称“对象”,为了明确起见,后者称为“对象实例”)
- 例如:“人”就是一个类,而“学生”就是“人”的一个对象实例
面向对象的三大特征
- 封装性
- 继承性
- 多态性
1.封装
- 模块化:将属性和行为封装在类中,程序定义很多类。(更容易理解,更容易设计)
- 信息隐蔽:将类的细节部分隐藏起来,用户只通过受保护的接口访问某个类。(也就是我们公开的才能访问)
class Person{
private int age;
public int getAge(){ return age; }
public void setAge(int a){ age=a; }
String name;
void sayHello(){...}
}
2.继承
- 继承性:父类和子类之间共享数据和方法
- 继承的好处:
1.更好地进行抽象与分类
2.增强代码的重用率
3.提高可维护性
//父类
class Person{
int age;
String name;
void sayHello(){...}
}
//子类
class Student extends Person{
/*自动继承父类数据与方法*/
String school;
double scroe;
void meetTeacher(){...}
}
3.多态
- 不同的对象收到同一个消息(调用方法)可产生完全不同的效果
- 实现的细节则由接受对象自行决定
- 例:
foo(Person p){ p.sayHello(); }
foo(new Student());
foo(new Teacher());
面向对象设计思想的要点:
- 认为客观世界由各种对象组成
- 程序的分析和设计都围绕着:
1.有哪些对象、类
2.每个类有哪些属性、哪些方法
3.类之间的关系(继承、关联等)
4.对象之间发送消息(调用方法)