1、面向对象定义

面向对象编程是一种编程范式或编程风格。它以类或对象作为组织代码的基本单元,并将封装、抽象、继承、多态四个特性,作为代码设计和实现的基石。 面向对象编程语言是支持类或对象的语法机制,并有现成的语法机制,能方便地实现面 向对象编程四大特性(封装、抽象、继承、多态)的编程语言。

2、面向过程定义

面向过程编程也是一种编程范式或编程风格。它以过程(可以为理解方法、函数、操作)作为组织代码的基本单元,以数据(可以理解为成员变量、属性)与方法相分离为 最主要的特点。 它最大的特点是不支持类和对象两个语法概念,不支持丰富的面向对象编程特性(比如继承、多态、封装)。

  1. struct User {
  2. char name[64];
  3. int age;
  4. char gender[16];
  5. };
  6. struct User parse_to_user(char* text) {
  7. // 将 text(“小王 &28& 男”) 解析成结构体 struct User
  8. }
  9. char* format_to_text(struct User user) {
  10. // 将结构体 struct User 格式化成文本(" 小王\t28\t 男 ")
  11. }
  12. void sort_users_by_age(struct User users[]) {
  13. // 按照年龄从小到大排序 users
  14. }
  15. void format_user_file(char* origin_file_path, char* new_file_path) {
  16. // open files...
  17. struct User users[1024];
  18. // 假设最大 1024 个用户
  19. int count = 0;
  20. while(1) {
  21. // read until the file is empty
  22. struct User user = parse_to_user(line);
  23. users[count++] = user;
  24. }
  25. }
  26. sort_users_by_age(users);
  27. for (int i = 0; i < count; ++i) {
  28. char* formatted_user_text = format_to_text(users[i]);
  29. // write to new file...
  30. }
  31. int main(char** args, int argv) {
  32. format_user_file("/home/zheng/user.txt", "/home/zheng/formatted_users.txt");
  33. }

3、面向对象与面向过程区别

面向过程和面向对象最基本的区别就是,代码的组织方式 不同。面向过程风格的代码被组织成了一组方法集合及其数据结构(struct User),方法 和数据结构的定义是分开的。面向对象风格的代码被组织成一组类,方法和数据结构被绑定 一起,定义在类中。

4、面向对象编程相比面向过程编程有哪些优势?

4.1、 OOP更加能够应对大规模复杂程序的开发

4. 2、OOP 风格的代码更易复用、易扩展、易维护

4.3、OOP 语言更加人性化、更加高级、更加智能

4.4、总结

操作系统虽然是用面向过程的C语言实现的 但是其设计逻辑是面向对象的。 C语言没有类和对象的概念,但是用结构体(struct)同样实现了信息的封装,内核源码中 也不乏继承和多态思想的体现。 面向对象思想,不局限于具体语言 .