当前位置:网站首页>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(/*不可跟参数*/) //析构函数
{
//...........
//初始化某些值,
}
}
边栏推荐
- 三年经验只会点点点(功能测试),辞职后你可能连工作都找不到了。
- JUC(五):共享带来的问题
- 浏览器缓存机制
- Successfully resolved pydotplus.graphviz.InvocationException: GraphViz's executables not found
- 计算机复试面试题总结
- [Andrioid开发] Splash界面/用户协议与隐私政策弹窗/界面开发
- Oracle 迁移至Mysql
- Detailed explanation of carousel picture 2 - carousel pictures through left positioning
- 【机器学习】通俗易懂决策树(原理篇)
- 测试人员,除了测试还得会点什么
猜你喜欢
随机推荐
Redis (ten) - Redission principle and practice
Nuxt3学习
B. Inflation-Educational Codeforces Round 103 (Rated for Div. 2)
3.nodejs--模块化
golang的channel实现原理
【机器学习】通俗易懂决策树(原理篇)
成功解决AttributeError: ‘PngImageFile‘ object has no attribute ‘imshow‘
最重要的传输层
uni-app如何配置APP自定义顶部标题栏
动态绑定href url
对“不可能三角”发起挑战的公链们
快速入门jsp
【高性能计算】openMP
JS Bom window innerWidth clientWidth onresize 窗口滚动偏移量 返回顶部
Excuse me, when datax is synchronized to the oceanbase database, it is written according to the primary key update method. How to fill in the content in the drop-down box?
华宝新能通过注册:拟募资近7亿 营收增加利润反而下降
WebSocket在线通信
REUSE_ALV_GRID_DISPLAY详解
超详细的MySQL三万字总结
超详细的MySQL基本操作









