当前位置:网站首页>C# 一周入门之《C#-类和对象》Day Six
C# 一周入门之《C#-类和对象》Day Six
2022-07-30 02:58:00 【太阳风暴】
导言:在这里再过一遍类和对象的知识,
一、类和对象
1. 类是什么?
类是为了描述现实世界里面的对象所用的一种语法表示,是一种人类思维的抽象。
2. 对象是什么?
这里的对象主要是指用计算机语言来描述现实中的事物。是将会被实例化的对象。
3. 类与对象的关系
一个现实的对象必然在我们人类的分类下,有很多属性,比如就拿人来说,一个人有很多属性,有年龄、姓名、性别等等,在c#里面就可以用类、结构体、等语法来描述表示一个人的信息,但是人不仅仅有属性,还有行为,比如说能够唱歌,能够跳舞等。结构体显然描述行为是不方便的,结构体主要是存数据的,刚好类就具有用函数来描述对象行为的功能,因此类就是描述对象的最佳实践。
二、C#类语法
1. 类的语法
类语法 使用 class 关键字 和 语句块来描述,声明一个类如下实例
public clsss Person
{
string Name;
int Age;
bool Sex;
public void Dance()
{
//跳舞
Console.WriteLine("I Can Dance!");
}
public void Sing()
{
//唱歌
Console.WriteLine("I Can Sing!");
}
}
如何使用一个类去生成一个对象呐?
使用 new 关键字即可
Person zhangShan = new Person();
zhangShan.Dance();
//zhangShan这个对象刚刚就跳了一个舞蹈
- 没有默认构造函数 会自动生成构造函数
- 访问对象使用的是 “.” 符号访问的
2. 类的访问权限
类的默认访问标识符是 internal,成员的默认访问标识符是 private。这些符号掌管着类、类成员访问符
一般类的访问我一般写的是 public
我们简单讨论一下 类成员的访问 标识符
- public:实例化对象能访问到
- private:实例化对象不能访问到
public clsss Person
{
public string Name = "张珊";
public int Age;
private bool Sex;
public Person()
{
}
public void Dance()
{
//跳
Console.WriteLine("I Can Dance!");
}
public void Sing()
{
//唱
Console.WriteLine("I Can Sing!");
}
private void Rap()
{
//Rap
Console.WriteLine("I Can Rap!");
}
}
我们在使用时,知道下面这些情况就了解啥意思了
Person zhangShan = new Person();
//正确
zhangShan.Dance();
zhangShan.Sing();
var name = zhangShan.Name;
var age = zhangShan.Age;
//错误-不能访问
zhangShan.Rap();
zhangShan.Sex();
3. 特殊函数
1、构造函数
类的 构造函数 是类的一个特殊的成员函数,当创建类的新对象时执行。也就是只执行一次
构造函数的名称与类的名称完全相同,它没有任何返回类型。
public clsss Person
{
//............
public Person(/*可跟参数*/)
{
//...........
//初始化某些值,
}
}
2、析构函数
类的 析构函数 是类的一个特殊的成员函数,当类的对象超出范围时执行。也即是自动调用我们不要、也不许手动调用
析构函数的名称是在类的名称前加上一个波浪形(~)作为前缀,它不返回值,也不带任何参数。
析构函数用于在结束程序(比如关闭文件、释放内存等)之前释放资源,
```csharp
public clsss Person
{
//............
public Person(/*可跟参数*/) //构造函数
{
//...........
//初始化某些值,
}
~Person(/*不可跟参数*/) //析构函数
{
//...........
//初始化某些值,
}
}
边栏推荐
- 记录NLP各种资源网址
- JS Bom window innerWidth clientWidth onresize 窗口滚动偏移量 返回顶部
- (RCE)远程代码/命令执行漏洞漏洞练习
- Awesome, Tencent technical experts handed Redis technical notes, and the download volume has exceeded 30W
- 成功解决AttributeError: ‘PngImageFile‘ object has no attribute ‘imshow‘
- 【Flink】从开发到生产上线,如何确定集群规划大小 ?
- JS history.back() go(-1) Location 跳转 重新加载页面 get请求 返回顶部 bom
- web初识
- 机器学习(十五)异常检测
- Solve The problem of Google browser cross-domain has had been blocked by CORS policy: The request The client is not a secure context and The resou
猜你喜欢

One book 1922 - table tennis

houdini 使用HDA Processor 实现处理HDA输入输出

JUC(四):简记线程的五/六种状态

JUC (six): synchronized

Embedded SIG | 分布式软总线

Leetcode.24 两两交换链表中的节点(递归)

The speed of life and death, every second counts

Leetcode.19 删链表倒数第 N 个结点(栈/先后指针)

1050的显卡,为何在Steam上的显卡使用率排行榜一直都是前五

JS history.back() go(-1) Location 跳转 重新加载页面 get请求 返回顶部 bom
随机推荐
力扣刷题训练(二)
Houdini 地形知识点
影响小程序开发费用的三个因素!
自动配置和 thymeleaf模板引擎
Hyperchain超块链创始人史兴国接受21世纪经济报道采访,解读上海NFT新规及数藏发展
A transaction is in Mysql?What's the use?
奥比中光高级副总裁王兆民离职 董事会秘书暂未取得资格证
Embedded SIG | 分布式软总线
web初识
Redis(十) - Redission原理与实践
JUC(八):synchronized小练习
新手入门上位机开发 C#语言:PC串口发送数据
力扣(LeetCode)210. 课程表 II(2022.07.29)
【基于RT-Thread+RA6M4的智能鱼缸系统设计之鱼我所欲也】
华宝新能通过注册:拟募资近7亿 营收增加利润反而下降
JUC(七):变量的线程安全分析
测试/开发程序员面试该如何谈薪资待遇呢?突破这个坎......
解决:npm ERR code ELIFECYCLE npm ERR errno 1(安装脚手架过程中,在npm run dev 时发生错误)
基于数据驱动故障预测的多台电力设备预测性维护调度
成功解决pydotplus.graphviz.InvocationException: GraphViz‘s executables not found