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