C#基礎學習C# 8.0 In a Nut Shell


Field 其實就是變量,但是英文里面是field,字段,域名。為啥要這么取名是因為面向對象編程,發明類,事兒多,什么防止變量被修改什么的,所以發明了屬性property

屬性就是用函數來操縱變量,也即這個字段,field。所以獨立用字段的類,不怎么好(大概是這個意思)。

然后,類要初始化,初始化變量怎么辦?取名Constructor,翻譯過來是建構,構造(心理學的構造主義,建構主義心理學 就是這個詞匯),構造一下,等於初始化。

為了要讓初始化明顯,取名和類名是需要一樣的。這里類名是UnitConverter(單位換算類),那么構造函數,也叫做UnitConverter。

可見,為了實現類,面向對象的編程方法,可是苦了編譯器,編譯器做了很多工作。(還有語言本身的工作)

接下去是叫做方法,這個是又是為了區別函數發明的,本質上和函數一樣,在類里面,構造函數,等之類,可以叫函數,自定義函數,或者屬性函數(為了操縱變量,也即字段發明的概念),

統統叫做,方法,method,注意,method 就是 函數 function ,函數就是method ,只是場景不同,所以又發明一個詞匯,混淆視聽。唉。

 

繼續,

UnitConverter feetToInchesConverter = new UnitConverter (12);

實例化一個類,並且初始化的值為12.

注意,這里的新名詞,實例化。本質上,int x = 30 ,這種是C#或編譯器預先定義的類型,當然后台肯定實現了的,並不是天然就有的。

Int 就是默認類型,預定義類型。現在UnitConverter 寫在變量名 feetToInchesConverter 前面,類比 int x

Int x = 30 ,這個很簡單,當然內部機制是什么我們暫且不管。

UnitConverter feetToInchesConverter = new UnitConverter (12) 而這個 需要關鍵字 new ,區分它是不一樣的變量,這里升級為"類"

所以叫做實例化。等價於我們自己定義一個類,自己弄類型,區分int

當然,初始化的值為12,傳給誰?當然是傳給里面的構造函數(或者叫做構造方法,反正函數和方法在我這里筆記上就亂用了 ,沒有區分)

 

Console.WriteLine (feetToInchesConverter.Convert (30));

這句話,用點號,調用Convert方法(函數),把30傳入進去。

函數(方法)內部是這樣的:

其中,那個ratio new類的時候,已經被構造函數,構造好了,所以是12

其次,那個unit是傳入的值 ,為30

所以返回的值是 12*30 = 360

 

運行結果:

 

總結:

UnitConverter int 類型的區別

  1. 一個是預定義,一個是自定義
  2. 一個是單純一點,一個是復雜點,有自己定義的方法和屬性和字段和函數。當然,C#里面是面向對象的,所以就連int也有方法,或者 函數

    比如int類型有 toString的強制轉換函數

 

類的初始化 或者 實例化的單詞 是initialization,詞匯是 instantiates an object

 

 

 

 

// The instance field Name pertains to an instance of a particular Panda,

// whereas Population pertains to the set of all Pandas:

 

public class Panda

{

    public string Name; // Instance field

    public static int Population; // Static field

 

    public Panda (string n) // Constructor

    {

        Name = n; // Assign the instance field

        Population = Population + 1; // Increment the static Population field

    }

}

 

static void Main()

{

    Panda p1 = new Panda ("Pan Dee");

    Panda p2 = new Panda ("Pan Dah");

 

    Console.WriteLine (p1.Name); // Pan Dee

    Console.WriteLine (p2.Name); // Pan Dah

 

    Console.WriteLine (Panda.Population); // 2

}

 

運行結果:

又發明了一個詞,叫做static,翻譯過來是靜態的意思。就是運行的時候一直駐留在內存里,反復調用不銷毀(只是我的粗狂理解,並不是真的如此,我知道計算機知識編程知識用這種黑盒子或者叫做知識屏蔽,循序漸進是有用的)

所以字段Population是2

 

 

結構體

 

 

 

類是引用的

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM