网站首页 > 技术文章 正文
C# 类和对象的基本概念
(1)抽象:是指对现实世界存在的事物进行分析和认识的过程
(2)类
定义:类是具有共同特征和行为的一类事物的统称,是一个抽象的概念
关键字:class ,后缀名: .cs
语法:
//C# 声明
public class 类名{
// 类的属性声明: 属性描述的是事物的特征
// 类的方法生命: 方法描述的类的行为
}
(3)对象:对象是现实世界中存在的独一无二的具体个体,是 类 通过new实例化的结果
(1) 实例化对象
类名 对象名=new 类名();
(2) 访问对象字段 :对象名.字段=值;
(3) 调用类的方法:对象名.方法名(参数);
(4)命名空间
定义:通过namespace 来定义命名空间,其作用是管理项目中的类文件
引入命名空间有2种方式:
(1) 使用using 引入命名空间
(2) 使用完全限定名的方式操作命名空间中的类
(5)类的静态成员
静态成员:类的静态字段是指被static 修饰的成员, 静态成员 属于整个类,被当前类的所有对象共享,修改之后对其他成员也会有影响,
调用时,直接通过 类名.字段名 来进行访问
// 语法
class 类名
{
[访问修饰符] static 类型 字段名;
}
实例成员:需要通过new 关键字 来创建对象 来访问的成员,没有被static 修饰,每个实例对象拥有自己独立的内存空间,修改之后其他成员不受影响,
调用时: 类名 对象名=new 类名();
然后通过 对象名.字段名来进行访问
同理:
静态方法,就是被static 修饰的方法,调用时直接通过 类名.方法名(参数) 来进行调用
class 类名
{
// 静态方法语法
[访问修饰符] static 返回值类型 方法名(参数列表)
{
方法体;
}
}
实例方法,就是没有被static 修饰的方法
//调用时:---->类名 对象名=new 类名();
// 需要先创建对象,然后通过 ---->对象名.方法名(参数) 来进行调用
// 综合案例:
class Student
{
// 实例成员: 需要通过new 关键字 来创建对象 来访问的成员
public string Name { get; set; }
public int Age { get; set; }
// 静态成员:使用static 关键字来修饰的成员,就是静态成员
public static string school = "湖北工业职业技术学院";
}
class Program
{
static void Main(string[] args)
{
Student s = new Student()
{
Name = "甘世鹏",
Age = 18
};
//// 实例成员 只能通过对象名来调用
//// 类名 实例对象 =new 类名();
//// 实例成员 调用属性: 实例对象.属性
//// 实例成员 调用方法: 实例对象.方法名();
Console.WriteLine("姓名:"+s.Name);
//// 静态成员 直接通过类名来调用
//// 静态成员 调用属性: 类名.属性
//// 静态成员 调用方法: 类名.方法名();
Console.WriteLine("school大学:"+Student.school);
Student s1 = new Student()
{
Name = "张三2", Age = 20
};
Console.WriteLine("姓名:"+s1.Name);
Console.WriteLine("school大学:" + Student.school);
/*
上述 案例中,把s1 对象的Name 属性的值 "张三" 修改为 "张三2 ", 对第一个对象s中的Name
属性没有任何影响,因为两个是单独的内存,
但如果修改 static 修饰的school 属性的值,两个对象的school 字段的值同时 都会改变
例如,把school的值由 ”湖北工业职业技术学院“ 修改为”湖北工业职业学院“ */
}
}
猜你喜欢
- 2024-10-04 C# Win Form 窗体间传递参数的几种方法总结
- 2024-10-04 面试官常问:关于Redis的分布式锁设计,你是如何实现的?
- 2024-10-04 互联网面试——C# 面试题(c#面试题2020)
- 2024-10-04 如何使用 C# 构建自己的 task scheduler
- 2024-10-04 C#-实例与静态成员,访问修饰符,命名空间,启动项目 080
- 2024-10-04 C#在类型的外部不能声明全局变量,与C,C++对比,示例说明
- 10-02基于深度学习的铸件缺陷检测_如何控制和检测铸件缺陷?有缺陷铸件如何处置?
- 10-02Linux Mint 22.1 Cinnamon Edition 搭建深度学习环境
- 10-02AWD-LSTM语言模型是如何实现的_lstm语言模型
- 10-02NVIDIA Jetson Nano 2GB 系列文章(53):TAO模型训练工具简介
- 10-02使用ONNX和Torchscript加快推理速度的测试
- 10-02tensorflow GPU环境安装踩坑日记_tensorflow配置gpu环境
- 10-02Keye-VL-1.5-8B 快手 Keye-VL— 腾讯云两卡 32GB GPU保姆级部署指南
- 10-02Gateway_gateways
- 最近发表
-
- 基于深度学习的铸件缺陷检测_如何控制和检测铸件缺陷?有缺陷铸件如何处置?
- Linux Mint 22.1 Cinnamon Edition 搭建深度学习环境
- AWD-LSTM语言模型是如何实现的_lstm语言模型
- NVIDIA Jetson Nano 2GB 系列文章(53):TAO模型训练工具简介
- 使用ONNX和Torchscript加快推理速度的测试
- tensorflow GPU环境安装踩坑日记_tensorflow配置gpu环境
- Keye-VL-1.5-8B 快手 Keye-VL— 腾讯云两卡 32GB GPU保姆级部署指南
- Gateway_gateways
- Coze开源本地部署教程_开源canopen
- 扣子开源本地部署教程 丨Coze智能体小白喂饭级指南
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)