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 empty
struct 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)同样实现了信息的封装,内核源码中 也不乏继承和多态思想的体现。 面向对象思想,不局限于具体语言 .