构造函数详解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

这样便可以用默认或特定的初始值创建CoOrd对象,如下所示:
CoOrds p1=new CoOrds();
CoOrds p2=new CoOrds(5,3);
注意:
此类包含公共数据成员。

建议不要使用这种编程方法,因为它使程序中任何位置的任何方法都可以不受限制、不经验证地访问对象的内部组件。

数据成员通常应当为私有的,并且只应当通过类方法和属性来访问。

实例:(类)
class Employee
{
private string name;
public string Name
{
get{return name;}
set{name=value;}
}
private int age;
public int Age
{
get{return age;}
set{age=value;}
}
private int gongzhi;
public int Gongzhi
{
get{return gongzhi;}
//set{gongzhi=value;}
}
//无参数构造函数
public Employee()
{
}
public Employee(string_name,int_age,int_gongzhi)
{
//如果变量的属性是只读的,就直接给变量本身赋值
=_name;
this.Age=_age;
this.gongzhi=_gongzhi;
}
}
实例:(类)
//结构,结构是值类型的
//结构在定义变量时不能给定初始值
struct Employeestruct
{
private string name;
public string Name
{
get{return name;}
set{name=value;}
}
private int age;
public int Age
{
get{return age;}
set{age=value;}
}
private int gongzhi;
public int Gongzhi
{
get{return gongzhi;}
//set{gongzhi=value;}
}
//无参数构造函数
//public Employeestruct()
//{
//}
//有参数构造函数
public Employeestruct(string_name,int_age,int_gongzhi)
{
//如果要在结构中使用构造函数则必须给所有的变量赋值(在构造函数中赋值)
=_name;
this.age=_age;
this.gongzhi=_gongzhi;
}
}
私有构造函数:
私有构造函数是一种特殊的实例构造函数。

它通常用在只包含静态成员的类中。

如果类具有一个或多个私有构造函数而没有公共构造函数,则其他类(除嵌套类外)无法创建该类的实例。

例如:
class NLog
{private NLog(){}
public static double e=Math.E;//2.71828...
}
静态构造函数既没有访问修饰符,也没有参数。

示例
在此示例中,类Bus有一个静态构造函数和一个静态成员Drive()。

当调用Drive()时,将调用静态构造函数来初始化类。

public class Bus
{
protected static readonly DateTime globalStartTime;
protected int RouteNumber
{
get;
set;
}
static Bus()
{
globalStartTime=DateTime.Now;
Console.WriteLine("Static ctor sets global start time
to{0}",globalStartTime.ToLongTimeString());
}
public Bus(int routeNum)
{
RouteNumber=routeNum;
Console.WriteLine("{0}is created.",RouteNumber);
}
public void Drive()
{
TimeSpan elapsedTime=DateTime.Now-globalStartTime;
Console.WriteLine("{0}is starting its route{1:N2}minutes after global start time
{2}.",this.RouteNumber,elapsedTime.TotalMilliseconds,globalStartTime. ToShortTimeString());
}
}
class TestBus。

相关文档
最新文档