面向对象:对 Java 语言来说,一切皆是对象。把现实世界中的对象抽象地体现在编程世界中,一个对象代表了某个具体的操作。一个个对象最终组成了完整的程序设计,这些对象可以是独立存在的,也可以是从别的对象继承过来的。对象之间通过相互作用传递信息,实现程序开发。
1、封装
利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。用户无需知道对象内部的细节,但可以通过对象对外提供的接口来访问该对象。
2、继承
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
继承应该遵循里氏替换原则,子类对象必须能够替换掉所有父类对象。
3、多态
多态性是指允许不同子类型的对象对同一消息作出不同的响应。
多态分为编译时多态和运行时多态:
- 编译时多态主要指方法的重载
- 运行时多态指程序中定义的对象引用所指向的具体类型在运行期间才确定
运行时多态有三个条件:
- 继承
- 覆盖(重写)
- 向上转型
三、类(对象)之间的关系
种类、分类的意思。把具体事物的共同特征抽取出来归为一类
抽象的:
类包含:
属性: 静态的(年龄、体重、身高等)
行为: 动态的(吃饭、睡觉、说话)
注意事项:
类名要和文件名一致。
其类名要有意思。
类名上面加一行注释
标准类:
属性、方法、有参/无参构造方法、toString
对象:具体的一个事物,是类的具体体现。
抽象:提取共同特征
类和对象之间的关系:
类是对象的抽象,
对象是类的体现
练习
public class People {
double Weight;//体重
double Height;//身高
String name;//名字
public double getWeight() {
return Weight;
}
public void setWeight(double weight) {
Weight = weight;
}
public People() {
}
public People(double weight, double height, String name) {
Weight = weight;
Height = height;
this.name = name;
}
public void humans() {
System.out.println("体重是:"+this.Weight+"身高是:"+this.Height+"名字是:"+this.name);
}
}
在创建一个文件写:
public static void main(String[] args) {
People people = new People();
people.Weight = 140;
people.Height = 185;
people.name = "张佳乐";
people.humans();
}