Windows移动开发(三)——闭关修炼

上一次,我们了解了委托,委托和Lambda表达式结合是一件灰常灰常爽的事情,这也是只有.Net才有,自己偷着笑去吧。几天这次,我要介绍一下继承和多态,这是进行面向对象编程必须熟练掌握的技术和思想。

1.1 类

继承,儿子继承父亲的遗产,这是生活中的体现,在面向对象的编程中,父亲和儿子都是对象的抽象集合,也就是类。什么是类呢?就是一些具有共同特征的对象集合,例如:狗都有四条腿,一条尾巴,两只眼睛,狗都会游泳,都爱吃骨头,所以我们把具有以上特征的动物抽象成狗,我们进行面向对象编程也是这样,面向对象的程序员必须具备抽象的能力。

1.1.1 字段

字段在类中属于封装的部分,一般是私有成员变量或常量,如:

private int _num1;

private bool _dispose;

_num1与 _dispose都是所属类的字段。

1.1.2 属性

属性是类的静态特征,如狗的腿有几条,眼睛有几只,都是狗的属性,在面向对象的编程中,属性是对字段封装,如:

private int _num1;

public int Num1

{

get { return _num1; }

set { _num1 = value; }

}

private bool _dispose;

public bool Dispose

{

get { return _dispose; }

set { _dispose = value; }

}

Num1和Dispose都是所属类的属性,他们对各自的字段进行了封装,有的属性是只读的,还有的属性只能在构造函数中进行赋值,以后不可以修改,如下:

private int _dogColor;

/// <summary>

/// 只读属性:狗的颜色

/// </summary>

public int DogColor

{

get { return _dogColor; }

}

private string _pid;

/// <summary>

/// 只能在构造函数中赋值属性:身份证号

/// </summary>

public string PID

{

get { return this._pid; }

private set { this._pid = value; }

}

1.1.3 方法

方法是类的行为能力,例如狗游泳,吃骨头,这都是狗的行为能力,在面向对象编程中,方法的结构是这样的:

/// <summary>

/// 狗默默的吃方法,默默的所以是私有的

/// </summary>

private void Eat()

{

Console.WriteLine("真好吃啊!");

}

/// <summary>

/// 狗游泳,判断狗是否游过了river河

/// </summary>

/// <param name="dogName">狗的名字</param>

/// <param name="river">河的名字</param>

/// <returns></returns>

public bool Swim(string dogName,string river)

{

bool isSwim = false;

if (!string.IsNullOrEmpty(river))

{

Console.WriteLine(dogName + "游过了" + river);

isSwim = true;

}

return isSwim;

}

Eat和Swim都是狗类的方法,Eat方法没有参数没有返回值,Eat方法是私有的,只有狗类内部可以访问Eat方法;Swim方法有两个string类型参数,第一个参数是狗的名字,第二个参数是狗要游过的河流,返回bool类型判断狗是否游过了该河流,Swim方法是公有的,所有狗对象都可以访问Swim方法,关于private、protected、public的访问权限可以仔细阅读微软官方的MSDN帮助文档进行深入研究,不难理解,在这里我就不过多介绍了,到此关于类的介绍就这些了,下面继续介绍面向对象的核心知识之一——继承。

1.2 继承

1.2.1 继承的原理

继承是建立在类的基础上,具体类实现接口也可以叫做继承,在C#中一个类只能继承一个类,即不支持多重继承,生活中也是这样,一个人只能有一对亲生父母;但是C#中一个类可以实现多个接口,实现接口可以理解为,我们学习了新的本领,如,我们学会了说话,我们就实现了说话的接口,我们学会了写代码,我们就实现了写代码的接口。

可以看出,我们进行面向对象编程,就是模拟生活制作生活,所以一个好的程序员必定是一个美好生活的缔造者,广大女同胞们要注意了,选老公一定要选程序员,选择了程序员,你的后半生就幸福了,哈哈哈。

C#中的继承是这样的:

/// <summary>

/// 产品类

/// </summary>

public class Product

{

private string _name;

public string Name

{

get { return _name; }

set { _name = value; }

}

private int _age;

public int Age

{

get { return _age; }

set { _age = value; }

}

}

/// <summary>

/// 发出声音接口

/// </summary>

public interface Sound

{

bool MakeNoise();

}

/// <summary>

/// 显示图片接口

/// </summary>

public interface ShowImage

{

void Show(string path);

}

public class NewProduct : Product, Sound, ShowImage

{

#region NewProduct类新成员

private string _color;

public string Color

{

get { return _color; }

set { _color = value; }

}

private void ChangeColor()

{

Console.WriteLine("颜色真的变了耶!");

}

#endregion

#region Sound 成员

public bool MakeNoise()

{

Console.WriteLine("哇塞,声音好大啊!");

return true;

}

#endregion

#region ShowImage 成员

public void Show(string path)

{

Console.WriteLine("哎呦,来自{0}图片太漂亮了!",path);

}

#endregion

}

从上面代码可以看出,接口没有方法的具体实现,接口方法的具体实现代码在继承该接口的类中实现,但要保持签名一致。

在面向对象的编程中,子类具有父类的所有特征,可以理解为子类是父类的扩展,父类里的所有非私有属性和非私有方法子类都可以访问。

1.2.1 继承的使用

实现接口也属于继承,那么什么时候继承类,什么时候继承接口呢?从程序的可扩展型和复用性考虑,为了松耦合度,只有有明确的父子关系的两个类才使用继承类,而实现接口在程序设计模式中经常用到,易于扩展。

比如,策略模式,对算法进行封装,经常用接口定义方法,然后具体类中具体实现,调用时由Context统一调用,在程序设计中使用适当的设计模式又是一件非常非常爽的事情,关于设计模式,我在这里也不多介绍,如果想深入了解,可以观看吕建中的官方视频,也可以看《大话设计模式》这本书,看完之后,你会感觉更爽。

1.3 多态

多态按字面的意思就是“多种状态”。在面向对象编程中,接口的多种不同的实现方式即为多态。其实多态更像是一种思想,不同实体实现同一接口是多态,重载函数方法是多态,方法重写是多态等等,多态就是对同一功能有不同的实现方式,关于多态理解其中的思想是最为重要的,在面向对象编程中灵活运用多态那也是非常非常爽的一件事。

继承多态总结:今天介绍的东西似乎有点多,其实不多,这些都是进行面向对象开发必须掌握的东西,如果你对上面说的内容感觉很陌生,那么你目前是不适合做移动开发的,你最应该的马上补充一下这是知识空白,当然面向对象的编程基础远不止这些,所以要想成为一流的开发人员,修炼是必不可缺的了。

好了,不在得瑟了,今天就到这里,下次还有更爽的,敬请期待。我们下次见。

Windows移动开发(三)——闭关修炼,布布扣,bubuko.com

时间: 2024-10-17 09:45:43

Windows移动开发(三)——闭关修炼的相关文章

Windows移动开发(二)——闭关修炼

一些武侠小说里的大人物,为了争夺武林盟主,号召天下,常常闭关修炼一段时间,闭关期间仅仅能接触送饭的人,而且关外还有非常多守卫的人员.还有,不管是篮球还是足球运动员,他们在真正接触球之前,都必须做非常长一段时间的身体素养锻炼,像长跑之类. 假设我们想成为程序界的武林至尊,那么我们也必须得闭关修炼,细致修炼基本功. 那么我们做Windows移动开发的程序猿们的基本功是什么呢?事实上,基本功有非常多,最重要的是逻辑思维和解决这个问题的能力,话又说回来,逻辑思维和解决这个问题的能力从何而来呢?不断的做.

windows phone 开发常用小技巧 - 退出应用之升级版(三秒内双击退出)

//设置一个DispatcherTimer,控制三秒内再次点击返回键时执行退出逻辑 public void ExitBy2Click(System.ComponentModel.CancelEventArgs e) { if (!IsExit) { IsExit = true; e.Cancel = true; _timer = new DispatcherTimer(); _timer.Start(); SystemTrayMessage.Instance.StartAdv("再按一次退出&q

C++第三十八篇 -- 研究一下Windows驱动开发(二)--WDM式驱动的加载

基于Windows驱动开发技术详解这本书 一.简单的INF文件剖析 INF文件是一个文本文件,由若干个节(Section)组成.每个节的名称用一个方括号指示,紧接着方括号后面的就是节内容.每一行就是一项内容,其形式都是类似SomeEntry=SomwValue.每个项的顺序是可以颠倒的,但系统分析INF文件的时候,是顺序解析的.INF中注释语句是用分号开头的. 二.WDM设备安装在注册表中的变化 WDM式驱动程序的安装会在三个方面修改注册表,分别是硬件子键(Hardware).类子键(Class

Windows客户端开发简介(三)

之前的一篇文章里,我简单概要的介绍了一下界面库的知识.既然是跟界面有关,那么必然少不了很多关于绘制的内容.对于Windows开发而言,界面绘制使用的一类API就是所谓的"GDI". GDI这个东西可有历史了,但是我们就不去追根朔源了.首先,我不能免俗的要先介绍一下它的全称:"Graphic Device Interface",即"图形设备接口",从这个名称我们可以大略吸收到的信息就是:GDI是个跟图形绘制有关的接口,对的,正是这样! 先让我们来看

Java闭关修炼64课 很适合新手学习的JAVA视频教程

Java闭关修炼64课 很适合新手学习的JAVA视频教程 java闭关修炼第一课 什么是java(1).rar  java闭关修炼第一课 什么是java.rar  java闭关修炼第七课 基础语言要素(1).rar  java闭关修炼第七课 基础语言要素.rar  java闭关修炼第三十一课 静态方法(1).rar  java闭关修炼第三十一课 静态方法.rar  java闭关修炼第三十七课 成员初始化顺序讨论(1).rar  java闭关修炼第三十七课 成员初始化顺序讨论.rar  java闭

闭关修炼——one——struts2

今天是为期一个月闭关修炼的第一天---嘻嘻! 今天以及之前所学的Struts2部分知识梳理. day1: 什么是struts2  ---  是一种应用于java ee三层结构中web层的框架,在struts1和webwork基础之上发展全新的框架 为什么要用struts2     ----    Struts2基于MVC架构,框架结构清晰    使用ognl进行参数传递     强大的拦截器     模块化管理 配置struts2:   1.导jar包(固定)   2.web.xml配置拦截器(

Windows Phone开发人员必看资料

win phone开发必看资料,下载地址收藏啦!收藏后可有选择性的下载,希望大家喜欢! 完整附件下载:http://down.51cto.com/data/414417 附件预览: Windows Embedded Standard开发初体验[课件汇总] http://down.51cto.com/data/65627 利用Windows Embedded Standard 7构建操作系统映像 http://down.51cto.com/data/65761 Windows Embedded S

Windows驱动开发(中间层)

Windows驱动开发 一.前言 依据<Windows内核安全与驱动开发>及MSDN等网络质料进行学习开发. 二.初步环境 1.下载安装WDK7.1.0(WinDDK\7600.16385.1) 地址:https://msdn.microsoft.com/en-us/windows/hardware/hh852365 2.下载InstDrv软件(用于安装.启动.停止.卸载驱动) 界面如下: 注:srvinstw.exe 也可以安装.卸载sys文件,但需要手动开启.关闭,即在cmd命令窗口下执行

Windows 驱动开发 - 1

上篇<Windows 驱动开发 - 基础2>已经介绍了windows大概的框架.那么使用WDF有那些的不同呢? 我们知道在WDF中,KMDF是必须的.而KMDF是架构在WDM之上的.  WDM驱动程序模型 在 WDM 驱动程序模型中,每个硬件设备至少有两个驱动程序.其中一个驱动程序我们称为功能(function)驱动程序,通常它就是你认为的那个硬件设备驱动程序.它了解使硬件工作的所有细节,负责初始化 I/O 操作,有责任处理 I/O 操作完成时所带来的中断事件,有责任为用户提供一种设备适合的控