C#-类:声明类、声明类对象
一:类的声明
class 类名
{
//特征——成员变量
//行为——成员方法
//保护特征——成员属性
//构造函数和析构函数
//索引器
//运算符重载
//静态成员
}
-
类名:帕斯卡
-
同一个语句块中的不同类 不能重名
二:声明类对象
2.1 类的声明 ≠ 类对象的声明
类的声明:声明对象的模板,用来抽象(形容)事物。即声明一个自定义类型
类对象的声明:表示现实中的对象个体
类创建对象的过程 一般称为实例化对象,是在声明变量
类对象 都是引用类型的
2.2 实例化对象的语法
Person p; //声明对象,只是取了一个名字。在栈上有空间,堆上没有
Person p2 = null; //null 代表空 不分配堆内存空间。在栈上有空间
Person p3 = new Person(); //实例化一个对象,可直接的使用
Person p4 = new Person(); //相当于又是一个人对象
Peron p5 = new Person(){"小红",12};//调用对应的构造函数
//只有new了才能点出其成员变量
错误使用
Customer c1=null;
c1.name="张三"; //写代码时不报错,运行时会出现异常
2.3 引用类型的赋值和调用
类对象是引用类型
所有的引用类型,要么在定义时赋值,要么在构造(new)时赋值
如果没有new,那就是null,里面无任何数值,因此无法调用其属性。
null为空引用,会出现空指针异常
例 Program P;异常 P.Test(); P未进行初始化
解决方法: Program P = new Program() 或 Program P=null;
未进行赋值,编译器会报错而赋空值在调用其属性后,运行会中断
混引用,不能调用任何成员
private T[] data=new T[0];
被赋值,仅长度为空,可调用
private T[] data=null;
被赋值,但不可调用
private T[] data;
先定义,再于构造时赋值
2.4 对象的构造和赋值--引用的改变
Customer s1=new Customer{"张三","三里屯",17};
Customer s2=s1; //只有在new后才会在堆中开辟内存,因此 s2=s1,赋的是引用
s2.age=20; //此时s1的数据也被修改
s1=null; //空间回收,s1为空引用
三:类对象(引用类型)的声明和调用
类对象(引用类型)的声明和调用