析构函数
构造函数与析构函数可以看做类的事件函数,不能被显式调用(主动调用),而是当对象在创建或销毁时由系统自动调用,用于处理初始化(初始化成员变量、设置参数等准备工作)和收尾(释放对象运行时动态创建的对象,释放其内存)工作。
面向对象(ObjectOriented)是软件开发方法,一种编程范式。
面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。
面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。
先说一下面向过程和面向对象,这是两种思想,它们都能达到用程序来完成一件事情的能力。
只不过思维方式不一样而已。
面向过程是把一件事一项工程分解成为一个个小的功能,用一个个函数来实现
面向对象是把事情看成是一个个小的对象组成的,或者说一个个小部分组成的,这些对象之间的相互关系,构成了整个项目
在面向对象的思想中,万物皆对象,我是,你是,他也是。
而"类",就是对象的抽象或者说是概括。比如,我你他都可以概括为人类。
总的来说,类是抽象的虚的,而对象是一个个活生生的具体的事物。
人是一个类,我你他就是对象。
一般的面向对象程序设计方法都是先设计一个类,然后由这个类产生一个对象。
之后是对这个对象进行相关 *** 作。
要说明一点: *** 作是对对象进行的,没有对象就无所谓 *** 作。
下面说说如何设计一个类,
类是有一些属性和功能封装起来的。
在面向过程的思想里,一个程序一般都是由一个个函数组成的,这些函数之间相互调用,
就形成了一个完整的程序,解决了一个问题。它的基本结构是:
函数一()
{
……;
}
函数二()
{
……;
}
……
主函数ǎ
{
……;
}
但是在面向对象的思想中,是把这些都封装起来,形成一个类。
class 类名
{
函数一()
{
……;
}
函数二()
{
……;
}
……
}
然后由这个类产生一个对象,比如:我们把一个类的类名起为 student
那么产生对象的方法就是: student s1;
这里s1是一个对象,产生了这个对象以后,才可以进行相关 *** 作。
*** 作方法如: s1函数一();
等等。具体的细节在此就不说了,此文只说思想。
说得再明白一点就是,把具体的实现过程放在类里面,之后产生一个对象,有对象调用相关 *** 作。
犹如把面向过程里的函数都封装进了类里,然后再由对象来 *** 作。
一个类主要就是封装,一般把它当成一个模块,在需要的时候可以让其他类调用。
类是一个抽象,一个概括,把一些有共同特征的东西抽象化,提出它们的公共部分,封装在一起。
关于封装,上文已经说过,就是把一些属性和功能装在一个容器里面。
下面我用一个游戏来解说一下:
假设我们要做一个小游戏,类似于网游里面的打怪,为简单起见,认为怪不打人,只让人打,
他的血不断减少,直到死亡。
把所有怪物的共同特征抽象出来,于是我们得到一个类:怪物
class 怪物
{
char 怪物名;
int 血;
怪物(怪物名n,血n) /构造函数/
{
怪物名=怪物名n;
血=血n;
}
被打函数()
{
血减少;
}
判断函数()
{
if (血==0)
printf("你胜利了!");
}
玩游戏()
{
while (血 > 0)
{
被打函数();
判断函数();
}
}
}
这样,就定义了一个怪物类,他有属性:怪物名、血,有功能:构造、被打、判断
根据这个,就可以产生对象了。
一个类可以产生任意多的对象,这些对象根据构造函数的不同来区别。
我们先继续来写我们的程序
main主函数
void main()
{
/产生对象/
怪物 怪物1("狼",5000);
怪物 怪物2("虎",8000);
怪物 怪物3("蛇",3000);
/有了几个对象以后才能开始我们的游戏/
怪物1玩游戏();
怪物2玩游戏();
怪物3玩游戏();
}
再这个主函数中,我们建立了三个对象,它们共用一个类。
可以看到,类相当于一个组件,一个模块,我们在需要的时候只要建立它的对象,就能实现他所封装的功
能。
这就是面向对象的优点,可以重用,不必每一次用到时都重写。
说了这么多,自己感觉还是没说明白,真有点只可意味不可言传的感觉。
其实要是书看的多了,真正认真地写上几个东西,就能够理解了,无形之中就会有感觉的。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> v(3);
for (int &n : v)
cin >> n;
sort(vbegin(), vend());
for (int &n : v)
cout << n << ends;
return 0;
}
1、java。
Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
Java编程语言的风格十分接近C++语言。继承了C++语言面向对象技术的核心,舍弃了容易引起错误的指针,以引用取代;移除了C++中的运算符重载和多重继承特性,用接口取代;增加垃圾回收器功能。
2、c++。
C++是一种使用广泛的计算机程序设计语言。它是一种通用程序设计语言,支持多重编程模式,例如过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计和设计模式等。
3、c#。
C#是微软推出的一种基于NET框架的、面向对象的高级编程语言。C#以NET框架类库作为基础,拥有类似Visual Basic的快速开发能力。
C#由安德斯·海尔斯伯格主持开发,微软在2000年发布了这种语言,希望借助这种语言来取代Java。C#已经成为Ecma国际和国际标准组织的标准规范。
4、python 。
Python是一种面向对象的动态类型语言,它是解释型、高级编程、通用型编程语言,由吉多·范罗苏姆创造,第一版发布于1991年。
python相比于C++或Java,Python让开发者能够用更少的代码表达想法。不管是小型还是大型程序,该语言都试图让程序的结构清晰明了。
5、golang。
Go(又称Golang)是Google开发的一种面向对象的静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。
Go的语法接近C语言,但对于变量的声明有所不同。Go支持垃圾回收功能。Go的并行模型采取类似模型的其他语言包括Occam和Limbo,但它也具有Pi运算的特征,比如通道传输。在18版本中开放插件(Plugin)的支持,这意味着现在能从Go中动态加载部分函数。
与C++相比,Go并不包括如枚举、异常处理、继承、泛型、断言、虚函数等功能,但增加了 切片(Slice) 型、并发、管道、垃圾回收、接口(Interface)等特性的语言级支持。
参考资料来源:百度百科——java
参考资料来源:百度百科——c++
参考资料来源:百度百科——c#
参考资料来源:百度百科——python
参考资料来源:百度百科——go
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
扩展资料面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象,这方面的文章非常多。但是,明确地给出对象的定义或说明对象的定义的非常少,至少现在还没有发现。起初,“面向对象”是专指在程序设计中采用封装、继承、抽象等设计。
面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。“面向过程”也可称之为“面向记录”编程思想,他们不支持丰富的“面向对象”特性(比如继承、多态),并且它们不允许混合持久化状态和域逻辑。
参考资料
百度百科_面向对象
百度百科_面向过程
1、Smalltalk:
Smalltalk,被公认为历史上第二个面向对象的程序设计语言,和第一个真正的集成开发环境(IDE)。
Smalltalk对其它众多的程序设计语言的产生起到了极大的推动作用,主要有:C++,C#,Objective-C,Actor,Java和Ruby等。90年代的许多软件开发思想得利于Smalltalk,例如设计模式、敏捷编程和代码重构等。
2、Eiffel:
Eiffel语言是继Smalltalk-80之后的另一个“纯”OOPL。这种语言是由OOP领域中著名的专家Bertrand Meyer等人20世纪80年代后期在ISE公司开发的,它的主要特点是全面的静态类型化、有大量的开发工具、支持多继承。
3、C++:
C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。
4、java:
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
扩展资料
面向对象语言既可以用面向对象语言实现,也可以用非面向对象语言实现。面向对象程序设计语言本身就支持面向对象概念的实现,其编译程序可以自动地实现面向对象概念到目标程序的映射。
面向对象的采用方法从问题域表示到面向对象分析,再到面向对象设计与实现始终稳定不变。一致的表示方法不但有利于在软件开发过程中始终使用统一的概念,也有利于维护人员理解软件的各种配置成分。
以上就是关于在面相对象程序设计中,与构造函数相对应的函数称为什么函数全部的内容,包括:在面相对象程序设计中,与构造函数相对应的函数称为什么函数、什么是面向对象、什么叫面相对象等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)