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#面向对象(四):其他面向对象知识的更多相关文章
- JAVA之旅(四)——面向对象思想,成员/局部变量,匿名对象,封装 , private,构造方法,构造代码块
JAVA之旅(四)--面向对象思想,成员/局部变量,匿名对象,封装 , private,构造方法,构造代码块 加油吧,节奏得快点了 1.概述 上篇幅也是讲了这点,这篇幅就着重的讲一下思想和案例 就拿买 ...
- 【软件构造】第三章第四节 面向对象编程OOP
第三章第四节 面向对象编程OOP 本节讲学习ADT的具体实现技术:OOP Outline OOP的基本概念 对象 类 接口 抽象类 OOP的不同特征 封装 继承与重写(override) 多态与重载( ...
- Java学习之路(四):面向对象
Java中的面向对象 概念:面向对象的原本的意思是“”万物皆对象“” 面向对象思想的特点: 是一种更符合我们思想习惯的思想,将复杂的事情简单化 使我们角色发生了转换,将我们从执行者变成了指挥者 面向对 ...
- day24:面向对象设计与面向对象编程、类和对象
一.三大编程范式: 面向过程: 面向函数: 面向对象: 二.程序的进化论: 1.编程最开始就是无组织无结构,从简单控制流中按步写指令 2.从上述的指令中提取重复的代码块或逻辑,组织到一起(比方说,你定 ...
- Python开发【第七篇】:面向对象 和 python面向对象(初级篇)(上)
Python 面向对象(初级篇) 51CTO同步发布地址:http://3060674.blog.51cto.com/3050674/1689163 概述 面向过程:根据业务逻辑从上到下写垒代码 ...
- JAVA(一)JAVA基础/面向对象基础/高级面向对象
成鹏致远 | lcw.cnblog.com |2014-01-23 JAVA基础 1.开发环境搭建 JAVA程序的执行流程 JAVA命令->要使用一个*.class文件(类文件)->通过c ...
- 076 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 01 Java面向对象导学
076 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 01 Java面向对象导学 本文知识点:Java面向对象导学 说明:因为时间紧张,本人 ...
- 面向对象编程(九)——面向对象三大特性之继承以及重写、Object类的介绍
面向对象三大特性 面向对象三大特征:继承 :封装/隐藏 :多态(为了适应需求的多种变化,使代码变得更加通用!) 封装:主要实现了隐藏细节,对用户提供访问接口,无需关心方法的具体实现. 继承:很好的实现 ...
- <一>面向对象分析之面向对象和面向过程
面向对象 ---->注重的是拆分,组装. ---->封装,继承,多态,复用(只是现象) ---->面向对象变成的目标从来就不是复用.相反,对 ...
- Python面向对象01 /面向对象初识、面向对象结构、类、self、实例化对象
Python面向对象01 /面向对象初识.面向对象结构.类.self.实例化对象 目录 Python面向对象01 /面向对象初识.面向对象结构.类.self.实例化对象 1. 面向对象初识 2. 面向 ...
随机推荐
- JavaWeb:Tomcat服务器的安装与配置
Tomcat服务器的安装与配置 安装 输入网址进入Tomcat的官网 在左边导航栏选择对应下载的版本 下载安装包形式 下载并解压到我们 ...
- Java中ArrayList和LinkedList区别、ArrayList和Vector的区别
一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构. 2.对于随机访问get和set,Ar ...
- require.js和sea.js的区别
下面为大家讲解一下require.js和sea.js的区别.纯属个人意见,不喜勿喷. 首先原理上的区别 sea.js遵循CMD规范.书写方式类似node.js的书写模板代码.依赖的自动加载,配置的简洁 ...
- redis 第二篇 系统命令简介 上
一.系统级命令(不归属任何一个数据结构) 从keys命令说起 1. 可以模式匹配 也就是可以用正则表达式的方式来匹配 格式为KEYS pattern glob风格通配符规则 ? 匹配一个字符 ...
- 20145240 《Java程序设计》第十周学习总结
20145240 <Java程序设计>第十周学习总结 教材学习内容总结 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据. 程序员所作的事情就是把数据发送到指定的位置 ...
- 5.1深入理解计算机系统——系统级I/O
一.UNIX I/O 在UNIX系统中有一个说法,一切皆文件.所有的I/O设备,如网络.磁盘都被模型化为文件,而所有的输入和输出都被当做对相应文件的读和写来执行.这种将设备映射为文件的方式,允 ...
- usb mtp激活流程【转】
本文转载自:https://blog.csdn.net/kc58236582/article/details/46895901 废话少说, 先上两张时序图 , 图片有点大, 建议用新窗口打开或者另存到 ...
- linux运维面试题1
一.填空题 1. 在Linux 系统 中,以文件方式访问设备 . 2. Linux 内核引导时,从文件/etc/fstab中读取要加载的文件系统 . 3. Linux 文件系统中每个文件用indoe节 ...
- Struts2的<s:date>标签使用详解[转]
作用:用来格式化显示日期的格式. 它可以用一种你指定的格式来显示 (如:“yyyy-MM-dd”),可以生成通俗易懂的注释(如:in 2 hours,14 minutes),或者用预先定义的一个格式来 ...
- Could not reserve enough space for object heap解决办法
Centos6.4 Jdk1.6 1.在终端输入Java命令报错 [root@localhost local]# java Error occurred during initialization ...