1、面向对象定义
面向对象编程是一种编程范式或编程风格。它以类或对象作为组织代码的基本单元,并将封装、抽象、继承、多态四个特性,作为代码设计和实现的基石。 面向对象编程语言是支持类或对象的语法机制,并有现成的语法机制,能方便地实现面 向对象编程四大特性(封装、抽象、继承、多态)的编程语言。
2、面向过程定义
面向过程编程也是一种编程范式或编程风格。它以过程(可以为理解方法、函数、操作)作为组织代码的基本单元,以数据(可以理解为成员变量、属性)与方法相分离为 最主要的特点。 它最大的特点是不支持类和对象两个语法概念,不支持丰富的面向对象编程特性(比如继承、多态、封装)。
struct User {char name[64];int age;char gender[16];};struct User parse_to_user(char* text) {// 将 text(“小王 &28& 男”) 解析成结构体 struct User}char* format_to_text(struct User user) {// 将结构体 struct User 格式化成文本(" 小王\t28\t 男 ")}void sort_users_by_age(struct User users[]) {// 按照年龄从小到大排序 users}void format_user_file(char* origin_file_path, char* new_file_path) {// open files...struct User users[1024];// 假设最大 1024 个用户int count = 0;while(1) {// read until the file is emptystruct User user = parse_to_user(line);users[count++] = user;}}sort_users_by_age(users);for (int i = 0; i < count; ++i) {char* formatted_user_text = format_to_text(users[i]);// write to new file...}int main(char** args, int argv) {format_user_file("/home/zheng/user.txt", "/home/zheng/formatted_users.txt");}
3、面向对象与面向过程区别
面向过程和面向对象最基本的区别就是,代码的组织方式 不同。面向过程风格的代码被组织成了一组方法集合及其数据结构(struct User),方法 和数据结构的定义是分开的。面向对象风格的代码被组织成一组类,方法和数据结构被绑定 一起,定义在类中。
4、面向对象编程相比面向过程编程有哪些优势?
4.1、 OOP更加能够应对大规模复杂程序的开发
4. 2、OOP 风格的代码更易复用、易扩展、易维护
4.3、OOP 语言更加人性化、更加高级、更加智能
4.4、总结
操作系统虽然是用面向过程的C语言实现的 但是其设计逻辑是面向对象的。 C语言没有类和对象的概念,但是用结构体(struct)同样实现了信息的封装,内核源码中 也不乏继承和多态思想的体现。 面向对象思想,不局限于具体语言 .
