base

C#中base和this关键字

守給你的承諾、 提交于 2020-02-17 18:52:28
base: 用于在派生类中实现对基类公有或者受保护成员的访问,但是只局限在构造函数、实例方法和实例属性访问器中。 MSDN中小结的具体功能包括: (1)调用基类上已被其他方法重写的方法。 (2)指定创建派生类实例时应调用的基类构造函数。 base常用于,在派生类对象初始化时和基类进行通信。 base可以访问基类的公有成员和受保护成员,私有成员是不可访问的。 在多层继承中,base可以指向的父类的方法有两种情况:一是有重载存在的情况下,base将指向直接继承的父类成员的方法;而没有重载存在的情况下,base可以指向任何上级父类的公有或者受保护方法。 this: 用于引用类的当前实例,也包括继承而来的方法,通常可以隐藏this。 MSDN中的小结功能主要包括: (1)限定被相似的名称隐藏的成员 (2)将对象作为参数传递到其他方法 (3)声明索引器 this指代类对象本身,用于访问本类的所有常量、字段、属性和方法成员,而且不管访问元素是任何访问级别。因为,this仅仅局限于对象内部,对象外部是无法看到的,这就是this的基本思想。另外,静态成员不是对象的一部分,因此不能在静态方法中引用this。 通用规则: 1、尽量少用或者不用base和this。除了避开子类的名称冲突和在一个构造函数中调用其他的构造函数之外,base和this的使用容易引起不必要的结果。 2

html5_头部七元素_base元素

牧云@^-^@ 提交于 2020-02-16 21:49:46
html5头部七元素:script、noscript、style、title、link、base、meta。 base指定如下三个属性:   id:唯一标识符。   href:基准路径。   target:超链接窗口打开方式。该属性四个值分别是:_blank、_top、_parent、_self。 <!Doctype> <html> <head> <base href="http://www.crazyit.org/" target="_blank"> </head> <body> <a href="index.php">链接</a> </body> </html> 如上代码所示:点击链接会跳转到http://www.crazyit.org/index.php,并且使用新窗口打开链接。 来源: https://www.cnblogs.com/Syinho/p/12318784.html

脱离Rails使用Activerecord

一个人想着一个人 提交于 2020-02-16 05:29:54
ActiveRecord 是迄今为止我所见到的最好的ORM library ,除了DB2,支持所有的主流数据库。如果你想知道如何单独使用Activerecord,please follow me。 介绍一下我的系统环境: OS:windows2003 DataBase: Oracle10g Ruby: 1.8.7 (2008-05-31 patchlevel 0) [i386-mswin32] activerecord: 2.2.2 activerecord-oracle_enhanced-adapter: 1.1.8 ruby-oci8:1.0.3 准备工作: 1.安装ruby,不用说了吧 2.安装activerecord, gem install activerecord 3.安装adapter, gem install activerecord-oracle_enhanced-adapter 4.创建一个试验目录 mkdir dbtest ok,that's all 创建一个rb文件,内容如下 Ruby代码 require 'rubygems' require 'active_record' ActiveRecord::Base.establish_connection( :adapter => 'oracle_enhanced' , :database => 'test'

C++中的类型识别

你。 提交于 2020-02-16 01:14:58
文章目录 1 C++中的类型识别 1.1 类型识别的基本概念 1.2 利用多态得到动态类型 1.3 typeid关键字 1 C++中的类型识别 1.1 类型识别的基本概念 在面向对象中可能出现下面的情况: 基类指针指向子类对象。 基类引用成为子类对象的别名。 静态类型和动态类型的概念: 静态类型:变量(对象)自身的类型。 动态类型:指针(引用)所指向对象的实际类型。 1.2 利用多态得到动态类型 利用多态得到动态类型: 在基类中定义虚函数返回具体的类型信息。 所有的派生类都必须实现类型相关的虚函数。 每个类中的类型虚函数都需要不同的实现。 编程实验:动态类型识别 # include <iostream> # include <string> using namespace std ; class Base { public : virtual string type ( ) { return "Base" ; } } ; class Derived : public Base { public : string type ( ) { return "Derived" ; } void printf ( ) { cout << "I'm a Derived." << endl ; } } ; class Child : public Base { public : string

python笔记19

﹥>﹥吖頭↗ 提交于 2020-02-15 17:55:15
今日内容 面向对象基本用法 好处和应用场景 面向对象的三大特性 内容详细 1.面向对象基本格式 # ###### 定义类 ###### class 类名: def 方法名(self,name): print(name) return 123 def 方法名(self,name): print(name) return 123 def 方法名(self,name): print(name) return 123 # ###### 调用类中的方法 ###### # 1.创建该类的对象 obj = 类名() # 2.通过对象调用方法 result = obj.方法名('alex') print(result) 应用场景:遇到很多函数,需要给函数进行归类和划分。 【封装】 练习题: #!/usr/bin/env python # -*- coding:utf-8 -*- class Db: def db_read(self): pass def db_write(self): pass def db_delete(self): pass def db_update(self): pass class File: def file_read(self): pass def file_write(self): pass def file_delete(self): pass def file

saltstack 初始化LINUX系统

∥☆過路亽.° 提交于 2020-02-08 23:13:19
前面我们已经了解了saltstack的基础功能,现在就可以使用saltstack为初始化新安装的linux系统。 初始化列表: 1.关闭selinux 3.修改sshd配置文件 4.内核优化 5.ulimit修改 6.history记录 7.时区修改及添加cron 8.安装epel 9.修改resolv解析文件 10.软件安装 好了,此前我们已经修改了salt的base目录,默认在/srv/salt 下我们调整到/etc/salt目录下了 现在呢,我们需要去建立一个目录专门用于存放初始化sls的。 [root@localhost base]# pwd /etc/salt/base [root@localhost base]# mkdir init date_time.sls 系统时区修改 [root@localhost init]# vim date_time.sls date_time: pkg.installed: - name: ntpdate - unless: rpm -qa | grep ntpdate cmd.run: - name: rm -rf /etc/localtime && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && ntpdate pool.ntp.org - require: - pkg:

快速乘C语言

对着背影说爱祢 提交于 2020-02-07 05:59:11
快速乘 其实快速乘和幂有异曲同工之妙(其实都是乘法)。 这里我们引见我的快速幂中的幂的求法(二进制的按权展开求和)。 快速幂的链接 这里我们发现快速幂是由于多次运算,数据太大,而简化的;而快速乘也是这个道理,那怎么把快速幂转化到快速乘呢? 我们可以发现幂的运算是对于底数的幂次循环所以我们只要把他的幂简化就可以了,而乘法(x*y)是对于x(或y)的 y ( x ) 次相加 所以把他的y(x)化简就可以了。 怎么样实现 很简单,只要把他的x(y)的二进制按加权求和就可以了。如以下例子: 12 11=12 1011(二进制)=12 * 2^ 3+12 * 2^ 1+12 * 2^0=96+24+12=132 而代码就和幂运算差不多,如下: int Quick - Multiple ( int a , int b ) { long long int ans = 0 , int base ; base = a ; while ( b ) { if ( b % 2 == 1 ) ans + = base ; base = base * 2 ; b / = 2 ; } return ans ; } 当然我们需要取模来保证数据不会溢出最终如下 int Quick - Multiple ( int a , int b, int mod ) { long long int ans = 0 , int

18_python_类关系

一世执手 提交于 2020-02-06 22:41:25
一、类与类之间的关系 1、依赖关系 1 class Elephant: 2 3 def __init__(self, name): 4 self.name = name 5 6 7 def open(self, ref): # 想要的是一个冰箱。 是哪个冰箱没有制定 8 print("冰箱哥哥, 开门把") 9 ref.open_door() 10 11 def close(self, ref): # 依赖关系 12 print("冰箱哥哥, 我进来了。 关门把") 13 ref.close_door() 14 15 def jin(self): 16 print("进冰箱装自己") 17 18 class Refrigerator: 19 20 def open_door(self): 21 print("冰箱陌陌的打开了自己的门") 22 def close_door(self): 23 print("冰箱陌陌的关上了自己的门 ") 24 25 # class GaoYaGuo: 26 # def open_door(self): 27 # print("冰箱陌陌的打开了自己的门") 28 # def close_door(self): 29 # print("冰箱陌陌的关上了自己的门 ") 30 31 32 alex = Elephant("李杰") 33 bx1 =

Java学习笔记之static

孤人 提交于 2020-02-05 16:19:23
1.static可以用于修饰成员变量、方法以及块,并不会改变类中成员的权限修饰,如:private修饰的成员变量,类外只能类名或非私有方法调用,而不能使用对象名调用。 2.static方法和成员变量,可使用类名直接调用,而不需要实例化:类名.方法名();类名.变量名();   也可以实例化后,使用对象名调用。 3.static方法(静态方法):   3.1 静态方法中,没有this,因为没有创建对象;   3.2 静态方法中不能调用非静态成员变量、方法,但非静态方法可以调用静态成员变量、方法; 4.static变量(静态变量):   4.1 静态变量在类第一次加载时,就会初始化并赋值;   4.2 每一个静态变量在内存中都是只有一个副本,所有对象共享这个副本,无论哪个对象或是类名调用修改,都会使之变化;   4.3 static不能用于修饰局部变量,这是Java语法规定的。 5.static块:   5.1 静态块可以在类的任何位置定义,会在类第一次加载时,依次调用,并且只调用一次,即还没创建对象便已调用:      public class Test extends Base{ static{ System.out.println("test static"); } public Test(){ System.out.println("test constructor"); }

Java基本概念

梦想的初衷 提交于 2020-02-04 05:44:05
问题及答案来源自《Java程序员面试笔试宝典》第四章 Java基础知识 4.1基本概念 1、J ava语言有何优势? 纯面向对象的语言 具有平台无关性,可移植性好 提供了很多内置的类库 提供了对web应用开发的支持 具有很好的安全性和健壮性 除去了C++中难以理解和容易混淆的特性(头文件、指针、多重继承等) 2、Java与C/C++有何区别? Java和C++的相同点: Java和C++都是面向对象语言,都使用了面向对象思想(例如封装、继承、多态等) 由于面向对象有许多非常好的特性(继承、组合等),因此二者都有很好的重用性 Java和C++的不同点: Java为解释性语言,而C/C++为编译型语言(Java执行速度比C/C++慢,但Java能跨平台执行而C/C++不能) Java代码运行过程:源代码通过Java编译器编译成字节码(.class),然后由JVM解释执行 C/C++代码运行过程:源代码通过编译和链接后生成可执行的二进制代码 Java为纯面向对象语言,所有代码要在类中实现,而C++兼具面向过程和面向对象编程的特点 Java没有C/C++中的指针 Java没有C++中的多重继承,但是Java引入了接口的概念,可以通过实现多个接口来实现与C++中多重继承一样的目的 在C++中需要开发人员管理内存分配(申请和释放),而Java中提供了垃圾回收器来实现垃圾的自动回收 C+