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

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.lryc.cn/news/477164.html

相关文章:

  • 【AIGC】ChatGPT提示词Prompt高效编写技巧:逆向拆解OpenAI官方提示词
  • 【linux】端口监听和终止进程
  • 【网络安全】|kali中安装nessus
  • Docker可视化管理面板DPanel的安装
  • 【android12】【AHandler】【3.AHandler原理篇AHandler类方法全解】
  • 使用Docker Compose构建多容器应用
  • 面试知识目录
  • Rust移动开发:Rust在Android端集成使用介绍
  • vue3动态监听div高度案例
  • 数据转换 | Matlab基于SP符号递归图(Symbolic recurrence plots)一维数据转二维图像方法
  • 分类算法——逻辑回归 详解
  • 只允许指定ip远程连接ssh
  • Rust 力扣 - 2841. 几乎唯一子数组的最大和
  • TwinCL: A Twin Graph Contrastive Learning Model for Collaborative Filtering
  • 如何区分实例化网格中的每个实例
  • 理解 WordPress | 第一篇:与内容管理系统的关系
  • Python游戏脚本之实现飞机大战(附源码)
  • 使用Spring Boot搭建简单的web服务
  • 【IF-MMIN】利用模态不变性特征进行缺失模态的鲁棒多模态情感识别
  • RGB图像,排列方式NHWC适合CPU计算,NCHW适合GPU计算
  • 布朗运动
  • WPF+MVVM案例实战(二十二)- 制作一个侧边弹窗栏(CD类)
  • 集成旺店通旗舰版售后单至MySQL数据库
  • 【Linux】从零开始使用多路转接IO --- epoll
  • 爬虫学习4
  • CTF之web题集详情随手笔记
  • TDengine 集群能力:超越 InfluxDB 的水平扩展与开源优势
  • MATCH_DIRECT_BOOT_AWARE和MATCH_DIRECT_BOOT_UNAWARE
  • LabVIEW离心泵性能优化测试系统
  • token和jwt区别