前文链接:

C#面向对象(一):明确几个简单的概念作为开胃菜

C#面向对象(二):封装和继承

C#面向对象(三):多态

  今天是这个系列的收尾文章了,来谈谈其他面向对象知识。

1.嵌套类

  1.1概念

  在 C#中可以将一个类定义在另一个类的内部;外面的类叫“外部类”,内部的类叫“嵌套类”;

嵌套类和普通类相似,只是声明的位置比较特殊。

  1.2注意事项

  如果想实例化内部类的话, 需要使用 外部类名.内部类名 的方式访问到内部类。

//声明一个嵌套类的对象.

            Person.Web w = new Person.Web();

            w.webName = "擅码网";

            w.webUrl = "www.mkcode.net";

            w.Show();

2.匿名类anonymous class

  2.1概念

  如果某个类的实例对象只会使用到一次, 可以使用匿名类的方式创建这个对。

  不需要定义类, 我们就可以创建一个对象。这样的类一般用于存储一组只读属性。

2.2代码格式

var p = new { Name = "Monkey", Age =  };

//匿名类.

var mk = new { Name = "lkk", Age = , Address = "山东" };

//mk.Name = "李开坤";

Console.WriteLine("姓名:{0}, 年龄:{1}, 地址:{2}", mk.Name, mk.Age, mk.Address);

只读的属性

assigned to 赋值

3.密封类sealed class

概念:被sealed关键字修饰过的类不可以被继承,也就是说不能有子类;这样的类, 通常被称之为“ 密封类” 。

4.Object 类

概念:在 C#语言中, Object 类是所有类的父类,在C#中所有的类(内置的,我们自己创建的)都直接或者间接继承自Object类。

Object 是类,object是类型。(类与系统关键字的语法颜色区别)

第一个是一个类,第二个是一个类型

小写的是大写的别称。

  额外的四个就是object类里有的方法。

  重写 ToString 方法:我们经常会在自己的类中重写 ToString 方法, 将类中的信息打印输出。

目的是:辅助调试和开发。

public override string ToString()
{
return string.Format("{0}--{1}--{2}", name, age, address);
}

5装箱与拆箱

概念:

装箱:值类型-->引用类型

拆箱:引用类型-->值类型

两种类型只有存在继承关系的时候, 才可能出现装箱或拆箱操作。

            int a = ;
Console.WriteLine(a);
object b = a; //装箱操作. 值类型-->引用类型.
Console.WriteLine(b);
a = (int)b; //拆箱操作. 引用类型-->值类型.
Console.WriteLine(a);

注意事项

装箱和拆箱本质上是数据存储在栈空间与堆空间之间变更,因此频繁的装箱或拆

箱会降低代所以代码中尽量少用装箱或拆箱操作。

6.预编译指令

什么是预编译指令?

预编译指令也叫预处理指令, 在程序正式编译之前执行。

这些指令不会转化为可执行代码中的命令,但是会影响编译过程的各个方面。

7.对象初始化器

概念

在一个类中, 我们通常使用构造方法来对属性进行赋值,完成对象的初始化。

但是当一个类中的属性很多很多的时候,不可能为各种情况都定义构造方法,这

个时候可以使用“ 对象初始化器” 来完成属性的赋值。

语法格式:

类名 对象名 = new 类名(){属性名 = 值; 属性名 = 值};

            Person p1 = new Person() { Name = "lkk", Age =  };
Person p2 = new Person() { Name = "擅码网" };
Person p3 = new Person() { Age = , Address = "山东" };

C#面向对象(四):其他面向对象知识的更多相关文章

  1. JAVA之旅(四)——面向对象思想,成员/局部变量,匿名对象,封装 , private,构造方法,构造代码块

    JAVA之旅(四)--面向对象思想,成员/局部变量,匿名对象,封装 , private,构造方法,构造代码块 加油吧,节奏得快点了 1.概述 上篇幅也是讲了这点,这篇幅就着重的讲一下思想和案例 就拿买 ...

  2. 【软件构造】第三章第四节 面向对象编程OOP

    第三章第四节 面向对象编程OOP 本节讲学习ADT的具体实现技术:OOP Outline OOP的基本概念 对象 类 接口 抽象类 OOP的不同特征 封装 继承与重写(override) 多态与重载( ...

  3. Java学习之路(四):面向对象

    Java中的面向对象 概念:面向对象的原本的意思是“”万物皆对象“” 面向对象思想的特点: 是一种更符合我们思想习惯的思想,将复杂的事情简单化 使我们角色发生了转换,将我们从执行者变成了指挥者 面向对 ...

  4. day24:面向对象设计与面向对象编程、类和对象

    一.三大编程范式: 面向过程: 面向函数: 面向对象: 二.程序的进化论: 1.编程最开始就是无组织无结构,从简单控制流中按步写指令 2.从上述的指令中提取重复的代码块或逻辑,组织到一起(比方说,你定 ...

  5. Python开发【第七篇】:面向对象 和 python面向对象(初级篇)(上)

    Python 面向对象(初级篇)   51CTO同步发布地址:http://3060674.blog.51cto.com/3050674/1689163 概述 面向过程:根据业务逻辑从上到下写垒代码 ...

  6. JAVA(一)JAVA基础/面向对象基础/高级面向对象

    成鹏致远 | lcw.cnblog.com |2014-01-23 JAVA基础 1.开发环境搭建 JAVA程序的执行流程 JAVA命令->要使用一个*.class文件(类文件)->通过c ...

  7. 076 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 01 Java面向对象导学

    076 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 01 Java面向对象导学 本文知识点:Java面向对象导学 说明:因为时间紧张,本人 ...

  8. 面向对象编程(九)——面向对象三大特性之继承以及重写、Object类的介绍

    面向对象三大特性 面向对象三大特征:继承 :封装/隐藏 :多态(为了适应需求的多种变化,使代码变得更加通用!) 封装:主要实现了隐藏细节,对用户提供访问接口,无需关心方法的具体实现. 继承:很好的实现 ...

  9. <一>面向对象分析之面向对象和面向过程

    面向对象        ---->注重的是拆分,组装.        ---->封装,继承,多态,复用(只是现象)        ---->面向对象变成的目标从来就不是复用.相反,对 ...

  10. Python面向对象01 /面向对象初识、面向对象结构、类、self、实例化对象

    Python面向对象01 /面向对象初识.面向对象结构.类.self.实例化对象 目录 Python面向对象01 /面向对象初识.面向对象结构.类.self.实例化对象 1. 面向对象初识 2. 面向 ...

随机推荐

  1. Loadrunder脚本篇——Run-time Settings之Preferences

    打开Preferences设置对话框,这里提供了对运行时的参数选择设置 Enable Image and Text Check 开启图片和文本检查.允许用户在回放期间通过web_find(文本检测)或 ...

  2. Django框架之cookie和session及开发登录功能

    1.cookie是什么? Web应用程序是使用HTTP协议传输数据的.HTTP协议是无状态的协议.一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接.这就意味着服务器无法从 ...

  3. ubuntu下make无法安装的问题

    发布时间:2015-10-30 10:51:30来源:linux网站作者:_莫欺少年穷 在帮同学服务器安装环境过程中,发现,make 命令不能使用,提示: The program 'make' is ...

  4. easy_install

    一 setuptools 和easy_install setuptools:setuptools 是一组由PEAK(Python Enterprise Application Kit)开发的 Pyth ...

  5. linux下安装casperjs 开发运行环境

    casperjs是一个基于phantomjs的测试框架,使用python进行操作,所以一个完整的casperjs环境需要安装phantomjs和python. 1 phantomjs安装 到官网下载最 ...

  6. USB引脚及定义

    USB 2.0 USB接口定义: USB引脚定义: 针脚 名称 说明 接线颜色 1 VCC +5V电压 红色 2 D- 数据线负极 白色 3 D+ 数据线正极 绿色 4 GND 接地 黑色   Min ...

  7. poj1753模拟

    题目链接http://poj.org/problem?id=1573 题意:从第一行第k个出发按照已给的方向前进,问第几步走出去或第几步进入一个有多少步的循环. 就是按照题意模拟就好了. 代码写完了w ...

  8. 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0” 提供程序

    我在Web App程序里面用“Microsoft.Jet.OLEDB.4.0”来连接Excel文件,导入到数据库,在Windows 2003+ Office 2007 的环境下正常,但是在Window ...

  9. 关于nginx性能优化及基本概念

    参考文章: Nginx面试中最常见的18道题:http://blog.csdn.net/liyanlei5858/article/details/77924420 Nginx性能优化指南:http:/ ...

  10. HRBUST 1717 字典树模板

    之前写字典树虽然很熟也能变化 但是一直是到了场上再乱写 写的很长 于是准备写个短点的板子 于是选了个水题 然而写出了1W个bug insert和query反而写的没什么问题.. L c[100050] ...