http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 11261|回复: 4

[C#入门] C#类和对象-构造函数

[复制链接]
发表于 2014-7-12 20:37:04 | 显示全部楼层 |阅读模式
创建对象时,系统为对象的成员变量分配内存后,通过构造函数(Constructor)初始化对象的成员变量。
1、默认的构造函数。每个类都有一个与类同名的构造函数,当创建对象时,系统会调用默认的构造函数,用默认值初始化所有成员的变量。例如,我们先创建一个Sufei的类,再创建一个Wwwconsumer的对象,这时系统先通过new运算符为每个成员分配内存空间,然后通过默认的构造函数Sufei()初始化成员变量,变量name被初始化为null,变量age被初始化为0.看看例子:
[C#] 纯文本查看 复制代码
Sufei Wwwconsumer= new Sufei();
              Console.WriteLine("姓名:{0}",Wwwconsumer.name);
              Console.WriteLine("年龄:{0}",Wwwconsumer.age);
运行结果可以检验下: 默认的构造函数.JPG


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2014-7-12 20:49:01 | 显示全部楼层
除了默认构造函数,我们还可以定义带参数的构造函数,带参数的构造函数可以用指定的值初始化类的成员变量。例如,我们可以通过构造函数为会员Wwwconsumer初始化姓名和年龄。
[C#] 纯文本查看 复制代码
 //在类中添加构造函数(带参数)
        public string name;
        public int age;
        public Sufei(string nameValue, int ageValue)
        {
            //初始化变量
            name = nameValue;
            age = ageValue;
//测试语句,作为构造函数调用的证据
            Console.WriteLine("又有一个会员登录了!(调用构造函数)");
        }


 Sufei Wwwconsumer = new Sufei("Wwwconsumer",40);
            Console.WriteLine("姓名:{0}",Wwwconsumer.name);
            Console.WriteLine("年龄:{0}",Wwwconsumer.age);

运行结果如下: 带参数的构造函数.JPG
注意到了吗,运行的第一句话就是“又有一个会员登录了!”证明构造函数被执行了,第二、三句证明了Wwwconsumer的变量name和age被相应的参数初始化了。
发表于 2014-7-12 22:16:57 | 显示全部楼层
哈哈😄
发表于 2014-7-12 22:47:07 | 显示全部楼层
我只是路过看看的。
 楼主| 发表于 2014-7-13 03:11:58 | 显示全部楼层
无参数的构造函数与系统默认的构造函数还是有区别的,无参数的构造函数虽然无参数,但可以用自定义的构造函数中的代码初始化变量,如在本例中,我们设计了一个无参数的构造函数,但在自定义代码中设置了姓名为:Wwwconsumer,年龄为:40,这时,系统会用自定义的的构造函数代替默认的构造函数。
[C#] 纯文本查看 复制代码
class Sufei
    {
        //在类中添加构造函数
        public string name;
        public int age;
        //构造函数,无参数
        public Sufei()
        {
            name = "Wwwconsumer";
            age = 40;
        }

在主程序中运行构造函数:
[C#] 纯文本查看 复制代码
 class Program
    {
        static void Main(string[] args)
        {
           Sufei Wwwconsumer= new Sufei();
              Console.WriteLine("姓名:{0}",Wwwconsumer.name);
              Console.WriteLine("年龄:{0}",Wwwconsumer.age);
        }
    }
运行结果如下: 无参数的构造函数.JPG
同样的是上述语句,如果你不定义构造函数,运行的结果如何呢,你还是可以看图: 默认的构造函数.JPG
对了,默认的构造函数初始化变量成员时,name被初始化为null,age被初始化为0.而自定义的无参数的构造函数,name被初始化为:Wwwconsumer,age被初始化为:40.
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-4-19 16:00

© 2014-2021

快速回复 返回顶部 返回列表