zoukankan      html  css  js  c++  java
  • C#类、静态类

        C#是面向对象(object-oriented)类型的计算机语言,使用类(class)来体现面向对象的概念。

      分类(classification)

      我们在现实世界中,会遇到很多被分类的事物。例如,动物,汽车,家具。这些事物,在计算机语言中统称为对象(object).拿汽车为例子,一个汽车最基本的配件、功能有:轮胎,方向盘、引擎,能驾驶等等。在编程世界里,我们创建一个汽车对象的过程,称为建模(modeling).建模的过程,就是将轮胎,方向盘,引擎,能驾驶等封装到模型中。封装是面向对象的几大特点中的一个。我们将轮胎,方向盘,引擎以字段(fields)的形式存在在模型中,将能驾驶以方法(method)的形式存在模型中。下面代码片段建了一个汽车模型,或者汽车类。

    class  Automobile
    {
         private  string _steeringWheel;
    
         private string   _tire;
    
         private string _engine;
    
        public void    Run()
     {
             
     }
    }

    当创建了一个类,这个类就会设定一个边界来隔离类内部与类外部。那么外部怎样去访问类内部的字段与方法呢?public修饰符,可以允许类外部访问。private修饰符,只允许类内部访问。

    _steeringWheel,_tire,_engine,这些字段是private修饰,类外部不允许访问。Run()方法,public修饰,外部可以访问。我们将一些属性,方法封装在了Automobile类中。封装的意义有两个:

    1.将属性、方法集合在一起。换句话说,就是分类。将属于汽车的配件,功能从其他事物中分类出来。

    2.控制属性,方法的访问。通过给定访问修饰符来控制类外部是否访问类内部的字段,方法。

    静态方法、数据:

       静态方法,不同于普通方法,静态方法只能通过类来调用。普通方法只能通过实例化对象来调用。例如:

     

    class  Test
    {
            pulbic static DoWrok()
            {
                        DoWork2(); //即使DoWork2与该方法在一个类中,也不可以访问。
                                          //静态方法只可以访问静态方法,静态字段                        
           }
          public void DoWork2()
        {
                    
        }
    }
    
      
        Test.DoWork();  //可以调用成功
         Test.DoWork(2);// 编译失败
         Test  object=new Test(); //实例化了Test对象
          object.DoWork2(); //通过实例化对象来调用方法

    一般静态方法都是一些常用方法,在程序中使用比较频繁,不用每次调用都要实例化对象。有静态方法,也有静态类。关于静态类,应当注意一下几点:

    1.静态方法中只允许静态成员,换句话,静态类中的字段,方法必须都是静态的。

    2.静态类的用处,封装一些常用的工具。

    关于静态字段,与常量字段需要注意,常量字段不可以标记为静态类型,但是它静态的。

    匿名类(Anonymous Class):

    顾名思义,匿名类就是没有名字的类。我们用var关键字来定义它的类型。关于匿名类有一些限制:

    1.匿名类只能包含公共字段

    2.匿名类不可以包含方法

    3.匿名类的字段不可以定义为静态的

    4.匿名类的字段必须初始化

    var Anonymous =new {Name="Diana",Age=46};
  • 相关阅读:
    HDU 1114 Piggy-Bank
    HDU 2955 Robberies
    NTOJ 290 动物统计(加强版)
    POJ 3624 Charm Bracelet
    HDU 2602 Bone Collector
    POJ 1523 SPF(无向图割顶)
    HDU 5311 Hidden String
    HDU 1421 搬寝室
    HDU 1058 Humble Numbers
    POJ 3259 Wormholes(spfa判负环)
  • 原文地址:https://www.cnblogs.com/VitoCorleone/p/4686055.html
Copyright © 2011-2022 走看看