Advertisement

C#和.NET基础知识——学习笔记(三)

阅读量:

面向对象的概念

1. 类和对象

类是模子,确定对象将会拥有的特征(属性)和行为(方法)。

类是对象的类型,类是抽象的概念。

对象可以叫做类的实例(Instance)。

语法:

[访问修饰符] class 类名

{

成员

……

}

访问修饰符

C#中有4个访问修饰符:public,internal,private,protected

public:可以在任何地方被访问;

internal:只能在本项目中被访问;

private:只能在本类中被访问;

protected:只能在本类和子类中被访问。

对于一个类来说,在声明变量或函数时不指定访问权限时,默认采用private访问权限。

在类这个级别,不写访问修饰符时,默认为internal。

在Java和C++中类的默认访问权限是如何设置的?变量名和方法名又是如何设置它们的可见性呢?

2. 属性

属性定义:该对象包含获取(get)与设置(set)两个基本操作的方法。该方法旨在保护私有属性,并确保对该属性的读取与赋值操作均满足规范要求。例如,在这种情况下,请考虑以下实现细节以确保系统的安全性与稳定性。

private int age;

public int Age

{

set

{

return age;

}

get

{

//这里有个关键字value,value中就存储着用户赋的那个值

if(value >= 0)

{

age = value;

}

else

{

age = 0;

}

}

}

属性可分为:读写、只读、只写。

读写属性:具有get/set方法的属性叫做读写属性;

只读属性:只有get方法的属性,这个属性只能读取,不能写入;

只写属性:该set类型的属性仅支持赋值操作而无法读取该属性值(这种特性在实际应用中较为少见)

允许外部访问的变量一定要声明为属性。

3. 构造方法

当实例化一个类时,系统会自动对这个类的属性进行初始化:

数字类型初始化为0/0.0;

string类型初始化为null;

char类型初始化为\0,即ASIIC码的0;

构造方法的好处:

①对多个属性进行赋值时,不需要重复的写实例名;

②可以保证用户在new一个对象时必须对某一个属性进行赋值;

③在创建对象时,对只读属性进行赋值;

构造方法用来创建对象,并且可以在构造函数中对对象进行初始化。

创建方法是一种特殊的实现方式;其名称与所属类的名称一致;且不返回任何值;即使没有参数也可以省略。

构造函数允许带有自定义参数。
当使用new关键字创建对象时,默认会传递给该对象的一个或多个预设属性值(即传递给该对象的一个或多个预设属性值)。
若未显式定义,则系统会自动生成一个无需参数的默认构造函数。
若已知该特定类型的构建函数存在,则无需依赖自动生成的标准版本。
若需自定义一个不带任何参数的构建函数,则必须手动编写相应的代码。
构建函数支持重载功能,在不同情况下可接收不同数量或类型的数据。

4. C#的类图和通用类图

C#的类图如下所示

5. 析构函数(~)

不能再结构中定义析构函数,只能对类使用析构函数。

一个类只能有一个析构函数。

无法继承或重载析构函数。

无法调用析构函数,它们是被自动调用的。

析构函数既没有修饰符,也没有参数。

C#有垃圾回收机制,所以不用再写析构函数。

6. 命名空间

namespace:用于解决类重名问题,可以看做“类的文件夹”。

如果代码和被使用的类在一个namespace则不需要using。

在不同命名空间下的类调用分为两种方式:一种是完整的方式书写"命名空间.类名";另一种是通过引入"using"语句来引用命名空间后再进行调用

7. string

string可以看做是char的只读数组。

C#中的字符串具有不可变性的核心属性。声明后的字符串无法进行修改。因此,在程序中只能通过索引获取字符信息,并无法直接修改特定字符的位置。

为了更改char变量,在C#中必须生成一个新的字符数组,并对该字符数组执行相应的操作以完成修改需求。具体来说,在需要对char变量进行更改时,请按照以下步骤操作:首先利用s.ToCharArray()方法获取当前字符型字符串对应的字符数组;然后对该字符数组执行必要的修改;最后通过new(string[])构造函数生成新的字符型字符串以完成赋值操作即可达成目标。值得注意的是,在完成上述操作后将不再影响原始字符型变量的内容

全部评论 (0)

还没有任何评论哟~