Lesson 3

1、关于面向对象的三个重要属性

 Encapsulation(封装):无法直接访问类的成员变量,而是通过一些get set方法,间接访问数据域;

Polymorphism(多态):静态绑定,动态绑定,通常通过继承来实现多态,通常通过重定义(override)父类的方法来实现,

在c#中,与c++类似(java则不需要),基类function必须定义为virtual才能实现多态动态绑定,从个人理解来说,是因为子类同时可以看做是‘父类’,或子类包含父类,因此父类的引用可以指向子类的实体,并且可调用子类中重定义的函数。

Inheritance(继承)c#与java都不允许多重继承(c++允许),但可以通过定义接口(interface)来实现多重继承。

2、c#中参数的类型:

(1)数值参数,直接copy,按值传递

(2)引用参数(加ref),同c++中的&运算符

例:void swap(ref num1,ref num2);

(3)输出参数out(与ref类似),实参传入时可不被赋值,但在函数返回前一定要被赋值。

     注:ref 与 out 在函数声明与调用时都得加上(即形参实参前都得加上)

     

(4)数组参数 params(只能是一维数组)

实参可以是同类型的数组名,也可以是若干个同类型的简单变量,并且在函数形参列表中要放在最后

3、c#中的特殊地方:

(1)引入property(属性)

[访问修饰符] 类型  属性名

{

get{}

set{}  // set属性带隐含的value值

}

(2)引入索引器(与属性类似)

[访问修饰符] 类型 this [ 类型  variable_name]

{

get{}

set{}  // set属性带隐含的value值

}

3、继承DerivedClass :BaseClass

(1)单一继承(同java)

(2)constructor 与 distructor 不被继承

(3)override 可覆盖基类函数,通过 base 关键字调用访问基类函数

(4)继承后的构造函数链和析构函数链

(5)调用基类constructor

public DerivedClassName (variable a,variable b,variable c):BaseClassName(a,b)

{

......

}

4、抽象类与interface

   (1)抽象类

    abstract class A{

       abstract public type function()

{

//没有函数实体

}

}

class B :A

{

public override type function()

{

//必须有函数实体

}

}

(2)interface  实现多重继承

   [访问修饰符]  interface  InterfaceName

{

[访问修饰符] type function()

//属性,方法只能定义不能实现

}

在子类中有两种接口成员的实现:隐式 & 显式

隐式与java同

显式带有接口名前缀,同时该方法只能通过接口成员的引用来调用

5、多态

  (1)Base类必须定义为 virtual 函数

(2)子类 override 父类函数,而不能是 new

时间: 2024-12-28 01:18:54

Lesson 3的相关文章

[小北De编程手记] : Lesson 08 - Selenium For C# 之 PageFactory & 团队构建

本文想跟大家分享的是Selenium对PageObject模式的支持和自动化测试团队的构建.<Selenium For C#>系列的文章写到这里已经接近尾声了,如果之前的文章你是一篇篇的读下来并动手实践的话,我相信你应该可以模拟日常工作中80%常见的手动测试用例了.请注意:我的用词是模拟用例,而不是书写自动化测试用例.一个企业级的自动化测试的构建不是单靠Selenium一种技术就能Hold住的.所谓模拟指的是只能实现自动化的某个Case,但是不能工程化的使用.在本人所接触过几家公司的自动化测试

JMS and ActiveMQ first lesson(转)

JMS and ActiveMQ first lesson -- jms基础概念和应用场景 2011-6-18 PM 9:30 主讲:kimmking <[email protected]> 整理:林木森 ppt下载地址: http://code.google.com/p/activemq-store-mongodb/downloads/list 下面开始: kimmking:介绍下jms和ActiveMQ.在讲JMS之前,我们聊聊相关的背景.谁知道JMS是什么意思? kimmking:对,是

新概念 第一册 lesson 59~60

lesson thirteen Is that all? 1.Review What's the time? It's *** o'clock.    It's ten a.m. It's four p.m. 方式状语: by bus/car/bike on foot 句型: They usually...but today,they... 他们通常都干...事情但今天,他们... e.g. They usually go to school by bus,but today,they are

[小北De编程手记] : Lesson 05 - Selenium For C# 之 API 下

上一篇,我们介绍了一些Selenium WebDriver相关的API,下面我们就接着上一篇继续介绍Selenium常用的API,这一篇的内容主要涉及到以下话题: Selenium API:复杂事件处理 Selenium API:特殊DOM元素处理 Selenium API:截图功能 Selenium API:关于框架扩展 (一)Selenium API:复杂事件处理 首先,我们试想一下这样的场景.待测试的系统支持一些组合键的操作,例如:按住Ctrl的同时点击某个表格的某个单元格,该数据行会高亮

[小北De编程手记] : Lesson 04 - Selenium For C# 之 API 上

这一部分,我准备向大家介绍Selenium WebDriver的常用API,学习这部分内容需要大家最好有一些简单的HTML相关知识,本文主要涉及到以下内容: Selenium API:元素检查 Selenium API:事件处理 Selenium API:其他操作 Selenium API:框架扩展 回顾一下我之前讲过的一个概念:所谓自动化测试,可以简单的归结为是一个从被测试程序中识别或是定位元素以及执行操作和验证元素的过程.从框架设计的角度来讲,一个自动化测试框架的驱动程序应该向使用者提供“元

udacity android 学习笔记: lesson 4 part b

udacity android 学习笔记: lesson 4 part b 作者:干货店打杂的 /titer1 /Archimedes 出处:https://code.csdn.net/titer1 联系:1307316一九六八 声明:本文採用下面协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处. tips:https://code.csdn.net/titer1/pat_aha/blob/master/Mar

Lesson 61-62 Are Relatives Important to You?

1 Mid-Autumn Festival eg. The Dragon Boat Festival is one of three major Chinese holidays,along with the Spring and Moon Festivals.端午节是三个中国主要节日之一,另两个是春节和中秋节. 2 clan家族,集团 eg. She ranks as my junior in the clan.她的辈分比我小. 3 disinherit剥夺继承权 brother-german

Lesson 57-58 Cosmetic Surgery

1 vogue时尚,流行n  eg. Despite the vogue for so-called health teas,there is no evidence that they are any healthier.尽管现在流行所谓的健康茶饮,但没有证据证明这些茶更有益健康.            正在流行 eg. Pale colours are much more in vogue than autumnal bronzes and coppers.浅色比黄褐色和红棕色这些秋季色彩更

oracle创建用户ORA-01045:user lacks CREATE SESSION privilege 及一些简单操作(one lesson)

scott用户成功连接数据库的具体方法: 1.grant connect, resource to scott;2.grant create session to scott; 3.cmd4.sqlplus scott/tiger Oracle的安全 1.用户管理 用户至少需要会话的权利,否则连接也不成功: 用户在会话的权利上,应该有其他操作的权利: Oracle的用户和口令不区分大小写,真是让人大跌眼镜: Oralce中,所有用户必须明确被授权,才可以操作: SQL Server中,创建的用户

[小北De编程手记] : Lesson 06 - Selenium For C# 之 流程控制

无论你是用哪一种自动化测试的驱动框架,当我们构建一个复杂应用程序的自动化测试的时候.都希望构建一个测试流程稳定,维护成本较低的自动化测试.但是,现实往往没有理想丰满.而这一篇,我会为大家讲解我们在使用Selenium进行Web测试的时候应该如何控制我们的测试流程,从而尽可能地提高自动化测试可维护性.那么,先看一下这一篇的内容主要涉及到的话题: 自动化测试的成本 隐式的等待同步策略 显式的等待同步策略 自定义等待同步策略(一些关于自动化框架设计的探讨) (一)自动化测试的成本 <Selenium