自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Anthony_tester的博客

探索从QA角色到开发角色的转换之路(Q群574103281)

原创 C++模板-29-什么是模板和一个简单的例子

这篇开始进入模板的学习,接下来要学习模板,各种函数模板和类模板,然后学习几个标准的类,例如string类的,然后过度到学习各种容器。 1.什么是模板 模板就是建立通用模具,大大提高代码复用性。 2.没有模板是什么样的 例如,我们来做这个小练习,交换两个数的值,例如有两个int类型交...

2020-05-26 23:10:04 47 0

原创 C++面向对象-28-读写二进制文件

前面学习了对文本文件的读写操作,有了这个基础,我们来学习下,C++对二进制文件的读写操作。因为是二进制,所以不管是读还是写文件,其中打开方式要指定为iso::binary。 1.写二进制文件 二进制方式写文件主要利用流对象调用成员函数write() 函数原型:ostream& wri...

2020-05-24 22:47:29 62 0

原创 C++面向对象-27-读写文本文件

前面学习了多态,现在我们开始学习一些C++的武器,也就是一些常用的类库。程序在运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放。通过文件可以将数据持久化,也就是把数据写入文件,叫序列化,程序读取文件,显示出各种数据。这个过程叫反序列化。这篇开始我们来学习下C++如何读写文件。 1.文件...

2020-05-24 21:31:46 55 0

原创 C++面向对象-26-虚析构和纯虚析构

这篇来学习多态中可能会发生内存泄漏和解决办法,就要使用到虚析构函数和纯虚析构函数。先不介绍概念,肯定和前面学构造函数和析构函数中的析构函数有关系。先通过引出问题,然后介绍这两个概念和特点。 1.多态基本代码 在前面例子我们可写出一下代码,也没有什么问题 #include <ios...

2020-05-18 23:28:09 85 0

原创 C++面向对象-25-纯虚函数和抽象类

前面学习了多态底层原理和多态练习,这篇学习什么是纯虚函数和抽象类。虚函数前面我们介绍过,一个普通的类成员函数前面添加关键字virtual就变成一个虚函数。会有虚函数指针指向虚函数列表的概念,这里纯虚函数肯定和虚函数是有关系的。 1.虚函数的定义 语法是 virtual 返回值类型 函数名称...

2020-05-18 21:30:51 58 0

原创 C++面向对象-24-非多态vs多态实现计算器

现在基本上知道了什么是多态,接着我们来一个例子使用多态和不使用多态来实现一个小功能的对比。感受下使用多态带来的便利。 1.非多态方式实现计算器 这里计算器我们就简单描述成两个数的相加,相减和相乘。 #include <iostream> #include <strin...

2020-05-17 20:22:23 51 0

原创 C++面向对象-23-多态原理剖析

前面一篇学习了多态,有静态多态和动态多态之分。动态绑定是第一需要继承关系,第二是子类需要重写父类的函数。什么是重写,从函数返回值,函数名称和参数列表一模一样才叫函数重写。本篇就借助vs 开发工具来捋一捋多态的底层原理。 1.两个单词概念 在前面多继承的时候,我们也介绍了虚继承,其中使用了v...

2020-05-17 19:19:12 35 0

原创 C++面向对象-22-多态基本语法

前面内容学习了继承,在面向对象三大核心概念,我们学习完了封装,继承,剩下一个多态。这篇开始学习多态的基本概念和C++中多态基本使用。 1. 多态分两类 静态多态:函数重载和运行符重载属于静态多态,服用函数名 动态多态:派生类和虚函数实现运行时多态 这块的知识点和Java中思想是一样的。例如J...

2020-05-17 15:24:09 32 0

原创 C++面向对象-21-多继承语法和菱形继承问题

本篇来学习下C++中的多继承,一般来说多继承不建议使用,因为会很容易带来问题。项目中使用的话,需要注意。 1.多继承的语法 C++中支持多继承,例如有两个父类Base1和Base2,一个子类Sun, 现在子类要同时继承两个父类,语法格式如下 多继承语法格式:class 子类 : 继承方式...

2020-05-17 10:26:31 78 0

原创 C++面向对象-20-继承中同名静态成员的访问方式

上一篇中介绍了C++中继承中,如果子类和父类出现同名的非静态成员属性和方法的访问方式。如果要访问子类的非静态成员和方法,直接使用子类对象通过点就可以访问;如果想要访问父类的成员属性和方法,就需要使用子类对象点后面跟着父类的作用域才能访问。这篇来看看同名的static成员和方法如何访问,其实方法方式...

2020-05-16 20:22:17 38 0

原创 C++面向对象-19-继承中同名成员的访问方式

在继承中,如果出现子类和父类有相同的成员变量或者成员函数,那么在子类创建对象后,是如何进行访问的呢,本篇来学习下这个知识点。 1.子类和父类有相同名称的成员变量 #include <iostream> using namespace std; class Base { ...

2020-05-15 23:10:37 36 0

原创 C++面向对象-18-继承中的对象模型和继承中构造和析构顺序

前面一篇学习了继承,知道类子类虽然继承类父类的熟悉,但是不可以访问到父类的私有成员。那么我们先来讨论一个问题,子类是否继承了父类的私有成员变量呢?然后看看继承中子类的构造和父类的构造以及析构函数的执行顺序。 1.通过sizeof()函数来证明子类确实继承了父类的私有成员 直接来看下面代码 ...

2020-02-10 22:41:36 463 0

原创 C++面向对象-17-继承

开始学习C++面向对象的第二个特性:继承,前面学习都是类和对象,也就是封装的特点。所有的面向对象的编程语言都有封装,继承和多态这三个基本特性。继承就要了解,父类和子类的概念。意思就是,父类的属性和行为,子类可以继承得到,同时子类可以写一些特有的特性。通常这样去概括:父类在上层,特点是更抽象,子类在...

2020-02-02 23:04:49 221 0

原创 C++面向对象-16-关系运算符的重载

继续学习运算符的重载,这篇学习关系运算符的重载。所谓关系运算符就是(<, >, != , ==),就是两个对象比对的关系,一般就是相等,不相等,数值还有大于或者小于。如果是基本数据类型,数值型的话,编译器已经实现。我们要做的事情就是,比较两个自定义对象的关系。 1.自定义对象的比...

2020-02-01 23:43:36 170 0

原创 C++面向对象-15-赋值运算符的重载

这一篇来学习赋值运算符重载,先来了解什么是赋值运算符,也就是单个等号(=)就是赋值运算符。什么时候,我们需要对赋值运算符进行重载呢?这里面离不开值拷贝的知识。 1.C++编译器默认功能 C++编译器至少给一个类添加4个函数 1.默认构造函数(无参,函数体为空) 2.默认析构函数(无参,函数...

2020-02-01 23:07:35 232 0

原创 C++面向对象-14-递增运算符的重载

接着来学习递增运算符的重载,有一个变量i, i++ 这个++符号就是递增运算符。前面学习了几个运算符重载,需要明白的是,对于基本数据类型的运算,我们是不可以进行重载,例如两个int类型的数的加减乘除都不可以进行运算符的重载。我们需要使用运算符的重载是解决一些自定义的数据类型的时候。 1.基本...

2020-02-01 16:06:41 225 0

原创 C++面向对象-13-左移运算符的重载

前面一篇学习了加号运算符重载,这篇来学习左移运算符重载,什么是左移运算,符号就是<< , 当然还有右移,符号是>>。有时候我们通过左移/右移来实现自定义数据的输出。 1.一个自定义输出场景 例如我们有一个Person类,里面有两个属性,age和name, 左移运算符...

2020-02-01 00:34:18 95 0

原创 C++面向对象-12-加号运算符重载

这篇来学习一下运算符重载,运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。这些运算符重载,包括,加减号,左右移,关系运算符,赋值运算符和递增递减运算符。 1.加号运算符重载 例如,两个自定义类对象相加,怎么操作? #include <iostr...

2020-01-31 23:26:28 196 0

原创 C++面向对象-11-友元

这篇来学习一个新的知识点:友元。生活中你的家有客厅和卧室,客厅是所有客人都可以进去,但是卧室是私有的,在程序中,客厅就是public权限,卧室是private权限。但是,有一些特殊的,在程序中,有一些被定义成private的属性,也想让类外特殊的一些函数或者类进行访问,就需要用到友元技术。 友元...

2020-01-30 00:02:03 110 0

原创 C++面向对象-10-空指针访问成员函数 和const修饰成员函数

前面学习了this指针,这篇来看看空指针访问成员函数的问题和怎么解决这个问题。然后学习第二个知识点,const修饰成员函数。 1.空指针访问成员函数报错 先看看这段代码,一个类定义了两个成员函数,第二个函数里面需要访问成员变量。 #include <iostream> u...

2020-01-28 22:56:59 61 0

原创 C++面向对象-9-对象模型和this指针

本篇来学习对象模型和this指针,对象模型主要是了解对象的存储模型。在C++中,类内的成员变量和成员函数是分开存储的,只有非静态成员变量才是属于类的对象上,其他都和类存在不同内存区域。 1.一个类的空对象占用内存是多大字节 这里我们先写一个代码,通过sizeof()函数来打印一个空的类对象占用...

2020-01-23 22:40:13 88 0

原创 C++面向对象-8-静态成员变量和静态成员函数

这篇来学习在一个类中,用关键字static修饰成员变量和成员函数。前面我们知道,一个类主要有两类,一个是属性,也叫类成员变量,还有一个是类的行为,或者叫成员方法。如果在类的成员变量和类的成员方法前面加上关键字static修饰,就变成了静态成员变量和静态成员方法。 1.定义 静态成员就是在成员变...

2020-01-18 21:53:15 103 0

原创 C++面向对象-7- 初始化列表和类对象作为成员

如果我们想要对一个类里面的成员进行赋值操作,前面的学习了有参构造函数,那么我们第一个想到的就是通过有参构造函数进行快速赋值。第二个方法就是先调用无参构造,然后分别对应的set和get方法进行类成员的赋值操作。这里介绍第三种方法,就是在调用有参构造的时候,就进行参数化列表初始化。本篇第二个知识点来学...

2020-01-18 17:30:58 154 0

原创 C++面向对象-6-深拷贝和浅拷贝

前面一直在学习构造函数,其中拷贝构造我们带出了值传递,拷贝一个对象等概念。这篇来学习一下C++的一个非常容易面试遇到的问题,也就是学习过程中的一个坑。什么是浅拷贝和深拷贝,两者的区别是什么。 浅拷贝:简单的赋值拷贝操作 前面我们学习的拷贝构造函数就是浅拷贝 根据前面的代码,我们把Poin...

2020-01-12 23:43:04 115 0

原创 C++面向对象-5-类的构造函数调用规则

继续来学习构造函数的知识,通过前面学习,我们知道一个类中可以有 无参构造,有参构造,拷贝构造,那么编译器是如何决定调用这些构造函数,本篇就来学习这个调用规则。 知识点: 默认情况下,C++编译器至少给一个类添加3个函数 1.默认构造函数(无参,函数体为空) 2.默认析构函数(无参,函数体为空)...

2020-01-12 16:07:43 123 0

原创 C++面向对象-4-拷贝构造函数的调用时机

继续来学习构造函数,前面一篇学习了拷贝构造函数,至少了解了什么是拷贝构造函数,这篇就来学习下拷贝构造的使用。什么时候会使用到拷贝构造函数呢?大概可以分成三种场景: 使用一个已经创建完毕的对象来初始化一个新对象 值传递的方式给函数参数传值 以值方式返回局部对象 使用一个已经创建完毕的对象来...

2020-01-11 23:19:34 66 0

原创 C++面向对象-3-构造函数的分类和调用

前面一篇学习了类的构造函数和析构函数,两者都是编译器自动调用一次,构造函数是在类初始化的时候调用,析构函数是类在销毁之前调用。这篇继续学习类的构造函数分类和调用。 前面学习过了无参构造,这篇要学习有参构造,和拷贝构造。 有参构造 继续使用前面的代码例子 #include<ios...

2020-01-11 22:15:02 98 0

原创 C++面向对象-2-类的构造函数和析构函数

上一篇学习了C++中的类定义,用了两个练习题来演示一个class的属性和行为的定义和调用,以及展开了权限控制和一个类的属性还可以是其他类的一个实例。其中有好多代码是set和get, 写多了有时候很烦,当然写set和get方法是一个好习惯。例如Point,我们需要setX和setY, 有没有一个方法...

2020-01-11 20:42:46 158 0

原创 C++面向对象-1-类和对象以及封装

新的公司,做之前没有做过的工作,全新的开始。由于项目是C++代码写的桌面版设计软件,所以作为测试开发,需要去做C++的白盒和SDK的API自动化测试。虽然,学习过Java这门面向对象编程语言,当前看C++的源码还是很吃力,所以打算,学习一下C++的面向对象部分。写博客,仅仅是督促我自己学习的一个方...

2020-01-11 18:33:54 297 0

原创 Maven入门-7-Maven如何创建web动态工程和依赖范围介绍

这篇来看看如何在Eclipse上正确的基于Maven创建一个web动态项目。默认创建web动态项目是缺少内容,需要我们手动修改一下。然后来学习一下依赖中的范围。 1.Maven默认创建web工程效果 打开Eclipse,我们来创建一个maven工程,其实maven创建java工程和web工...

2019-09-08 22:10:31 923 0

原创 Maven入门-6-Maven的生命周期和核心命令详细介绍

本篇来介绍Maven的生命周期和前面介绍过几个命令的详细介绍过程。先介绍生命周期,生命周期中不同阶段就包括了一些命令,所以理解了生命周期,再来看看每一个命令的详细使用过程。 1.Maven的生命周期分类 Maven生命周期定义了各个构建环节的执行顺序,有了这个清单,Maven就可以自动化执行构...

2019-09-08 15:05:20 398 0

原创 Maven入门-5-Maven几个核心概念

可以这么说,前面4篇Maven入门的文章其实是没有入门,只不过可以让我们学会简单地创建Maven项目。但其实,之前我们这么做不是不可以,确实有很多不规范和缺陷的地方。本篇从介绍Maven的几个核心概念开始,继续来完善这个Maven入门系列文章,达到更好掌握Maven这个自动化构建工具的目的。 这...

2019-09-08 11:41:58 446 0

原创 RestAssured接口自动化从入门到框架搭建-22-框架组装-基类修改和post举例和报告获取

接着来完善我们的Rest Assured框架,我在github上搜索到了一些国内和国外的基于Rest Assured写的java语言的接口自动化框架。基本上就是分两种。第一种就是采用excel文件来写接口用例,然后TestUtils中写一个poi读取excel文件的方法。这种思想是数据驱动,框架本...

2019-09-06 22:05:35 930 5

原创 JavaWeb学习-类加载器-1-类加载器的快速入门

前面的动态代理学完了,以后在学习Spring的时候会用到这些动态代理的知识和原理,像目标对象,增强这两个术语,会经常听到。学习动态代理,就是学习JDK中反射包下的一个Proxy类,具体来说,我们只是学习newProxyInstance(ClassLoader, interfaces, hander...

2019-09-05 22:38:39 170 0

原创 JavaWeb学习-动态代理-3-代理工厂实现

前面做了一个Waiter的动态代理的练习,这篇继续来写一个练习,一个动态代理工厂的例子,这个例子在以后学习Spring的时候会有帮助。这个动态工厂的主要作用就是包装了下目标对象和前置增强和后置增强。 工厂类的使用步骤 我们要设计一个动态代理工厂类,以下是使用这个工程类的步骤。 创建代理工厂 ...

2019-09-04 21:18:32 167 2

原创 RestAssured接口自动化从入门到框架搭建-21-框架组装-TestBase类功能扩充和工具类TestUtils

接着前面的内容,这篇主要针对父类TestBase.java里面功能进行扩充,主要是Rest Assured的一些常见方法的封装,还有就是在Utils包下新建一个TestUtils.java类,里面主要是写一些和测试响应断言相关的方法。 1.TestUtils.java内容 直接来看代码,我就简...

2019-09-03 21:34:02 574 0

原创 RestAssured接口自动化从入门到框架搭建-20-框架组装-Maven项目环境搭建和BaseTest类和日志模块

再次来到框架设计部分,这里说的框架设计,其实我们自己和设计框架没有啥关系,因为水平远远达不到设计这个词的含义,更多是借助第三方框架来组装框架。任何自动化测试框架,都有以下两个重要的目标:代码复用性和方便维护性。本篇先来学习下框架设计的一些理论知识或者套路,然后开始我们的基于Rest Assured...

2019-09-01 17:51:04 575 2

原创 JavaWeb学习-动态代理-2-invoke()方法和动态代理Waiter类练习

这篇来学习invoke()方法中三个参数具体含义和基本使用,然后做一个动态代理的练习,写一个服务员类相关的动态代理实现过程。 invoke()方法 详细来看看这个,前面知道InvocationHandler是一个接口,这个接口只有一个方法,那就是invoke()。 我们开详细看看这个...

2019-08-29 21:16:49 136 0

原创 JavaWeb学习-动态代理-1-方法newProxyInstance介绍

这篇开始学Java中的动态代理部分,刚开始,我们不去了解什么是动态代理相关的概念,除了动态代理,还有静态代理。我们学习动态代理直接从学习一个方法开始,这个方法叫newProxyInstance, 方法有三个参数。 方法newProxyInstance 这个方法的作用是:在运行时,动态创建一...

2019-08-29 21:10:02 212 0

原创 JavaWeb学习-注解-3-反射注解

这篇来学习反射注解,前面我们知道如果需要使用反射,那么注解的保留策略一定要是RUNTIME类型。本篇来学习下如何通过反射获取作用在不同目标上的注解内容。 反射注解需要从作用目标上返回 类上的注解,需要从Class来获取 方法上的注解,需要从Method来获取 构造器上注解,需要从Con...

2019-08-24 22:11:37 173 0

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