SQL Server 2022 新语法:IS [NOT] DISTINCT FROM 彻底解决 NULL 比较难题
2026/4/15 6:21:41
C是面向过程的语言
Java和Python是面向对象的语言。
两者最直观的区别就是常见算法的实现方式。
比如说数组的排序算法。
Java既可以直接调用数组的内置方法sort实现排序,
也可以自己手写排序算法的算法来实现。
而C语言只能通过后者来实现。
因为面向对象的核心是封装继承多态,
其中封装的这一特性将常见的算法封装到系统类对象里形成方法供程序员来调用。
而面向过程的核心是程序员通过自身来实现算法的过程。
因此面向对象的语言可以轻松实现面向过程,
但面向过程的语言确难以实现面向对象。
// 1. 使用封装好的方法(面向对象方式)importjava.util.Arrays;int[]arr={5,2,8,1};Arrays.sort(arr);// 直接调用类库方法// 2. 自己实现算法(面向过程方式)publicvoidbubbleSort(int[]arr){for(inti=0;i<arr.length-1;i++){for(intj=0;j<arr.length-1-i;j++){if(arr[j]>arr[j+1]){inttemp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}}// 只能通过自己写的函数实现算法voidbubbleSort(intarr[],intn){for(inti=0;i<n-1;i++){for(intj=0;j<n-i-1;j++){if(arr[j]>arr[j+1]){inttemp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}}// C标准库提供qsort函数(仍是过程式)#include<stdlib.h>intcompare(constvoid*a,constvoid*b){return(*(int*)a-*(int*)b);}qsort(arr,n,sizeof(int),compare);# 1. 使用内置方法(面向对象方式)arr=[5,2,8,1]arr.sort()//列表对象的方法# 2. 使用内置函数sorted_arr=sorted(arr)# 3. 自己实现算法(支持多种范式)defbubble_sort(arr):n=len(arr)foriinrange(n-1):forjinrange(n-i-1):ifarr[j]>arr[j+1]:arr[j],arr[j+1]=arr[j+1],arr[j]| 范式 | 封装形式 | 代码复用性 |
|---|---|---|
| 面向对象 | 类方法 将算法封装在对象中 | 高,直接调用 |
| 面向过程 | 函数 独立于数据存在 | 中,需显式调用 |
向下兼容性:
实际应用:
| 特性 | 面向过程 © | 面向对象 (Java/Python) |
|---|---|---|
| 组织方式 | 函数为中心 | 对象为中心 |
| 数据与操作 | 分离 | 结合(封装) |
| 代码复用 | 函数调用 | 继承、组合 |
| 典型应用 | 系统编程、嵌入式 | 应用软件、Web开发 |
| 学习曲线 | 相对简单 | 概念较多 |
qsort()),但本质仍是过程式调用核心结论:编程范式是解决问题的不同思维方式,选择取决于具体需求和场景。掌握多种范式能让你成为更全面的程序员。