程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#面向對象編程(續)

C#面向對象編程(續)

編輯:關於C語言

一.構造函數

上次說到類是封裝了屬性和方法的實體的集合,面向對象編程過程把所有的東西都看成對象,而且世界上沒有一模一樣的對象,所以在創建對象的時候要對對象的屬性進行初始化.在定義基本類型變量的時候.聲明一個對象的方法如下:

int myint = 3;

但是在創建對象型數據的時候要用到關鍵字new來完成對象的創建.最基本的string類型對象的創建方法如下:

string name = new string("Lu xiaofeng");

這裡在調用name的時候內存中會加載 name=”Lu xiaofeng”.

對象型數據必須在創建後才能使用,否則會出現錯誤一下:可能尚未初始化變量.另一個比較重要的概念就是構造函數,每一個類都有一個默認的構造函數來初始化對象的一些數據.同時要注意的是構造函數的形式:

構造函數的函數名必須與類的名字相同,而且是沒有任何返回值,也不允許用void來修飾.但是構造函數允許重載:一個類中可以用多個不同的構造函數來滿足創建對象.例如在Person類中有兩個構造函數: public Person(){}構造函數

和public Person(String name,String sex,int age,double weight)//構造函數.當我們在定義一個Person類的變量的時候; Person myman=new Person();同時也可以用另一個構造函數來初始化一個對象.Person niu=new Person("name","man",22,99);但是這個對象和myman對象是不一樣的.但是這兩個對象的屬性是不一樣.

二.this的引用

我們先來看下兩個構造函數的具體內容:

public Person() {

name = "Lu xiaofeng";

sex = "man";

age = 22;

weight = 99;

}

public Person(string name, string sex, int age, double weight) { this.name = name;

this.sex = sex;

this.age = age;

this.weight = weight;

}//構造函數二

在第二個構造函數中多了個this,this的作用是用來指定”這個”的.尤其是在下面的情況:

public string name public string sex;public int age;public double weight;

這四個字段的名字與構造函數public Person(string name, string sex, int age, double weight)的參數一樣的時候.this是用來指定當前這個對象的.

當然我們可以把public Person(string name, string sex, int age, double weight)的參數換成其他的名字. public Person(string myname, string mysex, int myage, double myweight).這個並不會影響程序的結果,但是如果把上表構造函數二中的中的this去掉,來看看有甚麼影響.創建兩個對象.person1,person2.

Person newman = new Person("lixiao", "woman", 11, 88);

Console.WriteLine("name={0},sex={1},age={2},weight={3}",newman.name, newman.sex, newman.age, newman.weight);

Person another = new Person();

Console.WriteLine("name={0},sex={1},age={2},weight={3}",another.name, another.sex, another.age, another.weight);

Console.ReadKey();

public Person(string name, string sex, int age, double weight)

{

name = name;

sex = sex;

age = age;

weight = weight;

}//去掉 this後.

去掉this後的效果.有關this的知識在後面還會介紹. 現在對this做個簡單的小節:this關鍵字引用被訪問成員所在的當前實例。靜態成員函數沒有this指針。this關鍵字可以用來從構造函數,實例方法和實例化訪問器中訪問成員。本文發表於編程入門網(bianceng.cn)

不能在靜態方法。靜態屬性訪問器或者域聲明的變量初始化程序中使用this關鍵字,這將會產生錯誤。

1.在類的構造函數中出現的this作為一個值類型表示對正在構造的對象本身的引用。

2.在類的方法中出現this作為一個值類型表示對調用該方法的對象的引用。

3.在結構的構造函數中出現的this作為一個變量類型表示對正在構造的結構的引用。

4.在結構的方法中出現的this作為一個變量類型表示對調用該方法的結構。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved