浅谈对c# 面向对象的理解
一、了解面向对象
1、概念基本理解:1)、一个个体可以看做是一个对象,例如:人这个个体;
2)、有共同属性的一类作为一个个体,例如:学生、白领、农民工;
3)、结构体是用户自定义的数据类型,可以定义不同数据类型的变量,结构体也是面向对象的核心;
2、基本特性:
1)封装:是隐藏信息的特性,具有“封装”意识,是掌握面向对象分析与设计技巧的关键。
最简单的理解:创建一个对象的整体,使对象的属性可以具有赋值、取值的功能,也就是对象中的变量可以赋值、取值。,是一种认为的抽象出来的对象的概念。
例如:
2)继承:任何事物中存在一种“派生”关系,即子类继承父类的所有属性,但是父类不一定具备子类的属性或功能。(类似数据库中主键、外键关系)
例如:
3)多态:即多样化;某一类中具备共同属性,但这一类中具体到某个单独的个体又有各自不同的属性或功能。每一个个体都具有各自形态。可以理解为特性与共性的关系,例如:苹果和水果,水果拥有的特性,苹果一定有,因为苹果属于水果类。
二、结构化编程方法
1、结构化软件系统的基本编程单位是函数;
2、整个系统按功能划分为若干个模块,每个模块都由逻辑上或功能上相关的若干个函数构成,各模块在功能上相对独立。
3、公用的函数存放在公用模块中,各模块间可以相互调用,拥有调用关系的模块形成一个树形结构,这种调用关系应尽可能做到是单向的。
如图:
相关推荐
-
C# 面向对象的基本原则
C#面向对象的基本原则 一.面向接口编成而不是实现 [Code to an interface rather than to an implementation.] 二.优先使用组合而非继承 [Favor Composition Over Inheritance.] 三.SRP: The single responsibility principle 单一职责 系统中的每一个对象都应该只有一个单独的职责,而所有对象所关注的就是自身职责的完成.[Every object in your syste
-
C#实现实体类和XML相互转换
一.实体类转换成XML 将实体类转换成XML需要使用XmlSerializer类的Serialize方法,将实体类序列化 public static string XmlSerialize<T>(T obj) { using (StringWriter sw = new StringWriter()) { Type t= obj.GetType(); XmlSerializer serializer = new XmlSerializer(obj.GetType()); serializer.
-
C#实现实体类与字符串互相转换的方法
本文实例讲述了C#实现实体类与字符串互相转换的方法.分享给大家供大家参考.具体实现方法如下: using System; using System.Collections.Generic; using System.Text; namespace PackDLL.Data.ConvertData { /// <summary> /// 实体类.字符串互相转换 /// </summary> public class PackReflectionEntity<T> { //
-
c# DataTable与不同结构实体类转换的方法实例
在实际开发过程中,或者是第三方公司提供的数据表结构,与我们系统中的实体类字段不对应,遇到这样我们怎么处理呢?可能有人会说,在转换时创建一个实体对象,对表里的数据逐行遍历来实例化这个实体对象不就完了.的确没错,这方法可行,但是这个方法效率极低,遇到亿万数据的话那就要实例化亿万个对象,由此可见它的效率了.先看一下我的实体类 复制代码 代码如下: /// <summary>/// 具体的实体类,和数据表中不同/// </summary>public class Person{ [D
-
C# DataTable 转换为 实体类对象实例
复制代码 代码如下: public class User { public int ID { get; set; } public string Name { get; set; } } //对应数据库表: //User //字段:ID.Name 那么你也许需要编写将DataTable 转换为实体对象的方法,便利DataTable.Rows 获得并填充.. 下面是我写的一个通用方法,分享+记录,便于日后直接Copy ~ 复制代码 代码如下: private sta
-
C#对象与XMl文件之间的相互转换
C#提供三种序列化方式,分别为:1.是使用BinaryFormatter进行串行化: 2.使用SoapFormatter进行串行化: 3.使用XmlSerializer进行串行化.其中对于BinaryFormatter的方式需要实现ISerializable接口,而XmlSeriializ不需要实现对应的接口,可以直接序列化.在这里面我们主要采用XMlSerialize来实现对应的序列化操作进而实现对应的对象和XMl文件之间的转换关系. 在通过序列化实现对应的转换关系操作的功能时,我首先创建了D
-
C#实现XML与实体类之间相互转换的方法(序列化与反序列化)
本文实例讲述了C#实现XML与实体类之间相互转换的方法.分享给大家供大家参考,具体如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Data; using System.Xml; using System.Xml.Serialization; /// <summary> /// Xml序列化与反序列化 //
-
c#对象反序列化与对象序列化示例详解
1.对象序列化的介绍 (1).NET支持对象序列化的几种方式二进制序列化:对象序列化之后是二进制形式的,通过BinaryFormatter类来实现的,这个类位于System.Runtime.Serialization.Formatters.Binary命名空间下.SOAP序列化:对象序列化之后的结果符合SOAP协议,也就是可以通过SOAP 协议传输,通过System.Runtime.Serialization.Formatters.Soap命名空间下的SoapFormatter类来实现的.XML
-
C#判等对象是否相等的方法汇总
本文以实例形式展示了C#判等对象是否相等的常用方法,非常实用,可供大家参考借鉴之用.具体分析如下: 一.判断相等的3个方法 1.实例方法 public virtual bool Equals(object obj) { return RuntimeHelpers.Equals(this, obj); } 2.比较值类型静态方法 public static bool Equals(object objA, object objB) { return ((objA == objB) || (((ob
-
C#编程获取实体类属性名和值的方法示例
本文实例讲述了C#编程获取实体类属性名和值的方法.分享给大家供大家参考,具体如下: 遍历获得一个实体类的所有属性名,以及该类的所有属性的值 //先定义一个类: public class User { public string name { get; set; } public string gender { get; set; } public string age { get; set; } } //实例化类,并给实列化对像的属性赋值: User u = new User(); u.name
-
C#实现根据实体类自动创建数据库表
.Net新手通常容易把属性(Property)跟特性(Attribute)搞混,其实这是两种不同的东西 属性指的类中封装的数据字段:而特性是对类.字段.方法和属性等元素标注的声明性信息 如下代码(Id.Name为User的属性,[DbKey]为Id的特性) /// <summary> /// 用户信息 /// </summary> public class User { [DbKey] public string Id { get; set; } public string Nam
随机推荐
- php实现的三个常用加密解密功能函数示例
- Mac 安装和卸载 Mysql5.7.11 的方法
- PHP函数strip_tags的一个bug浅析
- 解析用PHP读写音频文件信息的详解(支持WMA和MP3)
- python制作websocket服务器实例分享
- asp datediff 时间相减
- mysql下普通索引和唯一索引的效率对比
- Docker容器中运行nginx
- Lua中的常用函数库汇总
- 编写Python脚本把sqlAlchemy对象转换成dict的教程
- python实现汉诺塔方法汇总
- java使用异或实现变量互换和异或加密解密示例
- Java Web使用Html5 FormData实现多文件上传功能
- C++中输入输出流及文件流操作总结
- DataTable转成字符串复制到txt文本的小例子
- Android四大组件之Service(服务)实例详解
- Android 中对JSON数据解析实例代码
- 最新奇迹私服复制漏洞大全含98C
- 浅谈 Vue 项目优化的方法
- layui Ajax请求给下拉框赋值的实例