zoukankan      html  css  js  c++  java
  • 结构和类

    结构

    1.结构是一种值的类型,通常用来封装一组相关变量,结构中可以包括构造函数、常量、字段、方法、属性、运算符、事件和嵌套类型等。当如果要同时包括上述几种成员,则应该考虑使用类。

    结构修饰符 struct 结构名

    {

    }

    结构具有以下特点:

    a).结构是值的类型;

    b).向方法传递结构时,结构是通过传值方式传递的,而不是作为引用传递的;

    c).结构实例化可以不使用new运算符;

    d).结构可以声明构造函数,但它们必须带参数;

    e).一个结构不能从另一个结构或类继承。所有结构都直接继承自System.ValueType,后者继承自System.Object

    f).结构可以实现接口;

    g).在结构中初始化实例字段是错误的;

    2.结构的使用

    结构常用于较小的数据类型。

    public struct Rect

    {

             public double width;

             public double height;

             public rect(double x,double y)

             {

                       width = x;

                       height = y;

             }

             public double Area()

             {

                       return width * height;

    }

    }

    Static void main(string[] args)

    {

             Rect rect = new Rect(6, 4);

             Console.WriteLine(“矩形面积为:” + rect.Area());

    }

     

    1.类是一种数据结构,它可以包含数据成员(常量和域)、函数成员(方法、属性、索引器、运算符、构造函数和析构函数)和嵌套类型。类支持继承,继承是一种使子类(派生类)可以对基类进行拓展和专有化的机制。

    面向对象编程方式具有封装、继承和多态性等特点。

    2.类的声明

    类修饰符 class 类名

    {

    }

    常用类修饰符:

    a).new:仅允许在嵌套类声明时使用,表明类中隐藏了由基类中继承而来的、与基类中同名的成员。

    b).public:不限制对该类的访问。

    c).protected:只能从其所在类和所在类的子类(派生类)进行访问。

    d).internal:只有.NET中的应用程序或库才能访问。

    e).private:只有其所在类才能访问。

    f).abstract:抽象类,不允许建立类的实例。

    e).sealed:密封类,不允许被继承。

    3.构造函数和析构函数

    主要用来对对象进行初始化和回收对象资源。一般来说,对象的声明周期从构造函数开始,以析构函数结束。构造函数的名字和类的名字相同,析构函数和构造函数名字相同,但析构函数要在名字前加一个波浪号(~)。当退出含有该对象的成员时,析构函数将自动释放这个对象所占有的内存空间。

    注:一个类中只能有一个析构函数,并且无法调用析构函数,它是自动调用的。

    4.对象的声明和实例化

    class A

    {

    }

    class B

    {

    static void Main(string[] args)

    {

                      A a = new A();

    }

    }

     

    类的面向对象特性

    1.类的封装

    封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口这一特定的访问权限来使用类的成员。

    2.类的继承

    C#中一次只允许继承一个类,不能同时继承多个类。

    利用继承机制,用户可以通过增加、修改或替换类中的方法对这个类进行扩充,以适应不同的应用要求。

    继承类时,需要使用冒号加类型。当对一个类应用sealed修饰符时,该修饰符会阻止其他类从该类继承。

    3.类的多态

    多态使子类(派生类)的实例可以直接赋予基类的变量(这里不需要强制类型转换),然后直接就可以通过这个变量调用子类(派生类)的方法。

    注:

    a).virtual修饰符不能与privatestaticabstract或者override修饰符同时使用。

    b).override修饰符不能与newstatic或者virtual修饰符同时使用,并且重写方法只能用于重写基类的虚方法。

    c).C#中,继承、虚方法与重写方法组合在一起才能实现多态性。

     

     

     

    C#从入门到精通》读后总结

     

  • 相关阅读:
    数据结构:散列函数的构造方法
    数据结构:散列表的基本概念
    数据结构:判断是否为同一棵二叉搜索树
    数据结构:二叉搜索树
    数据结构:二叉树遍历及其递归实现
    数据结构:二叉树遍历及其堆栈实现和应用
    数据结构:二叉树的定义与存储
    poj 2312 Battle City(优先队列+bfs)
    hdu 2112 HDU Today (最短路)
    hdu 1874 畅通工程续
  • 原文地址:https://www.cnblogs.com/hmliang/p/5281453.html
Copyright © 2011-2022 走看看