非電腦專業的碼農C#學習筆記 七、

來源:互聯網
上載者:User

標籤:io   使用   ar   strong   資料   sp   c   on   cti   

結構和類

(一)結構-通常用於較小的資料類型,大多數情況下都是用類,可用於特定數學公式傳回值這類

Public struct 結構名{}

  1. 結構是值的類型
  2. 傳遞結構一般傳值方式進行,不是用using進行,class則是用Using來進行引用
  3. 結構聲明建構函式時候必須帶參數
  4. 一個結構不能被另一個結構繼承,因為都是具體的值,值不能繼承值
  5. 結構可以實現介面
  6. 結構裡面不能執行個體化其他東西
  7. 執行個體化結構不需要用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 class1class0{} 衍生類別:基類,“:”表示繼承,基類中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#學習筆記 七、

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.