一、第三章 对象和类型
1、类和结构的区别:
二者实际上都是创建对象的模板,每个对象都包含数据,并提供了处理和访问数据的方法。都使用new来创建和初始化。
1)类定义了每个对象(称为实例)可以包含的数据和功能,类是引用类型,总是存储在堆(heap)上,关键字class,
类静态成员属于类,实例成员属于对象。类成员: 字段、属性(也可以定义只有get或者set访问器的属性)、常量(最好别声明为Public,private)、方法、构造函数、索引器、运算符、事件、析构函数、类型(类可以包含内部类)
2)而结构是值类型,通常存储在栈(stack)上,不支持继承。关键字struct
2、方法
注意,正式的C#术语区分函数和方法:
1)C#术语的函数成员:不仅包含方法、也包含类或结构的一些非数据成员,如索引器、运算符和构造函数和析构函数等,甚至还有属性。
2)C#术语的数据成员:而字段、常量和事件才是。
3、方法重载:overload 方法名相同 参数个数和/或数据类型不同,仅通过返回类型或者参数名称是不足以区分的,方法重载是可以调用另一个重载方法
4、方法重写(覆盖):override
5、方法参数 :
1)命名的参数
2)可选参数,必须是方法定义的最后参数;int GetSquareOf(int x,int y=1,int z=2){...}
3)个数可变的参数:int AnyNumberOfArguments(params int[] data){...} params Object[] data
public void AnyNumberOfArguments(params Object[] data)
{
}
调用:AnyNumberOfArguments("123", 456);
4)个数可变的参数+命名参数 则“个数可变的参数”只能使用一次,且必须是方法的最后一个参数
6、构造函数
可以为构造函数提供任意多的重载,只要它们的签名有明显的区别即可
静态构造函数
只读字段
枚举
部分类
静态类
Object类
二、第四章 对象和类型