C#程序理解,怎么理解构造函数,构造函数名字为什么和类名是一样的呢??
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespa...
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication4 { class Program { public int x; public Program() { x = 5; } static void Main(string[] args) { Program kkk = new Program(); // 不能理解这个!!这个应该kkk是类program的实列化,并没有调用到这个构造函数。为什么说,kkk调用构造函数myclass,kkk.x赋值5。在C语言中,调用函数都是那样的!就好比有了定义,声明,然后调用。 Program lll = new Program(); Console.WriteLine(kkk.x+"和"+lll.x+"相等"); } } }
展开
1个回答
展开全部
构造函数是面向对象的编程中出现的一种方法,它是每个类都会有的方法,作用是构造及初始化对象。为了程序编译时能很好地辨识这个必须的“构造函数”。那这个构造函数的名字最好就有一定的规定。现在规定了构造函数名字和类名一致,编译时就知道哪些是构造函数,
实例化对象时就会调用合适的构造函数进行类的实例化。
构造函数
是一种特殊的方法
主要用来在创建对象时对对象进行初始化。即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别地,一个类可以有多个构造函数
可根据其参数个数的不同或参数类型的不同来区分它们,就是构造函数的重载。
构造函数是类自己在对象刚刚创建时候自己调用的,一般不允许用户自己显示调用构造函数。用户只要将构造函数写好,类在实例化对象的时候自动调用合适的构造函数对对象进行初始化(若有多个构造函数,系统会根据构造函数的形参来进行选择)。
你可能会看到有些类没有构造函数,这时候编译器会自动生成一个形参为空的函数体为空的构造函数给该类。总之,构造函数是必须的。
你说的不懂的地方,其实就是在实例化kkk这个对象的时候,即kkk刚创建的时候,系统对自动调用一次Program类的构造函数。这就是构造函数唯一一次调用的地方。用户是不能显示调用构造函数的。
这和C语言是有区别的,构造函数用于对象的初始化,这样可以使对象的封装性更好。
实例化对象时就会调用合适的构造函数进行类的实例化。
构造函数
是一种特殊的方法
主要用来在创建对象时对对象进行初始化。即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别地,一个类可以有多个构造函数
可根据其参数个数的不同或参数类型的不同来区分它们,就是构造函数的重载。
构造函数是类自己在对象刚刚创建时候自己调用的,一般不允许用户自己显示调用构造函数。用户只要将构造函数写好,类在实例化对象的时候自动调用合适的构造函数对对象进行初始化(若有多个构造函数,系统会根据构造函数的形参来进行选择)。
你可能会看到有些类没有构造函数,这时候编译器会自动生成一个形参为空的函数体为空的构造函数给该类。总之,构造函数是必须的。
你说的不懂的地方,其实就是在实例化kkk这个对象的时候,即kkk刚创建的时候,系统对自动调用一次Program类的构造函数。这就是构造函数唯一一次调用的地方。用户是不能显示调用构造函数的。
这和C语言是有区别的,构造函数用于对象的初始化,这样可以使对象的封装性更好。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询