C#复习:面向对象基本概念

news/2024/11/26 12:13:37/

C#复习:面向对象基本概念

  • 前言
  • 什么是面向对象
    • 类,名称空间的介绍
  • 如何导入类库
    • DLL引用(黑盒引用)
    • 项目引用(白盒引用)
    • NuGet介绍
  • 依赖关系
  • C#的分装(个人理解)

前言

关于我C#的博客是根据刘铁猛老师的C#入门课程为基础写的,可以配合刘铁猛老师的课程一起观看,会由更好的理解!

什么是面向对象

所谓面向对象,在我看来,就是把世界上的很多事物抽象成数据,方法等,举个例子
在这里插入图片描述
这是个汽车,这个汽车有发动机,变速器…
在面向对象的程序中,我们是这样描述这个汽车的
在这里插入图片描述
我们将发动机定义成了一个整形的字段,同时车还有一个速度,一个起火的方法,这就相当于设计图,当我在主函数内通过Car这个类声明一个对象时,操作系统会为其开辟一块内存空间,就相当于我对照这个设计图将汽车设计出来了,并且我可以对它进行一系列操作。
在这里插入图片描述

类,名称空间的介绍

是一种数据结构,是面向对象程序设计的基础,也是重点,所谓类就是各种数据,方法,事件…进行分装,同时,类也可以继承,多态也是基于类中的方法,若要使用某个类的话,要么使用权限访问法,要么在开头引用名称空间,直接进行访问。
在这里插入图片描述

在VS编译器中,类的提示是水蓝色的。
名称空间可以认为是类的集合,是对类进行的树型结构的管理,类似与图书馆
在这里插入图片描述
其中的每一本书都是一个被定义的类,可以通过命名空间对所有的类进行管理和访问。同时,名称空间还有一个很重要的功能,就是防止类名重复导致访问冲突,归属于不同名称空间的类,即使类名冲突,也可以分别对其进行访问。

如何导入类库

首先要讲讲什么是类库,所谓类库就加粗样式是各种名称空间的集合,相当于对名称空间再次进行分装我们在使用某个类的时候,就要引用它所在的类库(类似与C语言的包含头文件)VS可以引用自带的类库,同时使用者也可以自己定义类库并引用。

DLL引用(黑盒引用)

DLL引用被称为黑盒引用的原因,是因为我们无法知道项目中某功能的具体实现,也无法修改内容,我们只能使用。

对于微软编辑好的类库,我们可以这样引用
在这里插入图片描述
点击之后程序集下就是微软编译的类库,同时我们也可以进行搜索,找到类库后单机类库名,左侧打勾,并且确认。
在这里插入图片描述
在这里插入图片描述
其他被引用的类库是一些常用功能,系统自动引入了。
自定义的类库如何引用呢?
在这里插入图片描述
在这里插入图片描述

创建好类库后,写一个类,对类库进行运行会生成.dll文件,在自己的项目中引用,下面我来展示如何引用。
在这里插入图片描述
引用成功后,就可以使用该类库了。

项目引用(白盒引用)

所谓白盒引用,就是我们有项目的源代码,可以对其进行修改

首先创建类库(.NET Framework),写好内容后,引用
在这里插入图片描述
就可以使用该类库的内容了。

NuGet介绍

许多类库是有关联的,如果想使用某个类库中的内容,往往需要引用其他类库,为了减少我们的操作了,方便使用,NuGet程序包就出现了,程序包将一些关联的类库在进行分装,只要下载,添加后能直接使用了。

依赖关系

在我们进行程序设计的时候,往往希望我们的代码是高内聚,低耦合的,所谓高内聚就是单一的功能只由单一的方法实现,一个方法最好只实现一个功能,所谓低耦合,就是在项目中不要太依赖与某一个类,方法等,只要被依赖的类和方法出问题了,整个项目都会出问题,我们也可以通过很多方式解耦和,如接口等

C#的分装(个人理解)

面向对象的基础是类,类是方法,数据的分装,名称空间则是对类进行的树形管理,防止重复的类名访问冲突,类库对名称空间进行分装,便于更好的管理,程序包又对类库进行了分装,将相关联的类库分装在一个程序包中,便于开发者使用。
在这里插入图片描述


http://www.ppmy.cn/news/1117161.html

相关文章

什么是VLAN?VLAN是如何工作的?

【微|信|公|众|号:厦门微思网络】 VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。 每个VLAN是一个广播域,VLAN内的主机间可以直接通信,而VLAN间则…

Linux文件内容显示练习

1.新建2个文件b1.txt b2.txt ,使用vim打开b1.txt 输入“Hello World”字符串,将b1.txt硬链接到b2.txt 查看2个文件的硬连接数 [rootserver ~]# vim b1.txt [rootserver ~]# ln b1.txt b2.txt #建立硬链接 [rootserver ~]# stat b2.txt [rootserver ~]# stat b1.txt [r…

【基于优化算法的光伏系统】基于光伏系统(由光伏、电池、转换器、PI 控制器、逆变器和充电控制器组成)的 Simulink 模型

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

20230919后台面经整理

1.你认为什么是操作系统,操作系统有哪些功能 os是:管理资源、向用户提供服务、硬件机器的扩展 1.进程线程管理:状态、控制、通信等 2.存储管理:分配回收、地址转换 3.文件管理:目录、操作、磁盘、存取 4.设备管理&…

无涯教程-JavaScript - SQRTPI函数

描述 SQRTPI函数返回(number * pi)的平方根。 语法 SQRTPI (number)争论 Argument描述Required/OptionalNumberThe number by which pi is multiplied.Required Notes If the specified number < 0, SQRTPI returns the #NUM! error value.如果指定的数字为非数字,则S…

信息系统项目管理——资源管理

项目资源管理 项目团队由承担特定角色和职责的个人组成&#xff0c;他们为实现项目目标而共同努力&#xff0c;项目经理因此应在获取、管理、激励和增强项目团队方面投入适当的努力项目经理既是项目团队的领导者又是项目团队的管理者&#xff0c;项目项目活动&#xff0c;负责…

牛客网SQL158

每类视频近一个月的转发量率_牛客题霸_牛客网 题目表达很有歧义&#xff0c;近30的这个概念没有描述清楚&#xff0c;看了题解里才知道是max(start_time) 前的30天&#xff0c;而且其实按照他给出的解释&#xff0c;10.31的近30天是10.2-10.31&#xff0c;而这个范围实际上并不…

修改和完成SpringSecurity的登录功能

1、配置SpringSecurity改变默认表单页面但是流程不变 添加loginPage、loginProcessingUrl方法 //做拦截Overrideprotected void configure(HttpSecurity http) throws Exception {// 请求授权http.formLogin().loginPage("/require")//自定义登录页面.loginProcessi…