自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 设计模式(七)之装饰模式

装饰器模式,顾名思义,就是对已经存在的某些类进行装饰,以此来扩展一些功能。 下图为其结构图: 四个主要角色分别为: 抽象构件(Component)角色:给出一个抽象接口,以规范准备接受附加责任的对象。 具体构件(ConCreteComponent)角色:定义一个将要接受附加责任的类。 装饰(De...

2020-03-23 22:55:30

阅读数 9

评论数 0

原创 设计模式(六)之里氏替换原则

里氏替换原则,为继承定义规范。 里氏替换原则有如下特点: 代码共享,减少创建类的工作量 提高代码的重用性 提高代码的可扩展性 提高产品代码的开放性 继承侵入性 只要继承,必须拥有父类的内容 降低代码的灵活性,子类必须拥有父类的属性和方法 增强耦合性。 里氏替换原则: 有一功能P1,由类A完成。现需...

2020-03-15 15:05:34

阅读数 12

评论数 0

原创 设计模式(五)之依赖倒转原则

依赖倒置原则的包含如下的三层含义: 高层模块不应该依赖低层模块,两者都应该依赖其抽象 抽象不应该依赖细节 细节应该依赖抽象 就是面向接口编程,采用依赖倒置原则可以减少类间的耦合性,提高系统的稳定性,降低并行开发引起的风险,提高代码的可读性和可维护性。 举个例子,小明开奔...

2020-03-05 21:37:49

阅读数 14

评论数 0

原创 设计模式(四)之开放封闭原则

开放封闭原则: 软件实体(类、模块、函数等等)应该可以扩展,但是不可以修改。 也就是如果需求发生变化导致程序中多个依赖模块都发生了级联的改动,就说明这个程序是有问题的,程序变得相对脆弱、无法重用。开放封闭原则就相对的解决了这个问题,它强调的是你设计的模块应该从不改变(绝对不改变是不可能的,只能相对...

2020-02-27 13:40:08

阅读数 27

评论数 0

原创 设计模式(三)之单一职责原则

单一职责原则: 官方给的说法是:就一个类而言,应该仅有一个因其他变化的原因。 说白了就是,一个类只负责一项职责。 最简单也是最难的原则。难处在于对职责进行划分。单一职责原则提出了一个编写程序的标准,用“职责”或“变化原因”来衡量接口或类设计得是否优良,但是“职责”和“变化原因”都是不可度量的,因项...

2020-02-21 13:37:15

阅读数 11

评论数 0

原创 设计模式(二)之策略模式

策略模式:定义了算法家族,分别封装起来,让其之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。 下边使用例子来具体分析: 制作一个商场收银的软件,营业员根据客户购买的单价和数量,向客户收费。并附带打折的选项。效果如下图所示: 主要部分代码: using System; using ...

2020-02-20 16:19:40

阅读数 17

评论数 0

原创 设计模式(一)之简单工厂模式

简单工厂模式,他并不属于23种设计模式; 它的实现和它的名字气质很符; 就是简单; 先来说下应用场景:当你不确定,有多少种操作的时候,例如:计算器中的 + - * / 我们可以使用简单工厂模式。 我们就以上边说过的加减乘除运算举例:建立一个控制台应用,输入两个数字和一个运算符,得到结果。 不好的实...

2020-02-17 14:10:23

阅读数 17

评论数 0

原创 C#自学笔记(二十一)之派生类中的构造函数 object类

今天看下派生类中的有参数和无参数的构造函数以及object类: 1:无参数构造函数: /* C#主要的运行函数,就是main函数 */ static void Main(string[] args) { // 五参数构造函数 ...

2019-07-18 14:21:01

阅读数 28

评论数 0

原创 C#自学笔记(二十)之C#接口interface

最近工作中需要使用到接口interface。可是接口是用来做什么的?我看了一些网上的例子,目前我看到的大多数接口的功能为一下两点: 1:接口作为约束与规范 我们可以根据需求来定义接口,然后我们再定义类来实现这个接口。接口为一个或多个类提供规范。 2:优化程序设计 面向对象设计中我们追求的原则之一就...

2019-07-17 23:07:16

阅读数 28

评论数 0

原创 C#自学笔记(十九)之抽象类abstract

C#中的抽象类(abstract)。 1:抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法 2:抽象类不能被实例化 3:抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明为抽象类 4:具体派生类必须覆盖基类的抽象方法 5:抽象派生类可以覆盖基...

2019-07-04 08:33:19

阅读数 18

评论数 0

原创 C#自学笔记(十八)之C#虚方法virtual

C#中的继承,C#是面向对象语言,面向对象三种特性:封装、继承、多态。 这里主要是继承,这篇只是基础 首先定义一个基类:积累中含有一个使用virtual定义的一个虚方法。 virtual关键字用于在基类中修饰方法。virtual的使用会有两种情况: 1、在基类中定义了virtual方法,但...

2019-07-03 09:12:41

阅读数 32

评论数 0

原创 C#自学笔记(十七)之C#重载

C#中的重载:包含两个方面,函数重载,运算符重载 (1):函数重载 最简单的例子就是Console.writeLine即可以打印字符串变量,又能打印整型变量。 class yunsuan { // 下边的两个方法除了返回值类型不同之外,其余都相同。 // 这被称为C#的重...

2019-07-02 13:38:00

阅读数 28

评论数 0

原创 C#自学笔记(十六)之C#类中的成员属性 构造函数 析构函数

C#中类的成员属性、构造函数、析构函数。 代码是基于昨天类的代码进行测试的。 基本代码: /*声明对象*/ cat Tom = new cat(); Tom.age = -1; //设置年龄 Tom.TalkAge(); //输出:我今年-1岁了 类中的方法: /*我今年几...

2019-07-01 10:08:28

阅读数 26

评论数 0

原创 C#自学笔记(十五)之C#中的类

C#中的类。 首先定义一个类文件。 点击项目 -> 添加类(这里没有办法截图)理解万岁。 C#中的类与PHP中的类是类似的,只要能实例化,在哪都可以调用。 person gc = new person("GC",23,new cat()); // 实例化 Co...

2019-06-30 09:52:57

阅读数 31

评论数 0

原创 C#自学笔记(十四)之函数(方法)

C#的函数 1:声明函数 C#的函数和php的函数功能相同,但是定义方法不同 函数状态 + 返回类型 + (参数){ Method body:方法主体,包含了完成任务所需的指令集。 } 注意返回类型一定要与定义好的返回类型保持一致。 函数可以没有参数。 实例: /** ...

2019-06-29 10:40:29

阅读数 26

评论数 0

原创 C#自学笔记(十三)之字符串string

C#字符串: 1:定义一个字符串 string one, two; one = "hello"; two = " gc"; 2:使用 + 链接字符串 // 字符串链接 string str = one + two; Console.Wri...

2019-06-24 09:02:00

阅读数 43

评论数 0

原创 C#自学笔记(十二)之数组(二)

C#数组。 1:多维数组 定义二位数组 int[,] array = new int[,] {{1,2,3},{4,5,6},{7,8,9},{10,11,12}}; 使用for foreach循环遍历二维数组 // 使用for循环遍历二位数组 for (int i = 0; i ...

2019-06-22 09:42:22

阅读数 37

评论数 0

原创 C#自学笔记(十一)之数组(一)

C#中的数组。 C#的数组和我之前使用的PHP的数组完全不一样。 C#的数组是需要实例化的,实例化的方式有两种 1:直接赋值。 2:使用new关键字,实例化的时候要声明维度和每个维度的长度。 1:定义数组 数组创建必须有数组大小或数组初始值设定项 声明数组的同时给数组赋值 数据类型...

2019-06-20 09:09:04

阅读数 42

评论数 0

原创 C#自学笔记(十)之枚举类型与结构体

C#中的枚举类型和结构体。 枚举类型使用enum定义: // 枚举有值也有键。和数组类似,默认从0开始,依次加1. // 但是如果枚举中的几个元素被赋值,其之后的元素,都在其上加1 // :后边的类型是指定枚举中数值(键值)的类型,默认int ...

2019-06-19 09:26:55

阅读数 89

评论数 0

原创 C#自学笔记(九)之循环语句for while do-while break continue

C#中的循环语句:do-while、while、for 其实还有个foreach,这个等看完数组之后再补充吧 1:for循环 int a = 10; for (int i = 0; i <= a; i++ ){ Console.WriteLine(i); } //输出结...

2019-06-18 08:54:03

阅读数 66

评论数 0

原创 C#自学笔记(八)之判断语句IF SWITCH

C#中的判断语句IF/SWITCH 1:IF / ELSEIF / ELSE If 满足条件择执行; 多个elseif时,其中有一个满足条件,那个之后的elseif都不会执行; else上面都不满足时执行; C#支持三元运算符,用法同于PHP bool a = true; ...

2019-06-17 08:49:00

阅读数 45

评论数 0

原创 C#自学笔记(七)之逻辑运算符

首先说明,算数运算符的优先级大于逻辑运算符。 把这个单独拿出来记录一下,是因为他和PHP不一样。 不能习惯的使用PHP中的那套对于C#的逻辑运算符的逻辑。 1:&& 逻辑与运算符 实例: bool a = true; bool c = true; bool b =...

2019-06-16 09:37:33

阅读数 39

评论数 0

原创 C#自学笔记(六)之数据类型转换的四种方法

1:数据类型的隐式转换,相对安全,不会导致数据丢失 无关键字与变量类型修饰的转换称作隐式转换。(不是所有的隐式转换都是可以的) 实例: short a = 1212; int b; b = a; // 隐式转换 //Console.WriteLine(b); int aa =...

2019-06-15 17:04:18

阅读数 64

评论数 0

原创 C#自学笔记(五)之常量、@控制符、转译符、ASCII编码,Console.Write

标题写的有点乱啊 这篇日志记录一下C#的常量,ASCII编码、@控制符、“+”连接符、Console.WriteLine及转译字符。 1:声明常量 常量一旦被定义,不易被修改。 (1)const声明:定义常量必须赋值 const double pai = 3.1415926; const声明的变量...

2019-06-15 14:38:14

阅读数 82

评论数 0

原创 C#自学笔记(四)之变量及算数运算符

今天看下C#的变量,测试的例子中会带有一部分C#的运算符。 测试用的代码在最下方,可以逐一试一下。 1:定义变量 int a = 1; // 定义一个整数变量 double b = 1.1; //定义一个浮点数变量 int aa,bb,cc,dd; //一次性定义四个变量(最好不要这...

2019-06-15 13:54:55

阅读数 53

评论数 0

原创 C#自学笔记(三)之数据类型

记录下C#中的数据类型。 在 C# 中,变量分为以下几种类型: 值类型(Value types) 引用类型(Reference types) 指针类型(Pointer types) 目前我看的是值类型,引用类型、指针类型后边的两个看到了在记录。 (一):整形有: sbyte、by...

2019-06-13 12:24:02

阅读数 37

评论数 0

原创 C#自学笔记(二)之十进制与二进制、八进制、十六进制之间的转换

我不是专业学计算机的,这方面了解的不多,之前也没有遇到过这方面的问题,最近看C#的时候发现有这方面的问题,记录下对这个转换的理解。 所谓的进制,就是逢几进一的问题,生活中我们使用的是十进制,就是逢十进一。剩下的就不用多说了,下面开始一个一个来。 (1):十进制转二进制: 79 / 2 = 3...

2019-06-12 16:59:29

阅读数 122

评论数 0

原创 C#自学笔记(一)之环境搭建以及第一个实例

今天开始C#的学习,原本计划是先看javascript的,可是计划赶不上变化,js暂时先搁置吧,这个还是要着急一点。 这个可就没么多废话了。和php一样,都是面向对象语言。只是php是弱类型语言,C#是强类型语言。 (一):搭建环境。软件我是从百度上下载的。下边是网址,具体版本看使用情况,我这里使...

2019-06-12 16:50:22

阅读数 220

评论数 0

提示
确定要删除当前文章?
取消 删除