概述
2.0 类的概述
类是一种活动的数据结构
在面向对象的分析和设计产生之前,程序员们仅把程序当作指令的序列。那时的焦点主要放在指令的组合和优化上。随着面向对象的出现,焦点从优化指令转移到组织程序的数据和功能上来。程序的数据和功能被组织为逻辑上相关的数据项和函数的封装集合,并被称为类
类是一个能存储数据并执行代码的数据结构。它包含数据成员和函数成员
数据成员 它存储与类或类的实例相关的数据。数据成员通常模拟该类所表示的现实世界事物的特性
函数成员 它执行代码。通常会模拟类所表示的现实世界事物的功能和操作
一个C#类可以有任意数目的数据成员和函数成员。成员可以是9中可能的成员类型的任意组合
2.1 类的声明
通过编写类的声明定义类
类的声明定义新类的特征和成员。它并不创建类的实例,但创建了用于创建实例的模板
类的声明提供下列内容:
类的名称
类的成员
类的特征
2.2 类的成员
字段和方法是最重要的类成员类型。字段是数据成员,方法是函数成员
2.2.1 字段
字段是隶属于类的变量
可以是任何类型,无论是预定义类型还是用户定义类型
和所有变量一样,字段用来保存数据,并具有如下特征:
可以被写入
可以被读取
语法: 数据类型 字段名称
① 显式和隐式字段初始化
因为字段是一种变量,所以字段初始化语句在语法上和变量初始化语句相同
字段初始化语句是字段声明的一部分由一个等于号后面跟着一个求值表达式组成
初始化值必须是编译时可确定的
如果没有初始化语句,字段的值会被编译器设为默认值,默认值有字段的类型决定
值类型的默认值为 0
bool类型默认值为 false
引用类型默认值为 null
② 声明多个字段
多字段声明和多变量声明语法相同
2.2.2 方法
方法是具有名称的可执行代码块,可以从程序的很多不同地方执行,甚至从其他程序中执行
当方法被调用(call/invoke)时,它执行自己所含的代码,然后返回到调用它的代码并继续执行调用代码。有些方法返回一个值到它们被调用的位置。方法相当于C++中的成员函数
声明方法的最简语法包括以下组成部分:
返回类型 它声明了方法返回值的类型。如果一个方法不返回值,那么返回类型被指定为void
名称 这是方法的名称
参数列表 它至少由一对空的圆括号组成。如果有参数(参数将在下一章阐述),将被列在圆括号中间
方法体 它由一对大括号组成,大括号内包含执行代码
2.3 创建变量和类的实例
类的声明只是用于创建类的实例的蓝图。一旦类被声明,就可以创建类的实例
类是引用类型,正如你从上一章学到的,这意味着它们要为数据引用和实际数据都申请内存
数据的引用保存在一个类类型的变量中。所以,要创建类的实例,需要从声明一个类类型的变量开始。如果变量没有被初始化,它的值是未定义的
2.4 为数据分配内存
声明类类型的变量所分配的内存是用来保存引用的,而不是用来保存类对象实际数据的。要为实际数据分配内存,需要使用new运算符
new运算符为任意指定类型的实例分配并初始化内存。它依据类型的不同从栈或堆里分配
使用new运算符组成一个对象创建表达式,它的组成如下:
■ 关键字new
■要分配内存的实例的类型名称
■成对的圆括号,可能包括参数或没有参数
如果内存分配给一个引用类型,则对象创建表达式返回一个引用,指向在堆中被分配并初始化的对象实例
要分配和初始化用于保存类实例数据的内存,需要做的工作就是这些
使用对象表达式初始化变量,即声明并初始化
语法:数据类型 变量名 = new 对象名()
2.5 实例成员
类声明相当于蓝图,通过这个蓝图想创建多少个类的实例都可以
实例成员 类的每个实例都是不同的实体,它们有自己的一组数据成员,不同于同一类的其他实例。因为这些数据成员都和类的实例相关,所以被称为实例成员
静态成员 实例成员是默认类型,但也可以声明与类而不是实例相关的成员,称为静态成员
2.6 访问修饰符
从类的内部,任何函数成员都可以使用成员的名称访问类中任意的其他成员
访问修饰符是成员声明的可选部分,指明程序的其他部分如何访问成员。访问修饰符放在简单声明形式之前
5中成员访问控制:
公有的(public)
私有的(private)
受保护的(protected)
内部的(internal)
受保护内部的(protected internal)
2.6.1 私有访问和公有访问
私有成员只能从声明它的类的内部访问,其他的类不能看见或访问它们
私有访问是默认的访问级别,所以,如果一个成员在声明时不带访问修饰符,那它就是私有成员
还可以使用private访问修饰符显式地将一个成员声明为私有。隐式地声明私有成员和显式地声明没有语义上的不同,两种形式是等价的
实例的公有成员可以被程序中的其他对象访问。必须使用 public 访问修饰符指定公有访问
在类里面访问成员语法:成员名
在类外面访问成员语法:实例化类的对象 对象名.成员名
C#第二章到此结束
最后
以上就是粗心秋天为你收集整理的CSharp(C#)语言_第二章的全部内容,希望文章能够帮你解决CSharp(C#)语言_第二章所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复