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+"相等");

}
}
}
展开
 我来答
匿名用户
推荐于2018-04-11
展开全部
构造函数是面向对象的编程中出现的一种方法,它是每个类都会有的方法,作用是构造及初始化对象。为了程序编译时能很好地辨识这个必须的“构造函数”。那这个构造函数的名字最好就有一定的规定。现在规定了构造函数名字和类名一致,编译时就知道哪些是构造函数, 实例化对象时就会调用合适的构造函数进行类的实例化。

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

构造函数是类自己在对象刚刚创建时候自己调用的,一般不允许用户自己显示调用构造函数。用户只要将构造函数写好,类在实例化对象的时候自动调用合适的构造函数对对象进行初始化(若有多个构造函数,系统会根据构造函数的形参来进行选择)。
你可能会看到有些类没有构造函数,这时候编译器会自动生成一个形参为空的函数体为空的构造函数给该类。总之,构造函数是必须的。

你说的不懂的地方,其实就是在实例化kkk这个对象的时候,即kkk刚创建的时候,系统对自动调用一次Program类的构造函数。这就是构造函数唯一一次调用的地方。用户是不能显示调用构造函数的。
这和C语言是有区别的,构造函数用于对象的初始化,这样可以使对象的封装性更好。
非马1
2011-04-23
知道答主
回答量:16
采纳率:0%
帮助的人:11.8万
展开全部
在c#中实例化类的时候总会自动调用构造函数,就算你没有定义构造函数,编译器也会自动加上一个默认的构造函数。不存在为什么。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大海泛舟2018
2011-04-23 · TA获得超过217个赞
知道小有建树答主
回答量:323
采纳率:0%
帮助的人:263万
展开全部
可以这样理解,它就像是做程序一样,后台中可能有好多的事件,但必须要执行的是page_load事件,让它显示一些值,别的事件你可以调用也可以不用;再说的白一点,就是给这个类赋一个初始值,使程序知道有这么个类,它必须执行的就是这个构造函数,然后你可以对这个类里面其它数据进行修改
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangshuaisupin
2011-04-23 · TA获得超过1884个赞
知道小有建树答主
回答量:805
采纳率:100%
帮助的人:1232万
展开全部
构造函数只有在类被实例化时(new时)调用一次,也可以理解成对类的初始化动作!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
newpoplar
2011-04-23 · TA获得超过492个赞
知道小有建树答主
回答量:913
采纳率:66%
帮助的人:133万
展开全部
构造函数是类实列化的依据,
构造函数名字和类名一样是一种约定,谈不上为什么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式