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};
  • 相关阅读:
    JDK1.8十个新特性
    问题:No more handles [Could not detect registered XULRunner to use]
    在未标记为正在运行时,调用了RunScript
    问题: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
    常用数据库的JDBC 的URL形式
    Myeclipse插件的三种安装方式
    mysqlError: Illegal connection port value '3306>]'
    异常:Bad version number in .class file
    安装msi文件遇到错误code=2502 or 2503 win8
    spring使用RedisTemplate的坑Could not get a resource from the pool
  • 原文地址:https://www.cnblogs.com/VitoCorleone/p/4686055.html
Copyright © 2011-2022 走看看