C# OOP编程
- 1:面向对象的概念:什么是类、对象。以及类与对象的关系。
- 面向对象三大特征: 封装/继承/多台
- 2:封装性:
- 用访问修饰符来体现封装性。
- Public 公共的/ private 私有的/Protected 受保护的/Internal 本程序集的
- 3:构造函数。
- 功能:是维护一个类的完整性。可以通过类的构造函数,使得一个类构造出不同(型号/类别)的对象实体。
- 特征: 1)构造函数名称与类名相同。
- 2)构造函数没有返回数值,也不加void 关键字。
- 3)构造函数不需要调用,可以直接运行。
- 4:方法的定义。
- 方法的构成:4部分
- 1) 方法的名称。
- 2) 方法的参数列表
- 3) 方法的返回类型,如果没有返回数值,要加“void” 关键字。
- 4) 方法体(方法的内容)
- 5:学习static 关键字。
- 特点:
- 5.1: 用static 修饰的方法,叫静态方法。
- 5.2: 在实例方法中,调用静态方法,需要使用类名称调用。
- 在静态方法中,调用静态方法,可以直接调用。
- 用途: 是简化编写,为了更容易被访问。
- 6:继承的概念。
- 继承使用符号“:”来表示继承。
- 7:在继承关系下,构造函数的规则。
- 规则: 实例化子类,系统先自动调用父类的构造函数,然后调用子类构造函数。
- 8:学习关键字。
- base, this.
- Base: 代表父类对象。
- This: 代表本类对象。
- 适用范围:
- 在子类与父类发生“方法覆盖”时候,为了能够调用被覆盖(或者“隐藏”)的方法,必须使用base .
- 9:base 关键字在构造函数中的应用,即:显示调用父类构造函数。
- 10:析构函数。
- 定义“~”定义析构函数。 作用是在本对象需要销毁之前,做一些清理工作。
- 比如在需要进行数据库连接,Socket 数据通信的时候,需要关闭对应的连接等。
- 11:命名空间。
- 使用关键字: NameSpace 定义。
- 目的是:为了一个项目中,可以使用重名的类。(相当于是操作系统中的“虚拟目录”的概念)。
- 12:访问修饰符:
- Public: 最大访问级别。
- Internal: 局部的。 在一个“程序集”中,都可以访问。
- Protected: 受保护的类型。 除了自己能够访问,本类的子类也可以访问。(“继承链”)
- Private : 只能自己访问。
- 13:学习面向对象中的“多态性”的概念。
- 14:多态性—方法重载。(静态多态性)
- 同一个类中,有多个方法名相同,但是方法的参数不同,这种现象叫~。
- 多态性-方法的重写(动态多态性)
- 在继承关系的类中,父类中定义了“虚方法”(关键字:Virtual), 子类使用关键字override 进行方法重写。这种机制叫~。
- 方法重写的目的: 就是可以不断优化代码的一种机制。
- 15:学习Sealed 关键字。
- 密封关键字。
- 类/ 方法。
- 16:抽象类/抽象方法。
- 关键字: Abstract
- 规则1: 一个抽象方法,必须存在于抽象类中。但是一个抽象类可以没有抽象方法。
- 规则2: 一个类继承抽象类,则必须“重写”抽象父类中的抽象方法。
- 17:接口/多重接口。
- 关键字: Interface
- 接口是与“类”相同的编程单位,相互之间不“隶属”。
- 规则1: 接口中只能定义抽象方法,不能有public , abstract 关键字。
- 规则2: 接口可以多种继承。
- 规则3: 一个类继承接口,则必须“实现”接口中所有的方法。
- 18:值类型与引用类型。
- 值类型在方法传递的时候,是传递的自身的“拷贝”。
- 引用类型在方法传递的时候,是传递的自身的“地址”。
- 常用值类型与引用类型转换的关键字如下:
- Ref / out 关键字。
- Ref 关键字可以把值类型转变为引用类型。
- Out 关键字目的是可以让方法有多个输出参数。
- 19:属性。
- 规则1: 属性是方法的简化,目的是控制类的“字段”的可访问性。
- 20:动态多态性。
- 目的是为了更好的开发出灵活,功能强大的程序。
- 可以使用“虚函数”,“抽象方法”,“接口”来实现动态多态性。
- 建议使用“接口”来实现动态多态性,即:面向接口编程。
- 21:面向接口编程。
- 接口最好功能单一。
- 接口可以通过继承关系实现功能强大的复合接口。
- C#的OOP即面向对象开发三大特性: 封装、继承、多态,是非常核心的OOP开发思想。现就这部分总结部分知识点如下:
- 1: 概念
- 类与对象的关系.
- 创建类
- 类与对象的本质区别:
- 类是建筑蓝图、对象是按照这份蓝图来建造的房子。
- 2: 访问区分符(修饰符)
- 访问修饰符是C#实现类的封装的最核心手段。
- private: 私有的,只能本类访问,包括子类也不能访问,是最严格的控制访问。
- public: 公有的,所有类都可以访问,是最松散的控制访问。
- protected: 受保护的,也就是除了本类之外,只有自己的子类可以访问。
- internal: 本程序集的,也就是说一个程序集内部都可以访问,外部不行。
- 3:构造函数
- 1) 与类名同名。2) 自动运行。 3) 不能返回任何数值,也不能加VOID.
- 4) 每个类都必须有一个构造函数,用户不提供则系统会提供自己默认的构造函数。
- 5) 构造函数的默认访问是private,但这样就不能在类的外部创建实例。
- 6) 创建了带参数的构造函数,系统不会再创建默认构造函数。
- 4: 特殊方法学习
- 4.1> 使用static 定义静态字段与方法.
- 规则1:static 方法中,需用对象访问类中定义的任何实例字段与方法。
- 规则2:static 方法中,可以直接访问static字段与static方法。
- 4.2>Main 方法
- Main() 方法是一个项目中唯一的入口程序,也就是程序开始执行的地方。
- 5: 命名空间
- 使用NameSpace 关键字来规定一个“虚拟的目录”使得大型项目中,允许有重复的类名称存在。(这个技术类似操作系统中的“目录”的作用)
C# OOP编程的更多相关文章
- PHP面向对象(OOP)编程入门教程
面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持.如何使用OOP的思想来进行PHP的高级编程,对于提高 PHP编程能力和规划好Web开发构架都是非常有意义的.下面我们就 ...
- 【PHP面向对象(OOP)编程入门教程】1.什么是面向对象?
面向对象编程(Object Oriented Programming, OOP, 面向对象程序设计)是一种计算机编程架构,OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成 ...
- php面向对象(OOP)编程完全教程
摘自:http://www.php-note.com/article/detail/41 面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持.如何使用OOP的思想来进行P ...
- JavaScript的OOP编程1
首先要说的是,javascript其实是可以进行OOP编程的,其次javascript的OOP编程实现方式有多种,我写的这一种只是我测试过,可行的一种 version1 // 父类 function ...
- js原生设计模式——4安全的工厂方法模式之oop编程增强版
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- PHP面向对象(OOP)编程入门教程链接
PHP官方学习OOP: http://php.net/manual/zh/oop5.intro.php 从其他博主学习:(以下链接来源: http://blog.snsgou.com/post-41. ...
- Delphi研究,对全局变量函数与OOP编程关系的一点体会 good
感叹:设计VCL的人真是神人啊,感觉比Pascal编译器的设计人还要牛很多,把整个Windows架构理了一遍,封装的如此之好,复用的如此之好(以至于Delphi的控件满天飞,使用还特别容易),简直惊为 ...
- OOP编程七大原则
OCP(Open-Closed Principle),开放封闭原则:软件实体应该扩展开放.修改封闭.实现:合理划分构件,一种可变性不应当散落在代码的很多角落里,而应当被封装到一个对象里:一种可变性不应 ...
- oop编程思想
oop的编程思想:抽象.封装.继承.多态. 1.抽象: 数据抽象:类描述的对象的属性或状态 行为抽象:类描述的对象的行为或功能 举例: 时钟:Class 数据:int Hour,Minute,Seco ...
- oop 编程是什么?
面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构.OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成.
随机推荐
- HashMap源码解析、jdk7和8之后的区别、相关问题分析(多线程扩容带来的死循环)
一.概览 HashMap<String, Integer> map = new HashMap<>(); 这个语句执行起来,在 jdk1.8 之前,会创建一个长度是 16 的 ...
- 【Spring】IOC容器注解汇总,你想要的都在这儿了!!
写在前面 之前,我们在[Spring]专题中更新了不少关于Spring注解相关的文章,有些小伙伴反馈说,看历史文章的话比较零散,经常会忘记自己看到哪一篇了.当打开一篇新文章时,总感觉自己似乎是看到过了 ...
- 20190919-02安装Xshell和CRT远程工具 000 008
Linux远程登录及相关工具介绍 Linux一般作为服务器使用,而服务器一般放在机房,你不可能在机房操作你的Linux服务器.这时我们就需要远程登录到Linux服务器来管理维护系统. Linux系统中 ...
- Zookeeper协议篇-Paxos算法与ZAB协议
前言 可以自行去学习一下Zookeeper中的系统模型,节点特性,权限认证以及事件通知Watcher机制相关知识,本篇主要学习Zookeeper一致性算法和满足分布式协调的Zab协议 Paxos算法 ...
- Openresty使用
OpenResty是一个全功能的 Web 应用服务器.它打包了标准的 Nginx 核心,常用的第三方模块以及大多数依赖项. 可以把它看成是Nginx附加众多的第三方插件的合集.其主体是嵌入lua脚本的 ...
- 再深入一点|binlog和relay-log到底长啥样?
上一篇mysql面试的文章之后收到不少朋友的意见,希望深入讲讲复制.日志的格式这些,今天,我们就来深挖一下mysql的复制机制到底有哪一些,以及binlog和relay-log的结构到底是什么样子的. ...
- 关于Java代理那些事儿
代理是啥?就是代替你执行你持有的主要功能,并且能在你的基础之上完成一些其他的功能.代理的目的就是生成一个和原对象具有同样功能的对象.在Java中,代理是一种设计模式.在Spring的面向切面编程(AO ...
- 关于如何设置IDEA中的servlet的模板
关于如何设置IDEA中的servlet的模板 点击左上角的File: Setting --> Editor --> File and Code Templates --> Other ...
- 安卓自动化测试工具Monkey简单使用
一.首先安装adb 地址:http://www.downza.cn/soft/219906.html安装到D盘下,安装的过程中自己注意下不要安装上全家桶.找到这个压缩包:解压到当前文件夹: 二.将ad ...
- 程序员你是如何降低NPE的?
程序员,如果系统突然报了一个空指针异常,你肯定像吞了一只苍蝇一样尴尬. 那么如何在日常开发过程中降低NPE? 问题 回答 现状 返回空值会出现大量的空指针异常 目的 改进方法的返回值,降低出现空指针异 ...