第二十講 建構函式和解構函式
建構函式: 是一種特殊的成員函數,它主要用於為對象分配儲存空
間,對資料成員進行資料初始化;
1.建構函式的名字必須與類同名;
2.建構函式沒有傳回型別,它可以帶參數,也可以不帶參數
3.建構函式的主要作用是完成對類的初始化操作
4.在建立一個類的新對象(使用new關鍵字)時,系統會自動調用類
的建構函式初始化新對象;
解構函式:是一種特殊的成員函數,當對象銷毀時候調用。
1.當對象達到銷毀條件時,解構函式是自動被調用的,不能顯式的對
其進行調用;
2.一般情況下,不用自己寫解構函式。但是有時候必須寫,也就是你
使用了非託管資源,比如:當你使用了API函數時,你使用了非託管
資源。
代碼:
namespace First {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e) {
//A a = new A();
// A a=new A(1);
B b = new B();
b = null;
GC.Collect();
GC.WaitForPendingFinalizers();
}
}
//自訂A類
//建構函式
public class A {
//成員變數
int num;
//建構函式
public A() { MessageBox.Show("調用無參數建構函式!!"); }
public A(int i) {
num = i;
MessageBox.Show("調用有效參數建構函式!!");
}
}
class B {
~B() {
MessageBox.Show("調用的解構函式");
}
}
}
第二十一講 靜態類 靜態方法 靜態變數
靜態類 共用資料
我們使用Math
MessageBox.Show
代碼: private void Form1_Load(object sender, EventArgs e) {
/*
int renShu = BanJi.NumberOfStudents;//獲得靜態成員變數
this.textBox1.Text = renShu.ToString();
//*/
/*
BanJi theBanJi1= new BanJi();
BanJi theBanJi2 = new BanJi();
theBanJi1.AndBoy();
theBanJi2.AndBoy();
int renShu = BanJi.NumberOfStudents;//獲得靜態成員變數
this.textBox1.Text = renShu.ToString();
//*/
/*
BanJi theBanJi1= new BanJi();
BanJi theBanJi2 = new BanJi();
theBanJi1.AndBoy();
theBanJi2.AndBoy();
BanJi.ResetNumberOfStudent();
int renShu = BanJi.NumberOfStudents;//獲得靜態成員變數
this.textBox1.Text = renShu.ToString();
//*/
MessageBox.Show("PI的值為:" + Math.PI.ToString());
MessageBox.Show("sin5的值為:" + Math.Sin(5).ToString());
}
}
public class BanJi {
//靜態成員變數
public static int NumberOfStudents = 0;
//靜態成員函數
public static void ResetNumberOfStudent() { NumberOfStudents = 0; }
//非靜態成員函數
public void AndGirl() { NumberOfStudents++; }
public void AndBoy() { NumberOfStudents++; }
}
static class CompanyInfo {
public static string GetCompanyName() { return "宇宙香煙"; }
public static string GetCompanyAddress() { return "北京首都"; }
}
}