面向对象编程
面向对象编程
面向对象编程的概述
简单的说,面向对象编程(Object Oriented Programming,简称OOP)描述的是对象之间的相互作用。
面向对象编程与面向过程编程的区别:
过程化程序设计先确定算法,再确定数据结构;面向对象编程先确定数据结构,再确定运算。
面向过程编程的程序员,习惯于建立数据结构存放数据并定义方法(函数)来操作数据;面向对象编程的程序员则构造一个对象模型,将数据与方法组织在一起。
类和对象
|- 把相似的对象划归成一个类。
|- 在软件中,类,就是一个模板,它定义了通用于一个特定种类的所有对象的状态(变量)和行为(方法)。
|- 类是创建对象的模板,对象是类的实例。
面向对象程序设计
|- 从程序的设计角度看,类是面向对象程序中最基本的程序单元。类实质上定义的是一种数据类型,这种数据类型就是对象类型。所以我们可以使用类名称来声明对象变量。
|- 声明对象变量之后,还不能使用对象。必须用运算符new创建对象实体之后,才能使用对象。
举例:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public class Point {
int x ,y; // 成员变量
public void output() {// 成员方法
System.out.println(x);
System.out.println(y);
}
public static void main(String[] args) {
Point pt;
pt = new Point();
pt.x = 10;
pt.y = 20;
pt.output();
}
}
面向对象编程的难点
|- 掌握面向对象的难处在于思路的转换。
我们通常习惯于解决问题的方法,而不是考虑将问题抽象成对象再去考虑。
一个简单的例子
|- 编写一个驾驶汽车的方法
|- 面向过程的程序设计:
|- 编写一个方法:void driveCar();
|- 面向对象的程序设计:
将一辆汽车看成一个对象,将所有汽车对象的共性抽取出来,设计一个类Car,类中有一个方法void drive(),用Car这个类实例化一个具体的对象car,调用:car.drive()。