尊旭网
当前位置: 尊旭网 > 知识 >

构造函数

时间:2024-09-13 12:44:25 编辑:阿旭

什么是构造函数

构造函数是一种特殊的方法,主要用来在创建对象时初始化对象,即为对象成员变量赋初始值。构造函数与其他方法的区别:1、构造函数的命名必须和类名完全相同;而一般方法则不能和类名相同。2、构造函数的功能主要用于在类的对象创建时定义初始化的状态。它没有返回值,也不能用void来修饰。这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择。3、构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用,一般方法在程序执行到它的时候被调用。4、当定义一个类的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略,不过Java编译器会提供一个默认的构造函数。此默认构造函数是不带参数的。5、当一个类只定义了私有的构造函数,将无法通过new关键字来创建其对象,当一个类没有定义任何构造函数,C#编译器会为其自动生成一个默认的无参的构造函数。构造函数的例子如下:class { public:};{ //函数体 } 如以下定义是合法的: class T { public: //构造函数允许直接写在类定义内,也允许有参数表。 private:int i; }; 当程序中没有析构函数时,系统会自动生成以下构造函数: 即不执行任何操作。//注意若将本代码直接复制进编译器,可能会报错,原因是网页生成时会在代码前加一个中文占位符。//最好将代码再写一次。#include using namespace std; class time { public:{ hour=0; minute=0; sec=0; }private: int hour; int minute; int sec; };{ class time t1;return 0; }

类的构造函数都有哪些类的构造函数都有哪些

类的设计思想:构造函数,可以给点赋初值的构造函数。点的相关参数作为成员变量,如横坐标,纵坐标。设计成员函数,如取得坐标值的函数,此点和原点之间的距离。in c language123456789101112131415161718192021222324class Point{ protected: double x; double y; Point(inx = 0 , iny = 0){//C的缺省构造函数,构造不传入参数时默认值是0 x = inx; y = iny; } ~Point(){ } public: double getX(){ return x; } double getY(){ return y; } void setX(double inx){ x = inx; } void setY(double iny){ y = iny; }};//写C一定不要忘记,类定义结束也有个分号。in java language1234567891011121314151617181920public class Point(){//JAVA对于类的属性要求很严苛,每个元素必须显式注明属性 protected double x; protected double y; public Point(double inx,double iny){ x = inx; y = iny; } public void setX(double inx){ x = inx; } public void setY(double iny){ y = iny; } public double getX(){ return x; } public double getY(){ return y; }}in JS1234567891011121314151617\*JS中万物皆为obj,而没有CLASS, 你可以认为FUNCTION就是一个OBJ *\function Point(inx,iny){//js就比较宽松了,可以随意申请变量,但是JS没有保护这个概念 var x = inx; \\这就是一个私有变量。只能在类内部访问 var y = iny; this.outx = x; \\共有变量,在外部访问时 obj.name 内部访问this.name this.outy = y; function setX(inx){ \\JS有setget设置器,但是如果用那个,看的不是很清楚 this.outx = inx; x = inx; } function setY(iny){ this.outy = iny; y = iny; }}\\对于JS,类的基础源于其原型关键字,这一块可以参考W3CSCHOOL\\http://www.w3school.com.cn/js/js_library_prototype.aspin PHP123456789101112131415161718192021222324x = $inx; $this->y = $iny; } function __destruct(){} public function getX(){ return $this->x; } public function getY(){ return $this->y; } public function setX($inx){ $this->x = $inx; } public function setY(){ $this->y = $iny; }}?>

构造函数的八种方法

构造函数就是一类特殊的方法。他不同于其他方法的地方一、创建对象时构造函数自动运行,而一般方法必须有调用语句调用才能执行二、构造函数与类名必须相同(含大小写)三、构造函数不能有返回值类型实例化的语句中对象后面括号里的参数就是调用构造函数的参数,如果后面啥都没有则调用没有参数的构造函数(如果没有自定义构造函数,编译器会自动合成一个没有参数的构造函数,因此也可以实例化),如果是用T obj = _obj这种形式的实例化语句则调用拷贝/移动构造函数。总之,实例化需要构造函数。构造函数用途: 构造函数用来初始化对象。如果这个理解了,那你以上的疑问就自然解决了。比如你要建立一个铅笔的对象。那么你可以用构造函数来控制它的初始状态,如长度、宽度、颜色等。 2.构造函数的调用: 构造函数也并非是完全自动调用。平时我们new对象的时候其实就是在调用构造函数。比如 (哪铅笔做例子) Pen p=new Pen();//这是继承自Object类的默认构造函数。 Pen p2=new Pen(2,Color.Red);//这个p2实例是有2号粗细的红颜色铅笔。