C#-类:声明类、声明类对象

一:类的声明

class 类名
{
    //特征——成员变量
    //行为——成员方法
    //保护特征——成员属性

    //构造函数和析构函数
    //索引器
    //运算符重载
    //静态成员
}
  1. 类名:帕斯卡

  2. 同一个语句块中的不同类 不能重名

二:声明类对象

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为空引用

 三:类对象(引用类型)的声明和调用

类对象(引用类型)的声明和调用

上一篇:Vue.js内置指令全解析:从基础到实践


下一篇:2款使用.NET开发的数据库系统