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

 

 

结构体

 

 

 

类是引用的

 

 

 

 

posted @ 2020-06-13 12:41  司徒无名  阅读(1101)  评论(0编辑  收藏  举报