C# 構造函數

概念:函數

構造函數是一種特殊的方法,主要用來在建立對象時初始化對象this

構造函數的重載:特別的一個類能夠有多個構造函數,可根據其參數個數的不一樣或參數類型的不一樣,來區分它們。spa

重載:同一個類裏面,方法名稱相同,方法參數列表不一樣(參數的類型,個數),與參數的返回值類型無關。code

 

注意:對象

 

構造函數blog

通常方法繼承

命名ci

命名必須和類名徹底一致。編譯器

不能和類名相同。string

功能

初始化對象賦初值。

沒有返回值;不能用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();
        }
        }
}
相關文章
相關標籤/搜索