標籤:io 使用 ar strong 資料 sp c on cti
結構和類
(一)結構-通常用於較小的資料類型,大多數情況下都是用類,可用於特定數學公式傳回值這類
Public struct 結構名{}
- 結構是值的類型
- 傳遞結構一般傳值方式進行,不是用using進行,class則是用Using來進行引用
- 結構聲明建構函式時候必須帶參數
- 一個結構不能被另一個結構繼承,因為都是具體的值,值不能繼承值
- 結構可以實現介面
- 結構裡面不能執行個體化其他東西
- 執行個體化結構不需要用new來修飾,如public struct st{string a=””;}引用的時候str ss;ss.a=123就可以
(二)類class
1.OOP object oriented programming物件導向編程三大特點:
(1)封裝——集合屬性和方法,使用的時候引用其某個屬性和方法就可以,不顯示出類具體結構
(2)繼承——衍生類別:基類,繼承基類的公開屬性、欄位、方法
(3)多態——基類含有多個衍生類別,通過向基類提供基類的參數,由基類分配引用衍生類別內方法叫做多態;
2.類的聲明:修飾詞 class 類名{公有變數;方法;…}
3.建構函式和.解構函式:一般對象的生命週期都是建構函式開始和解構函式結束;建構函式是特殊的函數,public 函數名{};然後在main()中調用,執行個體化,執行個體.參數和方法,就可以;解構函式實際上等於“~建構函式名”,main中調用建構函式,或者執行個體化建構函式,最後都會自動被調用.
4.類執行個體化:對象是資料行為和標識的集合,不同於類,類的執行個體化建立一個該對象所屬類的執行個體
必須對類進行執行個體化才能引用類中的方法和變數或者欄位
(三)類的物件導向特性
1.封裝:class myclass{private int x;private int y; public int X{get{return x;}set{x=value;}}}….
2.繼承:p[ublic class1:class0{} 衍生類別:基類,“:”表示繼承,基類中private定義的欄位屬性和方法可以被衍生類別繼承,直接用不需要“class0.參數方法等”
3.類的多態:通過基類的變數引用基類,基類自動分配到衍生類別,從而實際引用了衍生類別的具體方法,搞個例子看看:
using System;using System.Collections.Generic;using System.Linq;using System.Text;
namespace 對象和類
{
#region 這裡是類的多態實驗
class class0
{
private int x = 0;
private int y = 0;
public int X
{ get { return x; } set { x = value; } }
public int Y
{ get { return y; } set { y = value; } }
public virtual int add()
{ return X + Y; }
}
class class1 : class0
{
public override int add()
{
//return base.add();
int x = 15;
int y = 7;
return x + y;
}
//public new int add() { int x = 5; int y = 5; return x * y; }//除了重寫來實現虛方法,還能新增來實現
}
#endregion 這裡是多態的實驗,包含下面mian
class Program
{
static void Main(string[] args)
{
class1 cl1 = new class1();
class0 cl0 = (class0)cl1;
//cl1.X = 4;//無關
//cl1.Y = 5;
Console.WriteLine(cl0.add());
Console.WriteLine(cl1.add());
}
}
非電腦專業的碼農C#學習筆記 七、