8.29- 面向对象和面向过程的区别

两者的主要区别在于解决问题的方式不同:

  • 面向过程把解决问题的过程拆成一个个方法,通过一个个方法的执行解决问题。
  • 面向对象会先抽象出对象,然后用对象执行方法的方式解决问题。

另外,面向对象开发的程序一般更易维护、易复用、易扩展。

下面是一个求圆的面积和周长的示例,简单分别展示了面向对象和面向过程两种不同的解决方案。

面向对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class Circle {
// 定义圆的半径
private double radius;

// 构造函数
public Circle(double radius) {
this.radius = radius;
}

// 计算圆的面积
public double getArea() {
return Math.PI * radius * radius;
}

// 计算圆的周长
public double getPerimeter() {
return 2 * Math.PI * radius;
}

public static void main(String[] args) {
// 创建一个半径为3的圆
Circle circle = new Circle(3.0);

// 输出圆的面积和周长
System.out.println("圆的面积为:" + circle.getArea());
System.out.println("圆的周长为:" + circle.getPerimeter());
}
}

我们定义了一个 Circle 类来表示圆,该类包含了圆的半径属性和计算面积、周长的方法。

面向过程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Main {
public static void main(String[] args) {
// 定义圆的半径
double radius = 3.0;

// 计算圆的面积和周长
double area = Math.PI * radius * radius;
double perimeter = 2 * Math.PI * radius;

// 输出圆的面积和周长
System.out.println("圆的面积为:" + area);
System.out.println("圆的周长为:" + perimeter);
}
}

我们直接定义了圆的半径,并使用该半径直接计算出圆的面积和周长。