C# 构造函数简析
【摘要】
构造函数:
每当创建类或结构时,将会调用其构造函数。类或结构可能具有采用不同参数的多个构造函数。 使用构造函数,程序员能够设置默认值、限制实例化,并编写灵活易读的代码。
实例构造函数:
1、构造函数的名字与类名相同。
2、使用 new 表达式创建类的对象或者结构时,会调用其构造函数。并且通常初始化新对象的数据成员。
3、类会有默认的构...
构造函数:
每当创建类或结构时,将会调用其构造函数。类或结构可能具有采用不同参数的多个构造函数。 使用构造函数,程序员能够设置默认值、限制实例化,并编写灵活易读的代码。
实例构造函数:
1、构造函数的名字与类名相同。
2、使用 new 表达式创建类的对象或者结构时,会调用其构造函数。并且通常初始化新对象的数据成员。
3、类会有默认的构造函数(静态类没有),并使用默认值来初始化对象字段
4、构造函数可以有参数,可以以多态的形式存在多个构造函数
静态构造函数:
类或结构也可以具有静态构造函数,该静态构造函数初始化类型的静态成员。静态构造函数是无参数构造函数。如果未提供静态构造函数来初始化静态字段,C# 编译器将提供默认静态构造函数,该静态构造函数会将静态字段初始化为其默认值。
这个构造函数是属于类的,而不是属于哪里实例的,就是说这个构造函数只会被执行一次。也就是在创建第一个实例或引用任何静态成员之前,由.NET自动调用。
私有构造函数:
私有化构造函数,是为了保护类不被实例化,保护类中除静态成员(想被外界访问的)外的成员变量, 属性,方法等不会被访问。
-
using System;
-
//using static System.Math; //double aa = PI;
-
-
-
namespace MianshiText
-
{
-
class Test{
-
public static string name = "moren";
-
public int age = 0;
-
-
//私有化外界访问不到
-
private Test()
-
{
-
-
}
-
-
//每次实例时被调用
-
public Test(string name,int age)
-
{
-
Test.name = name;
-
this.age = age;
-
}
-
-
//是类的构造函数,没有参数,只调用一次
-
static Test()
-
{
-
name = "czhenya";
-
//age = 15; //只能修改静态变量
-
}
-
-
}
-
-
class Program
-
{
-
static void Main(string[] args)
-
{
-
//默认执行静态构造函数,输出值为:czhenya
-
Console.WriteLine( Test.name);
-
-
-
//无参构造函数已被私有化,编译出错
-
//Test t2 = new Test();
-
-
//调用带参构造函数
-
Test t1 = new Test("chen", 15);
-
Console.WriteLine("姓名:{0},年龄:{1}", Test.name, t1.age);
-
-
Test.name = "ya";
-
t1.age = 20;
-
Console.WriteLine("姓名:{0},年龄:{1}", Test.name, t1.age);
-
-
Console.ReadKey();
-
}
-
}
-
}

文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。
原文链接:czhenya.blog.csdn.net/article/details/76092128
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)