深入浅析SQL封装、多态与重载
面向对象
1.类:众多对象抽象出来的
2.对象:类实例化出来的
3.类的定义
关键字 class
4.类里面包含
成员变量
成员属性
成员方法
5.面向对象三大特性
(1)封装
目的:保护类,让类更加安全。
做法:让类里面的成员变量变为私有的,做相应的方法或者属性去间接的操作成员变量
封装成员方法来间接操作类里面的成员变量
使用成员属性来间接访问类里面的成员变量
访问修饰符
private 私有的 只能在该类中访问
protected 受保护的 只能在该类和它的子类中访问
public 公有的 在任何地方都可以访问
构造方法(函数):
作用:造对象所要调用的方法,用来创建对象,可以对成员进行初始化
每一个类都有一个构造方法,不写也有只不过看不到而已
特殊性:写法特殊 执行时间特殊
this关键字:
this代表该对象,不是代表该类
(2)继承:
概念:子类可以继承父类的一切
特点:单继承 一个子类只能有一个父类,一个父类可以有多个子类 (所有父类都是object)
base关键字
sealed关键字:密封类 该类不可以被继承
部分类:partial 可以将一个类拆分成多个部分,分别放在多个文件内
namespace 命名空间 相当于虚拟文件夹
(3)多态:
1.编译多态
函数重载
2.运行多态
概念:当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写,在调用该方法的时候表现出的不同就称为多态
条件:必须要有继承 父类引用指向子类实例 子类必须对父类的方法进重写
里氏代换原则:如果有一个地方需要使用到父类对象,那么你可以将一个子类对象给他
1.函数重载
函数重载需要的条件:函数名要相同,参数的个数或者参数的类型不同
2.this关键字
虽然写在类里面,但不是属于类的,而是属于该对象的
一般来说在类里面 this关键字是可以省略的,但是如果有一个方法形参名字和成员名字重复,这时候再调用该对象里面的成员的时候需要加this关键字
3. is关键字
判断变量是不是属于某个类型
if (y2 is Ren) { s = "是一个人"; } else { s = "不是一个人"; }
4. as关键字
转换类型(只能转换兼容类型,可以将子类对象转换为父类对象)
5.继承
子类可以继承父类的一切
特点:单继承
一个子类只能有一个父类 一个父类可以有多个子类
C#特殊点:所有类的祖先都是object
base关键字:在子类中代表父类对象,用法和this关键字相同
如果父类有构造方法,那么子类也要有构造方法,如果父类构造需要参数,那么子类构造也必须有相应的参数。
子类构造后面可以通过base调用父类的构造方法
public China(string m):base(m) { }
以上所述是小编给大家介绍的SQL封装、多态与重载,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
相关推荐
-
php中mysql模块部分功能的简单封装
复制代码 代码如下: class mysql { private $db; // datebase connect private $result; // mysql result static private $mysql; // mysql object private function __construct() { // The work before Create an object $this->db = mysql_connect('localhost','root',''); m
-
.net连接Mysql封装类代码 可直接调用
微软的visual studio没有自带连接Mysql的驱动,要去网上下载一个mysql-connector-net-6.4.3驱动,然后安装就可以使用.下面是我封装好的连接数据库的类,直接调用即可. 复制代码 代码如下: using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;using Syst
-
Php Mssql操作简单封装支持存储过程
核心代码: <?php /* * class :Mssql * time :2009-12-10 * author :Libaochang * version :1.0b * description :mssql database access class,it can execute the procedur or sql */ class MssqlUtil { var $user = null; //database user name var $keys = null; //databa
-
PHP访问MYSQL数据库封装类(附函数说明)
复制代码 代码如下: <?php /* MYSQL 数据库访问封装类 MYSQL 数据访问方式,php4支持以mysql_开头的过程访问方式,php5开始支持以mysqli_开头的过程和mysqli面向对象 访问方式,本封装类以mysql_封装 数据访问的一般流程: 1,连接数据库 mysql_connect or mysql_pconnect 2,选择数据库 mysql_select_db 3,执行SQL查询 mysql_query 4,处理返回的数据 mysql_fetch_array my
-
深入浅析SQL封装、多态与重载
面向对象 1.类:众多对象抽象出来的 2.对象:类实例化出来的 3.类的定义 关键字 class 4.类里面包含 成员变量 成员属性 成员方法 5.面向对象三大特性 (1)封装 目的:保护类,让类更加安全. 做法:让类里面的成员变量变为私有的,做相应的方法或者属性去间接的操作成员变量 封装成员方法来间接操作类里面的成员变量 使用成员属性来间接访问类里面的成员变量 访问修饰符 private 私有的 只能在该类中访问 protected 受保护的 只能在该类和它的子类中访问 public 公有的
-
Java中继承、多态、重载和重写介绍
什么是多态?它的实现机制是什么呢?重载和重写的区别在那里?这就是这一次我们要回顾的四个十分重要的概念:继承.多态.重载和重写. 继承(inheritance) 简单的说,继承就是在一个现有类型的基础上,通过增加新的方法或者重定义已有方法(下面会讲到,这种方式叫重写)的方式,产生一个新的类型.继承是面向对象的三个基本特征--封装.继承.多态的其中之一,我们在使用JAVA时编写的每一个类都是在继承,因为在JAVA语言中,java.lang.Object类是所有类最根本的基类(或者叫父类.超类),如果
-
浅析SQL Server的聚焦使用索引和查询执行计划
前言 上一篇<浅析SQL Server 聚焦索引对非聚集索引的影响>我们讲了聚集索引对非聚集索引的影响,对数据库一直在强调的性能优化,所以这一节我们统筹讲讲利用索引来看看查询执行计划是怎样的,简短的内容,深入的理解. 透过索引来看查询执行计划 我们首先来看看第一个例子 1.默认使用索引 USE TSQL2012 GO SELECT orderid FROM Sales.Orders SELECT * FROM Sales.Orders 上述我们看到第2个查询的所需要的开销是第1个查询开销的3倍
-
C#中多态、重载、重写区别分析
本文实例总结了C#中多态.重载与重写的概念与区别.对于初学C#的朋友来说有不错的参考价值.分享给大家供大家参考.具体分析如下: 重写:是指重写基类的方法,在基类中的方法必须有修饰符virtual,而在子类的方法中必须指明override. 格式如下: 1.在基类中: public virtual void myMethod() { } 2.在子类中: public override void myMethod() { } 重写以后,用基类对象和子类对象访问myMethod()方法,结果都是访问在
-
浅析SQL Server授予了CREATE TABLE权限但是无法创建表
在SQL Server中,如果我想授予一个用户klb拥有创建表的权限,但是我又不想授予其数据库角色db_ddladmin,因为这样会扩大其权限,那么授予下面权限可行吗?如下所示: USE AdventureWorks2014; GO GRANT CREATE TABLE TO klb; 那么这样授权是否就OK呢?答案是这样授权会报错"The specified schema name "dbo" either does not exist or you do not have
-
浅析SQL Server的嵌套存储过程中使用同名的临时表怪像
SQL Server的嵌套存储过程,外层存储过程和内层存储过程(被嵌套调用的存储过程)中可以存在相同名称的本地临时表吗?如果可以的话,那么有没有什么问题或限制呢? 在嵌套存储过程中,调用的是外层存储过程的临时表还是自己定义的临时表呢? 是否类似高级语言的变量一样,本地临时表有没有"作用域"范围呢? 注意:也可以称呼为父存储过程和子存储过程,外层存储过程和内层存储过程.这些只是不同的称呼或叫法而已.我们这里统一使用外层存储过程和内层存储过程.后续文章部分不再述说. 我们先来看一个例子,如
-
Python接口自动化浅析logging封装及实战操作
在上一篇Python接口自动化测试系列文章:Python接口自动化浅析logging日志原理及模块操作流程,主要介绍日志相关概念及logging日志模块的操作流程. 而在此之前介绍过yaml封装,数据驱动.配置文件.日志文件等独立的功能,我们将这些串联起来,形成一个完整的接口测试流程. 以下主要介绍将logging常用配置放入yaml配置文件.logging日志封装及结合登录用例讲解日志如何在接口测试中运用. 一.yaml配置文件 将日志中的常用配置,比如日志器名称.日志器等级及格式化放在配置文
-
JavaScript 继承 封装 多态实现及原理详解
面向对象的三大特性 封装 所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏.封装是面向对象的特征之一,是对象和类概念的主要特性. 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体.在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问.通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分. 我们在vue项目中使用混入将公有代码提出来,混入到每个
-
深入浅析SQL Server 触发器
触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程.触发器主要是通过事件进行触发被自动调用执行的.而存储过程可以通过存储过程的名称被调用. Ø 什么是触发器 触发器对表进行插入.更新.删除的时候会自动执行的特殊存储过程.触发器一般用在check约束更加复杂的约束上面.触发器和普通的存储过程的区别是:触发器是当对某一个表进行操作.诸如:update.insert.delete这些操作的时候,系统会自动调用执行该表上对应的触发器.SQL Server 2005中触发器可以分为两类:DM
-
深入浅析SQL中的group by 和 having 用法
一.sql中的group by 用法解析: Group By语句从英文的字面意义上理解就是"根据(by)一定的规则进行分组(Group)". 作用:通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理. 注意:group by 是先排序后分组! 举例说明:如果要用到group by 一般用到的就是"每"这个字, 例如现在有一个这样的需求:查询每个部门有多少人.就要用到分组的技术 select DepartmentID as '部门名称',
随机推荐
- Mysql免安装版设置密码教程详解
- jQuery中将函数赋值给变量的调用方法
- swift 可选型的使用详解
- JavaScript三种绑定事件方式及相互之间的区别分析
- php ci框架验证码实例分析
- Python os模块中的isfile()和isdir()函数均返回false问题解决方法
- C#实现在Form里面内嵌dos窗体的方法
- 用MyEclipse配置DataBase Explorer(图示)
- Javascript中的 “&” 和 “|” 详解
- 使用java自带des加密算法实现文件加密和字符串加密
- javascript模拟订火车票和退票示例
- CI框架中redis缓存相关操作文件示例代码
- MySql 按时间段查询数据方法(实例说明)
- MySQL ORDER BY 的实现分析
- jquery插件之easing使用
- Add a Picture to a Microsoft Word Document
- linux下查看swap分区被哪些进程占用实现脚本
- Python设计模式编程中的备忘录模式与对象池模式示例
- 在VC中隐藏控制台程序窗口的实现代码
- 浅谈Java double 相乘的结果偏差小问题