OopsinterviewQuestions.面向对象编程(OOP)是一种编程概念,其中所讨论的程序由对象和这些对象的属性组成。

考虑一个关于医疗设施的示例,其中医生和病人都是对象。这些对象具有明显的特征,一个对象的工作不能由另一个对象完成,除非它们是相关的。另外,这些物体之间相互作用就像医生和病人之间相互作用一样而且这种作用通常会产生一个结果。

在我们阐述C编程中面向对象的概念之前,有必要先理解对象的概念。然后,您可以将对象与C中的结构关联起来,并学习如何在C编程中使用结构。

通过参加Udemy.com的在线课程了解更多关于面向对象编程的知识

对象

对象是任何用编程语言表示为结构的真实世界实体。虽然对对象的这种描述有点复杂,但它对于理解在编程语言中使用对象可以实现什么有很大帮助。

让我们假设您正在构建一个软件,以使用相关细节(如姓名、地址、电话号码和员工ID)跟踪公司中的所有员工。在这种情况下,每次必须向系统添加员工时都要编写一段代码来显式地声明每个员工的属性,这将非常不方便。如果您有某种员工详细信息模板,可以在创建员工实体并将其添加到系统时反复使用,那将会方便得多。

您可以将该雇员称为一个对象,您还可以为系统创建任意数量的对象。另一件需要注意的重要事情是,在创建对象并封装其属性后,与特定对象相关的所有属性都保留在对象中。您可以随意访问属性,甚至更改它们,但它们是不同的,特定于对象的,这样您就不会混淆一个对象和另一个对象。

在“C”语言中,您应该知道C不是面向对象的语言。C并非设计了对象的概念,但不应劝阻您进一步阅读,并了解如何在C中实现对象的概念。

结构

结构是一种工具,可用于实现C编程中对象的概念。这将要求您了解一点关于C编程,甚至可能需要您知道如何编译C程序并查看控制台上的输出。

结构的语法

Typedef struct employee {char name[50];标题字符[50];char地址[100];intemp_id;};

如您所见,在结构中有四个变量称为“员工”,并且使用关键字“结构”声明。

该结构定义用作模板(通常称为面向对象编程语言的类),用于创建包含要分配的实际值的其他结构变量。C结构为您提供了这种灵活性,并且更多,但稍后更多。

塑造员工EMP1;

上面的一行简单地声明了一个结构类型变量(Emp1),它类似于OOP语言中的对象。它实际上只是告诉编译器为稍后将分配给变量的值保留一些方便的内存。

emp1.name =“harold”;emp1.title =“首席执行官”;

我们只是将第一个值赋给变量的名称和标题,但是请注意点(.)操作符的语法和使用,它表示变量属于哪个对象。如果你已经创建了另一个名为Emp2的对象,那么你可以如下所示赋值:

Emp2.name =“罗比”;emp1.name =“harold”;

请注意,点运算符如何从分配不同值的混淆到不同对象的混淆来缓解编译器。它可以很容易地区分罗比被分配给第二个对象和哈罗德到第一。

用法

既然您有一个简要概述对象,是时候了解使用情况了。如果C未提供使用这些对象的方法和编程中的相关值,则对象是无用的。值得庆幸的是,它确实是变量和值的容器,但它也是一种非常多功能的语言,可以让您访问这些值。

printf(emp1.name);

让我们来检查上面的代码。如果您想在屏幕上打印第一个员工的名称,这就是您所需要的。语法与在将值分配给对象期间使用的语法相同。您可以根据需要以不同方式使用变量的值:

if(emp1.emp_id> 1 && emp1.emp_id <10){printf(“员工是董事!”);}

上面的代码检查有问题的员工是否是董事。这是通过分析“emp_id”属性的值来完成的,并且您将再次注意到它使用与以前相同的语法。

通过在Udemy.com上乘坐在线类了解从头划分的面向对象的编程

结构=类

对于那些对类的使用更舒服的人来说,你应该知道C不支持类,但它弥补了它的结构。结构等同于类,但再次,它们非常不同。

重要的区别是在类中包含函数,但在结构中不可能。说不能在结构中完全包含函数是错误的,因为可以在结构中声明函数。但是,这个概念非常没用,因为您不能在结构中定义它们。

相反,类允许您在其中包含函数甚至课程定义。这对程序员来说非常方便。大多数程序员们更喜欢使用像Java或C#等完全面向对象的语言,而不是使用像C或基本等结构化语言。

已经说过,结构化语言易于学习,比其他语言更容易掌握,并且它们更接近操作系统的低级实现。由此,我们的意思是内存管理等功能更灵活,弥合低级和高级语言之间的差距。

面向对象编程的新手?在Udemy.com上学习课程

结论

C是一种简单的结构化编程语言,缺乏高度复杂的面向对象编程的清晰度;然而,C语言非常简单,即使在今天也很受欢迎。事实上,Kerningham和Ritchie确保C将始终是所有编程语言的祖先,这些语言即将到来的线路。

C#中的顶级课程

用于初学者的#.NET
里克菲利普斯
4.4 (1,263)
完成c# Unity Game Developer 3D
Ben Tristem, Rick Davidson(游戏开发者)电视团队
4.7 (26808)
畅销书
C#中间:类,接口和OOP
狂舞Hamedani
4.6 (23,125)
畅销书
RPG核心作战创造者:学习中级Unity C#编码
Ben Tristem, Rick Davidson, Sam Pattuzzi(游戏开发)电视团队
4.7 (8,487)
c#高级主题:为技术面试做准备
狂舞Hamedani
4.5 (15107)
完成C#MasterClass
丹尼斯•Panjuta教程。Denis Panjuta的eu
4.5 (12001)
c#和。net中的设计模式
Dmitri Nesteruk
4.4 (7,102)
畅销书
学习使用c#和。net进行并行编程
Dmitri Nesteruk
4.5 (2035)
畅销书

更多C#课程

C#学生也会学习

让你的团队。领导行业。

通过Udemy为Business获取组织的在线课程和数字学习工具库的订阅。

请求一个演示