zoukankan      html  css  js  c++  java
  • 看视频学编程之C#中的类

    ------- Windows Phone 7手机开发.Net培训、期待与您交流! -------

     

    定义一个类时,封装是一个重要原则。它的中心思想是:使用一个类的程序不关心类的内部如何工作,程序只需要创建一个类的实例,
    然后调用类的函数,完成函数能做到的事,程序不需要关心这些函数是如何实现的。
    封装的两个目的:
    1、将方法和数据合并到一个类中;——为了支持分类
    2、控制对方法和数据的访问;——为了控制类的使用
     
    定义一个类
     
    class Person
    {
      string name;
      void SayHello()
      {
        Console.WriteLine("你好,我是{0}",name);
      }
    }
    类中的变量称为字段;
    申明并创建一个类类型的变量:Person p1 = new Person();
    可以把一个类的实例赋给同一类型的另一个变量: Person p2;  p2 = p1;
     
    可访问性
     
    一个方法或字段只允许从类的内部访问,就说它是私有的(private);private是类中成员默认的修饰符;
    一个方法或字段可以从类的内部访问,也可以从外部访问,它就是公有的(public);
    class Person
    {
      private string name;
      public void SayHello()
      {
        Console.WriteLine("你好,我是{0}",name);
      }
    }
    name字段不能从类的外部访问到;SayHello()方法可以从类的外部访问到。
     
    构造函数
       
    构造函数用来创建对象,并且可以在构造函数中对对象进行初始化。
    构造函数是用来创建对象的特殊函数,函数名和类名一样,没有返回值,连void都不用。
    构造函数可以有参数,new对象的时候传递函数参数即可
    构造函数可以重载,也就是有多个参数不同的构造函数。
    如果不指定构造函数,则类有一个默认的无参构造函数。如果指定了构造函数,则不再有默认的无参构造函数,如果需要无参构造函数,则需要自己来写。
    构造函数的调用顺序(父子)
     
     静态方法和共享字段
     
     不是所有的方法都必须通过类的实例来提供,有些与众不同的方法被称为工具方法;它们通常提供一个有用的功能,用static修饰;
    一个方法申明为static就可以用类名来调用该方法:
    class Person
    {
      private string name;
      public void SayHello() {……}
      public static void SayNo() {……}  
    }
    Person.SayNo();
    在static方法中,不能访问类中定义的任何实例字段,只能访问static字段,也只能直接调用类中的其他static方法;
    非static方法必须先创建一个类的实例,才能在那个实例上调用这些方法。
     
    可以定义一个static字段,
    class Person
    {
      private string name;                                  所有Person对象都共享一个number字段,每次创建一个Person对象
      public static int number = 0;                      number的值都自加1。
      public Person()                                          访问number时,要用Person作为前缀,Person.number;
      {
        name = "123";
        number++;
      }
      public Person(string name1)
      {
        this.name = name1;
        number++;
      }    
    }
     
    const字段和静态类
     
    有一种特殊的静态字段,它的值永远不会改变,用const来修饰;
    在字段是一个枚举,是一个数值类型,或者是一个字符串时,才能将字段申明为const字段;
    const字段不能被赋值,如果非要赋值const字段的话将报错。
     
    可以将一个类申明为static类。
    静态类只能包含静态成员,静态类纯粹作为工具方法和字段的容器;
    静态类不包含任何实例数据或方法,使用new来创建一个静态类是无意义的,非要创建,编译器会报错;
     
    匿名类
     
    匿名类是一个没有名字的类:
    myAnonymousObject = new {Name = "234" , Age = 20};
    用new来创建一个只有编译器才知道名称的类,你也不知道这个类的类型是什么,可以用var来申明一个隐式类型的变量:
    var anotherAnonymousObject = new {Name = "123" , Age = 22};
    在使用var,变量初始化的表达式是什么类型,编译器就用这个类型来创建变量;
    在C#中根据字段的名称、类型、数量、顺序来判断匿名类的两个实例是否是具有相同的类型;
    anotherAnonymousObject 跟 myAnonymousObject具有相同的字段,而且这些字段名称、类型、顺序都相同,所以
    两个变量是同一个匿名类的实例。
    匿名类内容的限制:
    匿名类只能包括public字段,字段必须完全初始化,不可以是static字段,而且不能在其中制定任何方法!!!
     
     
     
  • 相关阅读:
    02day-webpack
    Mybatis中的@Param注解(自己没试过)
    SpringMVC
    jsp获取map
    form表单提交时选择性传值到后台
    form表单提交数据的几种方式
    ajax中什么时候进success和error
    @RequestParam加与不加的区别
    @RequestBody和@RequestParam区别
    java.lang.IllegalArgumentException: Invalid character found in the request target. The valid charact
  • 原文地址:https://www.cnblogs.com/cctt/p/3142026.html
Copyright © 2011-2022 走看看