C#、属性和方法,结构和类(构造函数)

 

一、

定义一个类时,等于定义了一个数据类型的蓝图。

这实际上并没有定义任何的数据,但它定义了类的名称意味着什么,也就是说,类的对象由什么组成及在这个对象上可执行什么操作。

对象是类的实例。构成类的方法和变量成为类的成员。

 

类的定义:

类的定义是以关键字 class 开始,后跟类的名称。

类的主体,包含在一对花括号内。

 

类定义的一般形式:

<access specifier> class  class_name

{

    // member variables

    <access specifier> <data type> variable1;

    ...

    <access specifier> <data type> variableN;

    // member methods

    <access specifier> <return type> method1(parameter_list)

    {

        // method body

    }

}

 

访问标识符 <access specifier> 指定了对类及其成员的访问规则。如果没有指定,则使用默认的访问标识符。类的默认访问标识符是 internal,成员的默认访问标识符是 private

数据类型 <data type> 指定了变量的类型,返回类型 <return type> 指定了返回的方法返回的数据类型。

 

二、属性

属性是类,结构和接口的命名成员。

类或结构中的成员变量或方法称为域。

属性是域的扩展,且可使用相同的语法来访问。

它们使用访问器让私有域的值可被读写或操作。

属性不会确定存储位置。

相反,它们具有可读写或计算它们值的访问器。

 

访问器

属性的访问器包含有助于读取或计算或设置属性的可执行语句。

访问器声明可包含get访问器,set访问器。

 

三、方法

            一个方法是把一些相关的语句组织在一起,用来执行一个任务的语句块。每一个 C# 程序至少有一个带有 Main 方法的类。

要使用一个方法,您需要:

  • 定义方法
  • 调用方法

定义方法:

当定义一个方法时,从根本上说是在声明它的结构的元素。

<Access Specifier> <Return Type> <Method Name>(Parameter List)

{

   Method Body

}

Access Specifier:访问修饰符,这个决定了变量或方法对于另一个类的可见性。

Return type:返回类型,一个方法可以返回一个值。返回类型是方法返回的值的数据类型。如果方法不返回任何值,则返回类型为 void

Method name:方法名称,是一个唯一的标识符,且是大小写敏感的。它不能与类中声明的其他标识符相同。

Parameter list:参数列表,使用圆括号括起来,该参数是用来传递和接收方法的数据。参数列表是指方法的参数类型、顺序和数量。参数是可选的,也就是说,一个方法可能不包含参数。

Method body:方法主体,包含了完成任务所需的指令集。

 

调用方法:

类内部可以使用方法名调用方法,类外部必须使用类的实例化对象名.方法名进行调用。

 

 

四、构造函数

类的构造函数是类的一个特殊的成员函数,当创建类的新对象时执行。

构造函数的名称与类的名称完全相同,它没有任何返回类型。

默认的构造函数没有任何参数。

但是如果你需要一个带有参数的构造函数可以有参数,这种构造函数叫做参数化构造函数。

带有参数的构造函数可以在创建对象的同时给对象赋初始值。

 

构造函数的定义:

//不带参数的构造方法

public 类名()

{

//执行代码

}

//带参数的构造方法

public 类名(数据类型 参数1,数据类型 参数2,数据类型 参数3,......,数据类型  参数N)

{

//执行代码

}

 

析构函数:

类的析构函数是类的一个特殊的成员函数,当类的对象超出范围时执行。

析构函数的名称是在类的名称前加上一个波浪形(~)作为前缀,它不返回值,也不带任何参数。

析构函数用于在结束程序(比如关闭文件、释放内存等)之前释放资源。

析构函数不能继承或重载。

 

析构函数的定义:

~类名()

{

//执行代码

}

五、结构

结构体是值类型数据结构。

它使得一个单一变量可以存储各种数据类型的相关数据。

struct 关键字用于创建结构体。

 

定义结构:

为了定义一个结构,必须使用 struct 语句。

struct 结构名

{

  属性;

};  

 

使用结构:

结构名   结构变量名;

结构变量名.属性=属性值;

 

结构有以下特点:

1.结构可带有方法、字段、索引、属性、运算符方法和事件。

2.结构可定义构造函数,但不能定义析构函数。

但是能为结构定义默认的构造函数。

3.默认的构造函数是自动定义的,且不能被改变。与类不同,结 构不能继承其他的结构或类。

4.结构不能作为其他结构或类的基础结构。

5.结构可实现一个或多个接口。

6.结构成员不能指定为 abstractvirtual protected

7.使用 New 操作符创建一个结构对象时,会调用适当的构造函 数来创建结构。与类不同,结构可以不使用 New 操作符即 可被实例化。不使用 New 操作符,只有在所有的字段都被 初始化之后,字段才被赋值,对象才被使用。

 

类和结构有以下几个基本的不同点:

1.类是引用类型,结构是值类型。

2.结构不支持继承。

3.结构不能声明默认的构造函数。

猜你喜欢

转载自blog.csdn.net/qq_41261286/article/details/82821754