【基础知识】——构造函数

网友投稿 720 2022-10-26

【基础知识】——构造函数

【基础知识】——构造函数

什么是构造函数与一般方法的区别构造函数种类总结

构造函数在学习C#的时候就略有接触,可是那个时候之间简单略知一二。在学习JS的时候再次接触到这个东西,听的云里雾里的所以尝试着总结一下。本文主要详细的总结一下构造函数是什么,与一般方法的区别,有几种,为什么要用?

什么是构造函数

构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。

例如:

public class ProgramTest { int j; string strj; public ProgramTest(int i) { j = 2; Console.WriteLine("I am ProgramTest,i={0},j={1}", i, j); } public ProgramTest(string str) { strj = "test"; Console.WriteLine("I am ProgramTest,str={0},strj={1}", str, strj); } static void Main(string[] args) { ProgramTest pt = new ProgramTest("j"); ProgramTest pt1 = new ProgramTest(1); Console.Read(); } } }

与一般方法的区别

1.构造函数的命名必须和类名完全相同;而一般方法则不能和类名相同。 2.构造函数的功能主要用于在类的对象创建时定义初始化的状态.它没有返回值,也不能用void来修饰.这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择.而其他方法都有返回值.即使是void返回值,尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的。 3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用,一般方法在程序执行到它的时候被调用。 4.当定义一个类的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略,用EA生成框架的时候每个类会提供一个默认的构造函数.此默认构造函数是不带参数的.而一般方法不存在这一特点 简单的来说构造函数就是用来创建对象用的,说的专业些叫实例化对象。

构造函数种类

1、 实例构造函数

使用new表达式创建某个类的对象时,会使用实例构造函数创建和初始化所有实例成员变量。可以有参数也可以没有参数。具体的例子见上。

2、 私有构造函数

私有构造函数是一种特殊的实例构造函数。它通常用在只包含静态成员的类中。 如果类具有一个或多个私有构造函数而没有公共构造函数,则其他类(除嵌套类外)无法创建该类的实例。 例

public class Test { private Test() { Console.WriteLine("I am Test"); } } public class ProgramTest { int j; private ProgramTest() { j = 3; Console.WriteLine("I am ProgramTest 默认构造函数,j={0}", j); } static void Main(string[] args) { Test t = new Test(); ProgramTest pt1 = new

若只在自己类私有类

public class ProgramTest { int j; private ProgramTest() { j = 3; Console.WriteLine("I am ProgramTest 默认构造函数,j={0}", j); } static void Main(string[] args) { ProgramTest pt1 = new ProgramTest(); Console.Read(); } }结果:I am ProgranmTest 默认构造函数,j=3

注意,如果您不对构造函数使用访问修饰符,则在默认情况下它仍为私有构造函数。但是,通常显式地使用private修饰符来清楚地表明该类不能被实例化。

3、 静态构造函数

静态构造函数用来初始化静态变量,这个构造函数是属于类的,而不是属于哪个实例的。就是说这个构造函数只会被执行一次。也就是在创建第一个实例或引用任何静态成员之前,由.NET自动调用。

static int i; static Test() { i = 1; Console.WriteLine("I am Test 默认构造函数 i={0}", i); } } public class ProgramTest { static void Main(string[] args) { Test t1 = new Test(); Console.Read(); } }结果为:I am Test 默认构造函数 i=1

静态构造函数的特点

1.静态构造函数既没有访问修饰符,也没有参数。 2.在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类,也就是无法直接调用静态构造函数,也无法控制什么时候执行静态构造函数。 3.一个类只能有一个静态构造函数,最多只能运行一次。 4.静态构造函数不可以被继承。 5.如果没有静态构造函数,而类中的静态成员有初始值,那么编译器会自动生成默认的静态构造函数。

总结

先知道构造函数是什么,与普通的区别是什么,还有一些类别,目前关于构造函数的理解,这仅仅是一些皮毛,在Javascript视频有很多的关于构造函数的内容,自己的理解也不是很详细,所以会在后面的博客内容中继续总结。构造函数是面向对象学习的基础,所以在学习过程中,慢慢理解。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:TensorRec是Python中的TensorFlow推荐算法和框架
下一篇:SpringCloud引入feign失败或找不到@EnableFeignClients注解问题
相关文章

 发表评论

暂时没有评论,来抢沙发吧~