面向对象
一个人的特征可以理解成这个人的属性
一个人的行为可以理解成这个人的方法
什么是对象?
看得见、摸得到、具体的、特指的
什么是类?
是具有相同属性和方法的。类是对象的类型
类和对象的区别
- 类是抽象的概念,仅仅是模板,比如:“人”类
- 对象是一个你能够看得到、摸得着的具体实体
- 类不占内存,对象才占内存
类的定义
[访问修饰符] class 类型
{
成员;
}
类的实例化
- 类的实例化,用关键字new
- 语法:类 实例名=new 类()
- 类的成员的访问
- 实例名.属性 实例名.方法名()
- 字段、方法、属性都可以叫做类的成员Member,它们都需要定义访问级别。访问级别的用处在于控制成员在那些地方可以被访问,这样达到面向对象中“封装”的目的
- 访问修饰符:public、private、internal、protected
数据类型
类型转换
在C#中类型转换有三种:隐式转换、显示转换、装箱和拆箱
- 隐式转换:int——>double,多小数
- 显示(强制)转换:double——>int,丢精度 Convert、string——>int
is和as的区别
- typeA is B 仅判断
- typeA as TypeB 先判断,在转换
- 如果成功了那就是真的成功了,如果不成功返回空
as也是转换,但是如果转换不了的,不报异常,返回来的是null
is也是转换,返回的是bool值。true就是能转换,false就是不能转换
什么是隐式转换?
一般是低类型向高类型转换,能够保证值不发生变化
如:short(char)—>int—>long—>float—>double
例
1. int a = 1;//定义一个变量为a的整数类型,并赋值1 2. long b = a;//定义一个变量为b的长整数类型,并把a赋值给b
什么是显示转换?
从高类型向低类型转换
如
1. float b = 3.14; 2. c = (int)b 3. c的值就是3
装箱和拆箱
1、装箱:是将一个值类型的数据隐式转换成一个对象类型的数据,把一个值类型装箱就是创建一个object类型的实例,并把该值类型的赋值给这个object对象
例
1. int i =10; 2. object obj = i;//隐式转换装箱 3. 4. int i =10; 5. object obj = (object)i;//显示转换装箱
分析:i及其值10是在栈空间中分配的额,obj是引用类型变量,也是在栈空间中分配的,i装箱后变为引用类型,在堆空间中分配相应的空间,obj中包含地址
2、拆箱:将引用类型的数据显示转换成一个值类型数据,分为两步:首先检查对象实例,确保它是给定值类型的一个装箱值,然后把实例类型复制到值类型数据中
例
1. Object obj = 10; 2. Int I = (int)obj; //显示转换拆箱
3、区别:装箱隐式转换或显示转换均可,拆箱只能是显示转换