今天鞋百科给各位分享构造函数如何区分的知识,其中也会对在Java中构造函数和一般函数的区别是什么(java构造函数和普通函数的区别)进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在我们开始吧!
在Java中构造函数和一般函数的区别是什么
C#问题: 构造函数与静态构造函数之间的区别
静态构造函数
区别:
http://hi.baidu.com/jonnysuen/blog/item/e4165d58181b7a232834f019.html
静态构造函数用于初始化任何 静态数据,或用于执行仅需执行一次的特定操作。在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数。
静态构造函数具有以下特点:
静态构造函数既没有访问修饰符,也没有参数。
在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化 类。
无法直接调用静态构造函数。
在程序中,用户无法控制何时执行静态构造函数。
静态构造函数的典型用途是:当类使用日志文件时,将使用这种构造函数向日志文件中写入项。
静态构造函数在为非托管代码创建包装类时也很有用,此时该构造函数可以调用 LoadLibrary 方法。
public class Bus
{
// Static constructor:
static Bus()
{
System.Console.WriteLine("The static constructor invoked.");
}
public static void Drive()
{
System.Console.WriteLine("The Drive method invoked.");
}
}
class TestBus
{
static void Main()
{
Bus.Drive();
}
}
构造函数和析构函数的区别
构造函数和默认构造函数有什么区别
构造函数的定义:
构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。
构造函数什么时候使用:在创建对象时调用构造函数,构造函数来初始化成员变量。可以有多个构造函数,他们的区别就是参数不同。所有可以用不同的构造函数初始化一个对象。
默认的构造函数:无参数,就是
对象1 = new 类1();自己定义的构造函数:有参数,比如
class A{ int a; A();//默认是这样 A(int aa){ a = aa; };//自定义是这样}对象aaa = new A();//默认构造对象bbb = new A(250);// 自定义构造自定义的构造函数可以灵活地初始化类内成员
c++中为什么基类中只有带参数的构造函数时,派生类中一定要显示定义构造函数,并写出基类的构造函数及参数
因为创建派生类对象时要调用基类的构造函数,当基类没有定义构函数时就调用默认无参数的构造函数。当只定义了有参的构造函数时就调用有参的构造函数,所以当派生类没有给基类传递参数时就会出现错误。解决方法:可以在基类中重载一个无参构造函数,或者给有参构造函数的参数设置默认值。
C++中,默认构造函数、无参构造函数、带有默认值的构造函数,究竟怎么区分??
默认构造函数就是:在你不提供任何构造函数的情况下,系统给出的一个不带参数,不包含函数代码的构造函数。
在创建对象时调用构造函数,构造函数来初始化成员变量。可以有多个构造函数,他们的区别就是参数不同。所有可以用不同的构造函数初始化一个对象。
默认构造函数,就是调用构造函数时,不必给出实参的构造函数。
在一个类中定义了全部是默认参数的构造函数后,不能再定义重载构造函数。例:
Box(int =10,int =10,int =10); 1
Box(); 2
Box(int,int); 3
若有以下定义语句:
Box box1; //是调用上面的第一个默认参数的构造函数,还是第二个默认构造函数
Box box2(15,30); //是调用上面的第一个默认参数的构造函数,还是第三个构造函数
扩展资料:
第2个构造函数是最基本,最原始的构造函数;第1个就是形参都已默认,指定了的构造函数,调用时实参可以传过去1个,2个,3个,甚至0个数据。
比如,第一个语句:Box box1;我们可以认为他是直接调用第2个构造函数,也可以认为他是调用了第1个构造函数,只不过没有实参传递过去而已,这样就产生了歧义。
同理,第二个语句,我们可以理解为它调用了第3 个构造函数。但同时,理解为它调用第1个构造函数,只不过仅传过去2个实参,也是可是说得通的。这也就产生了歧义。
事实上,上面3个函数中任意一个都可以说是另两个的重载函数,那么“在一个类中定义了全部是默认参数的构造函数后,不能再定义重载构造函数”就很好容易理解了
参考资料来源:百度百科——默认构造函数
JAVA中构造方法和普通方法的区别
1.构造函数的命名必须和类名完全相同;在java中普通函数可以和构造函数同名,但是必须带有返回值。
2.构造函数的功能主要用于在类的对象创建时定义初始化的状态.它没有返回值,也不能用void来修饰.这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择.而其他方法都有返回值.即使是void返回值,尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的.
3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用,一般方法在程序执行到它的时候被调用.
4.当定义一个类的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略,不过Java编译器会提供一个默认的构造函数.此默认构造函数是不带参数的.而一般方法不存在这一特点
c#里的结构为什么不能有默认构造函数?
由于结构的副本由编译器自动创建和销毁,因此不需要使用默认构造函数和析构函数。实际上,编译器通过为所有字段赋予默认值来实现默认构造函数。
结构是值类型。那么如果从结构创建一个对象并将该对象赋给某个变量,则该变量包含结构的全部值。复制包含结构的变量时,将复制所有数据,对新副本所做的任何修改都不会改变旧副本的数据。由于结构不使用引用,因此结构没有标识;无法区分具有相同数据的两个值类型实例。
什么是构造函数?求答案
是构造方法,不是构造函数吧?构造函数 - 简介构造函数 是一种特殊的方法 主要用来在创建对象时初始化对象 即为对象成员变量赋初始值 总与new运算符一起使用在创建对象的语句中 特别的一个类可以有多个构造函数 可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载 构造函数 - 构造函数与其他方法的区别1.构造函数的命名必须和类名完全相同;而一般方法则不能和类名相同. 2.构造函数的功能主要用于在类的对象创建时定义初始化的状态.它没有返回值,也不能用void来修饰.这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择.而其他方法都有返回值.即使是void返回值,尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的. 3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用,一般方法在程序执行到它的时候被调用. 4.当定义一个类的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略,不过Java编译器会提供一个默认的构造函数.此默认构造函数是不带参数的.而一般方法不存在这一特点 5当一个类只定义了私有的构造函数,将无法通过new关键字来创建其对象,当一个类没有定义任何构造函数,C#编译器会为其自动生成一个默认的无参的构造函数。 构造函数 - C++中的构造函数C++的构造函数定义格式为: 构造函数 class { public: (参数表) //...(还可以声明其它成员函数) }; ::(参数表) { //函数体 } 如以下定义是合法的: class T { public: T(int a=0){i=a;}//构造函数允许直接写在类定义内,也允许有参数表。 private:int i; }; 当程序中没有析构函数时,系统会自动生成以下构造函数: ::(){},即不执行任何操作。 构造函数 - C++例子//注意若将本代码直接复制进编译器,可能会报错,原因是网页生成时会在代码前加一个中文占位符 //最好将代码再写一次 #include using namespace std; class time { public: time() //constructor.构造函数 { hour=0; minute=0; sec=0; } void set_time(); void show_time(); private: int hour; int minute; int sec; }; int main() { class time t1; t1.show_time(); t1.set_time(); t1.show_time(); return 0; } void time::set_time() { cin >>hour; cin >>minute; cin >>sec; } void time::show_time() { coutname="lisi"; $this->age=28; } function say(){ echo "my name is ".$this->name.""; echo "my age is ".$this->age.""; } } $per=new person(); $per->say(); $per->name="zhangsan"; $per->age=26; $per->say(); ?> C#例子 构造函数是在创建给定类型的对象时执行的类方法。构造函数具有与类相同的名称,它通常初始化新对象的数据成员。 在下面的示例中,使用一个简单的构造函数定义了名为 Taxi 的类。然后使用 new 运算符来实例化该类。在为新对象分配内存之后,new 运算符立即调用 Taxi 构造函数。 public class Taxi{ public bool isInitialized; public Taxi() { isInitialized = true; }}class TestTaxi{ static void Main() { Taxi t = new Taxi(); System.Console.WriteLine(t.isInitialized); }}]