C#入门经典(第五版)学习笔记(三)
---------------面向对象编程简介---------------
UML表示方法:
1)方框上中下三分
2)上框写类名
3)中框写属性和字段,例如:+Description:string +公共成员-私有成员 Description成员名 string成员类型
4)下框写方法,例如:+AddSugar(in amount:byte):byte +公共成员-私有成员 in/out/inout数据流方向
5)静态成员带下划线
6)接口:画在类名边,棒棒糖型
7)继承:从子类向父类的箭头
构造函数: 构造函数与类同名,默认构造函数无参数,可定义带参数的非默认构造函数
静态成员: 静态成员可在类的实例间共享,可看做类的全局对象
---------------定义类---------------
class关键字定义类
类的修饰符关键字:
public/protected/private 公共类/受保护类/私有类
abstract/sealed 抽象类(不能实例化,只能继承)/密封类(不能继承)
继承: 先继承基类,然后才能指定支持的接口,不得反转,接口可支持多个
interface关键字定义接口
接口的修饰符关键字:
public 公共接口
---------------定义类成员---------------
可用关键字static,表示静态成员
定义字段可用关键字readonly,表示只能在执行构造函数过程中赋值,或由初始化赋值语句赋值
定义方法关键字:
virtual——方法可重写
abstract——方法必须在非抽象的派生类中重写(只用于抽象类中)
override——方法重写了一个基类方法
extern——方法定义放在其他地方
定义属性可用get{}set{}代码块,可用virtual/override/abstract关键字
显式隐藏基类方法:
public class MyBaseClass
{
public void DoSomething()
{}
}
public class MyDerivedClass : MyBaseClass
{
new public void DoSomething()
{}
}
注意隐藏和重写的区别
接口的实现:
1)所有接口成员都是公共的
2)接口成员不能包含代码体
3)接口不能定义字段成员
4)接口成员不能用关键字static/virtual/abstract/sealed来定义
5)类型定义成员是禁止的
在类中实现接口:
实现接口的类必须包含该接口所有成员的实现代码,且必须匹配指定的签名(包括匹配指定get和set块),并且必须是公共的
可用关键字virtual或abstract来实现,也可在基类上实现接口
如果显式实现接口成员,那该成员就只能通过接口来访问,不能通过类来访问
例如:
public class MyClass:IMyInterface
{
public void IMyInterface.DoSomething()
{}
public void DoSomethingElse()
{}
}
由于DoSomething()是显式实现的,而DoSomethingElse()是隐式实现的,之后后者可以直接通过MyClass的对象实例来访问。
部分类定义:
把类的定义放在多个文件中,需要对每个此类的定义文件中使用partial关键字 例如:
public partial class MyClass
{
…
}
在另一个文件中
1 public partial class MyClass
2 {
3 …
4 }
C#入门经典(第五版)学习笔记(三)的更多相关文章
- Docker技术入门与实战 第二版-学习笔记-10-Docker Machine 项目-2-driver
1>使用的driver 1〉generic 使用带有SSH的现有VM/主机创建机器. 如果你使用的是机器不直接支持的provider,或者希望导入现有主机以允许Docker Machine进行管 ...
- Docker技术入门与实战 第二版-学习笔记-8-网络功能network-3-容器访问控制和自定义网桥
1)容器访问控制 容器的访问控制,主要通过 Linux 上的 iptables防火墙来进行管理和实现. iptables是 Linux 上默认的防火墙软件,在大部分发行版中都自带. 容器访问外部网络 ...
- 《c#入门经典第五版》简介及pdf电子书网盘下载地址(收藏)
<C#入门经典(第5版)>全面讲解C# 2010和.net架构编程知识,为您编写卓越C# 2010程序奠定坚实基础.C#入门经典系列是屡获殊荣的C#名著和超级畅销书.最新版的<C#入 ...
- 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL
周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...
- Docker技术入门与实战 第二版-学习笔记-10-Docker Machine 项目-1-cli
Docker Machine 是 Docker 官方编排(Orchestration)项目之一,负责在多种平台上快速安装 Docker 环境 Docker Machine是一种工具,它允许你在虚拟主机 ...
- Docker技术入门与实战 第二版-学习笔记-5-容器-命令及限制内存与cpu资源
1.启动容器 启动容器有两种方式: 基于镜像新建一个容器并启动 将在终止状态(stopped)的容器重新启动 1)新建并启动——docker run 比如在启动ubuntu:14.04容器,并输出“H ...
- C++Primer第五版学习笔记
<C++ Primer>Learning Note 程序实例下载地址:http://www.informit.com/title/0321714113 第一章 开始 ...
- Docker技术入门与实战 第二版-学习笔记-9-Docker Compose 项目-1-举例说明
Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速在集群中部署分布式应用 Compose 通过一个配置文件来管理多个Docker容器,在配置文件中 ...
- Docker技术入门与实战 第二版-学习笔记-6-仓库
仓库(Repository)是集中存放镜像的地方 一个容易混淆的概念是注册服务器(Registry). 实际上注册服务器是管理仓库的具体服务器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像. ...
- Docker技术入门与实战 第二版-学习笔记-7-数据管理(volume)
Docker 数据管理 为什么要进行数据管理呢?因为当我们在使用container时,可能会在里面创建一些数据或文件,但是当我们停掉或删除这个容器时,这些数据或文件也会同样被删除,这是我们并不想看见的 ...
随机推荐
- NGU-学习笔记(1)-动态添加删除图集
现在 正在做unity的方向 不得不说我选的是UI方向 Unity中很有名的就是NGUI插件了.今天做了个ngui的简单背包系统.非常简陋..初学着 自己mark下 (1)预览 主要就是个 simpl ...
- 把测试app打包成ipa文件
我终于把我的程序放到我的touch上了,其实把app放到touch上还有很多办法,这篇教程是主要讲怎么把app注册了,然后打包成一个ipa文件的. 先上官方文档:https://developer.a ...
- U盘做启动盘后,如何恢复原始容量
上次用U盘装系统后,U盘缩水1G多,格式化和快速格式化,没有用,无法恢复U盘原来的容量,后来在网上查到一个方法,成功释放U盘空间,故将恢复方法写在下面. (1)右击“我的电脑”,选择“管理”选项,之后 ...
- [Python]Pip的安装以及简单的使用
Pip的安装 安装python以后(我的python版本是32位,版本号2.7.10),如果需要安装一些其他的库,一般有两种办法,一种是自己手动去各个库的官网下载,自己安装:另一种方法是安装pip,使 ...
- iOS 应用程序本地化
由于iPhone,iPad等苹果产品在全世界范围内的广泛流行,那么通过App Store下载应用程序的用户也将是来自世界范围的人们,所以开发者在开发过程中势必要考虑到不同语言环境下用户使用,好在iOS ...
- wmic
前沿:WMIC命令在我们的工作中可以帮助我们减少对其他工具的依赖并节省我们的时间,实在是一个值得学习和研究的好东西 命令很多,这里我把网上目前能找到的较实用的一些命令整理出来,希望各位看官能找到自己需 ...
- c#基础语言编程-Path和Directory
引言 在程序常会对文件操作,在对文件操作中需要对文件路径的进行定位,在.Net中针对寻找文件提供两个静态类以供调用,Path和Directory. Path类 来自命名空间SYstem.IO,Path ...
- winfrom 截屏、抓屏 分类: WinForm 2014-08-01 13:02 198人阅读 评论(0) 收藏
截取全屏代码: try { this.Hide(); Rectangle bounds = Screen.GetBounds(Screen.GetBounds(Point.Empty)); Bitma ...
- 【Android - 框架】之ORMLite的使用
Android中有很多操作SQLite数据库的框架,现在最常见.最常用的是ORMLite和GreenDAO.ORMLite相比与GreenDAO来说是一个轻量级的框架,而且学习成本相对较低.所以这个帖 ...
- UVA - 10785 The Mad Numerologist
题目链接 这个题又犯了省题不清的错误.导致不停 wa.唉. 题目意思是给你一个长度L,然后和一张表相应每一个大写字母的value值.你须要依照一定规则找出长度为L的序列. 注意 序列的value值要 ...