日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

从一般到特殊-C#中的对象

發布時間:2023/12/10 C# 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从一般到特殊-C#中的对象 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 對象的概念
  • 對象的創建和使用
  • 匿名類型和初始化器
  • 構造函數和析構函數
    • 構造函數
    • 析構函數
    • 范例
  • 參數傳遞

  • 博主寫作不容易,孩子需要您鼓勵
  • 萬水千山總是情 , 先點個贊行不行

對象的概念

類是具有相同特征一類事物的抽象,而對象是類的實例。
類和對象有本質的區別,類是從對象中抽取出來的一類對象的描述,對象是類中的個體,是一個具體的事物,創建對象就是從抽象到具體的過程,是將類的屬性和行為實例化的過程。類與對象的關系可以比喻為設計手機和具體手機的關系,類就像手機機型設計一樣說明了手機所應該具備的所有屬性和功能,但是手機設計并不是手機;對象就是跟據手機設計而制造出來的手機,它具有手機的所有功能,能打電話發短信。

對象的創建和使用

類是抽象的,要使用類中非靜態的成員,就必須創建類的對象,創建對象就是類的實例化過程。
C#使用new運算符創建對象。

  • 語法格式如下:
  • 類名 對象名 = new 類名(參數列表);

    其中,參數列表是可選的。
    如創建Phone類的一個對象如下:

    class PhoneClass{public string brand;public string type;}class Program{static void Main(string[] args){PhoneClass Phone = new PhoneClass();//創建Phone類的一個對象Phone.brand = "huawei";Phone.type = "5G";Console.WriteLine("手機品牌是:" + Phone.brand);Console.WriteLine("手機種類是:" + Phone.type);Console.ReadKey();}}

    對象的使用是通過訪問對象中的非靜態成員來實現的。

  • 訪問對象中的非靜態成員語法如下:
  • 對象名.成員名

    如Phone類的一個對象的使用如下:

    class PhoneClass{public string brand;public string type;}class Program{static void Main(string[] args){PhoneClass Phone = new PhoneClass();//創建Phone類的一個對象Phone.brand = "huawei";Phone.type = "5G";Console.WriteLine("手機品牌是:" + Phone.brand);//Phone對象的使用Console.WriteLine("手機種類是:" + Phone.type);//Phone對象的使用Console.ReadKey();}}

    匿名類型和初始化器

    匿名類型是C#3.0新增功能,能簡化對象的初始值設置。使用對象初始化,創建類的對象并對其屬性成員賦值。
    舉例如下:

    PhoneClass Phone = new PhoneClass(){Phone.brand = "huawei"};

    例如定義類Point,有兩個屬性X,Y表示點的坐標

    public class Point //定義Point類{ // 類的屬性定義中set,get可以簡寫為以下形式 public double X { get; set; }//定義屬性X,點的橫坐標public double Y { get; set; }//定義屬性Y,點的縱坐標}

    使用對象初始化,可以這樣創建對象并對屬性賦值

    Point P = new Point() { X = 0.0, Y = 0.0 }; //創建對象P并對XY賦值

    使用匿名類型可以定義內嵌的類型,不需要顯示的定義一個類型。假設沒有定義Point類,卻要使用一個Point的對象,可以使用對象初始化器,不用指定類名。
    例如:

    var p = new { X = 0.0, Y = 0.0 }; //創建匿名類型p,并使用對象初始化器賦值。

    構造函數和析構函數

    對象和客觀世界的事物一樣,從創建到消亡都有一個生命周期,對象的創建和銷毀是通過類的構造函數和析構函數來完成的。

    構造函數

    構造函數是類的特殊方法成員,其名稱和類名相同,主要用來完成對象的初始化。
    C#通過new創建對象的過程實際上就是調用類的構造函數的過程,創建對象時調用構造函數對對象進行初始化。每個類都有構造函數,如果沒有定義,系統也會提供一個默認的構造函數,默認的構造函數一般不進行什么操作。在訪問一個類的時候,系統最先執行構造函數中的語句。

    析構函數

    析構函數是對象銷毀前釋放所占用的系統資源的類的成員。析構函數的名字是在類名前加一個“~”符號。析構函數不接受任何參數,也不返回任何值。
    例如:

    public class Point //定義Point類{ // 類的屬性定義中set,get可以簡寫為以下形式 Point(){//構造函數 //構造函數內容}~Point() //析構函數名{//析構函數 //析構函數內容}public double X { get; set; }//定義屬性X,點的橫坐標public double Y { get; set; }//定義屬性Y,點的縱坐標}

    范例

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace test {class Program{static void Main(string[] args){Point p1 = new Point();Console.WriteLine("無參數構造函數演示");Console.WriteLine("X:" + p1.X);Console.WriteLine("Y:" + p1.Y);Point p2 = new Point(2.0,3.0);Console.WriteLine("有參數構造函數演示");Console.WriteLine("X:" + p2.X);Console.WriteLine("Y:" + p2.Y);Console.ReadKey();}}public class Point //定義Point類{ // 類的屬性定義中set,get可以簡寫為以下形式 public Point(){X = 0.0; Y = 2.0;//構造函數 //構造函數內容}public Point(double x,double y){X = x; Y = y;//構造函數 //構造函數內容}~Point() //析構函數名{Console.WriteLine("清理資源");//析構函數 //析構函數內容}public double X { get; set; }//定義屬性X,點的橫坐標public double Y { get; set; }//定義屬性Y,點的縱坐標} }

    運行結果:

    參數傳遞

    C#的許多方法成員是有參數的,定義方法時聲明的參數是形式參數,調用方法時要給形式參數傳值,傳遞方法的值是實參。C#有“值傳遞”和“引用傳遞”兩種傳遞參數類型。值傳遞是C#默認的傳遞方式,使用值傳遞方式時,向形式參數傳遞實在參數的副本,方法內發生的對形式參數的更改對實在參數本身沒有影響,就像文件的復印件一樣,無論如何修改復印件,原件沒有任何改變。如果希望所調用的方法能更改實在參數的值,則必須使用ref或out關鍵字聲明通過引用傳遞方式傳遞參數,引用傳遞是把實在參數的地址傳給形式參數,形式參數和實在參數指向同一個存儲單元,對形式參數的改變就是對實在參數的改變。out與ref類似,二者的區別是,ref要求參數在傳遞之間必須初始化,out則不要求初始化。

    可參考文章:
    C#的兩種類據類型:值類型和引用類型

    • 博主簡介:
    • 工業自動化上位機軟件工程師、機器視覺算法工程師、運動控制算法工程師。目前從業于智能制造自動化行業。 博主郵箱:2296776525@qq.com
    • 幫忙點個贊吧。哈哈。

總結

以上是生活随笔為你收集整理的从一般到特殊-C#中的对象的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。