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();
        }
        }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM