当前位置: 首页 > article >正文

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

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

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


http://www.kler.cn/a/379901.html

相关文章:

  • web实操2——idea创建普通web项目
  • 【ChatGPT】让ChatGPT在回答中附带参考文献与来源
  • 你知道Mac也能拥有丰富的右键菜单栏吗?
  • adb 常用命令汇总
  • 全志A133 android10 LVDS幅值调节
  • 【每日一题】LeetCode - 三数之和
  • 抓住问题的关键解决LeetCode第3337题字符串转换后的长度II
  • Go语言与数据库操作:从连接到CRUD
  • 有哪些编辑器,怎样选择编辑器
  • 嵌入式硬件电子电路设计(三)电源电路之负电源
  • Oracle SQL Loader概念及用法
  • IOS 防截屏实现
  • 与IP网络规划相关的知识点
  • Linux之信号量
  • Mate70还没发布,就有经销商因提前拆封被罚款50万起?
  • linux驱动-认识输入子系统源码以及裁剪
  • 【c++篇】:深入剖析vector--模拟实现属于自己的c++动态数组
  • Python+Requests+PyTest+Excel+Allure 接口自动化测试实战!
  • 2024年科技特长生招生新趋势:多领域扩展与创新人才培养
  • 连续可穿戴式基于微型机器学习跌倒检测
  • Win系统通过命令行查看笔记本电池损耗/寿命/健康
  • 每天10个vue面试题(七)
  • 【Redis_Day3】Redis通用命令
  • VR 创业之路:从《I Expect You To Die》到未来展望
  • 深度学习:Yolo V4的改进
  • 【系统架构设计师】2023年真题论文: 论面向对象分析的应用与实现(包括解题思路和素材)