C# 构造函数

概念:

构造函数是一种特殊的方法,主要用来在创建对象时初始化对象

构造函数的重载:特别的一个类可以有多个构造函数,可根据其参数个数的不同或参数类型的不同,来区分它们。

重载:同一个类里面,方法名称相同,方法参数列表不同(参数的类型,个数),与参数的返回值类型无关。

 

注意:

 

构造函数

一般方法

命名

命名必须和类名完全一致。

不能和类名相同。

功能

初始化对象赋初值。

没有返回值;不能用void修饰。

根据方法而定。

必须有返回值类型。

调用

不能直接调用,必须通过new运算符创建对象时才会自动调用。

程序执行到它的时候调用。

默认存在

存在默认构造函数(不带参数)。

不存在。

 

定义:

class A

{

public A(){}//不带参数的构造函数,又名默认构造函数

public A(int a ){}//带参数的构造函数。

//当两者同时存在时,看类是如何实例化的

private A(int a ){}//私有构造函数

}

 

使用:

A a=new A();或者A a=new A(7);

 注意:如果类里面没有定义构造函数,编译器会自动生产一个空构造函数,类的各个成员都赋上默认值。

 

构造函数分:实例构造函数、私有构造函数、静态构造函数。

 (1)实例构造函数

using System;
class Point
{
 public double x, y;
 public Point() 
 {
  this.x = 0;
  this.y = 0;
 }

 public Point(double x, double y)
 {
  this.x = x;
  this.y = y;
 }
}

class Test
{
 static void Main() 
 {
  Point a = new Point();
  Point b = new Point(3, 4); // 用构造函数初始化对象
 }
}

(2)私有构造函数

通常用在只包含静态成员的类中,如果类只有私有构造函数而没有公共构造函数,则其他类(除嵌套类外)无法创建该类的实例。

注意,默认情况下属性为private

(3)静态构造函数

1.静态构造函数既没有访问修饰符,也没有参数,静态构造函数不可以被继承。

2.一个类只能有一个静态构造函数,最多只能运行一次。

3.在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类,也就是无法直接调用静态构造函数,也无法控制什么时候执行静态构造函数。

4.如果没有静态构造函数,而类中的静态成员有初始值,那么编译器会自动生成默认的静态构造函数。

using System;
class test{
        public class person
        {
            static string sex;
            static person()
            {
                sex = "woman";
                Console.WriteLine("静态析构函数:"+sex);
            }
        }

        public class student
        {
            static void Mian(String[] args)
            {
                person p = new person();
             Console.Read();
        }
        }
}

 

posted @ 2018-01-10 13:15  Rachel_Diary  阅读(1514)  评论(0编辑  收藏  举报