一、属性和字段
1.字段:像数据库中非常自由的,毫无限制的访问共有信息,称之为字段
2.属性:但是我们有时候希望字段有一定的取值范围,以及读写状态,这样就引入了属性
3.区别:
(1)属性是逻辑字段,是字段的扩展,不占用实际的内存;而字段占用内存空间
以下是一个个人理解的例子(觉得可能有些偏差,望大家提意见!)
(2)字段允许自由读写,而属性要求字段只能读或者只能写
例如:当我们共享文件时可以设置文件的属性(是否允许读写),那么此时文件中的信息就相当于字段,如果不设置属性,字段就允许自由读写。
4.具体代码体现
//可读写
public int a
{
set { _a = value; }
get { return _a; }
}
//只读
public bool b
{
get { return _b; }
}
所以set负责属性的写入,get负责属性的读取
二、常量和变量
1.变量:在程序的运行过程中其值可以改变的量,
格式:变量的数据类型 变量名(标识符);
使用:int a=10; double b,c; int d=100,e=200; double f=a+b+c+d+e;
2.常量:通过声明和初始化变量时,在前面加上const关键字,可以把此变量指定为常量;
格式:const 常量数据类型 变量名(标识符)=常量值;
使用:const double PI=3.1415926;
三、拆箱和装箱
1.装箱:调用一个含有类型为object的参数的方法,改object可以支持任意类型,以变通用,当你需要将一个值类型(如int32)传入时,需要装箱。
int val = 100;
object obj = val;
Console.WriteLine (“对象的值 = {0}", obj);
2.拆箱:将值类型转换成引用类型,再由引用类型转换成值类型的过程
从object类型到值类型或从接口类型到实现该接口的值类型的显示转换
int val = 100;
object obj = val;
int num = (int) obj;
Console.WriteLine ("num: {0}", num);
四、重载和重写
1.重载:在同一定义域内(比如一个类里面)。方法名相同,参数个数、次序、类型不同。其实就是建立一个类,在类中构造两个以上的方法。
class Cat
{
public string name="";
public Cat(string name)
{
this.name=name;
}
public Cat()
{
this.name="无名";
}
}