A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 罗志强 中级黑马   /  2013-1-23 08:48  /  1096 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1,封装,生活中的封装就是把一堆零碎的东西,打包成一个东西。

2,属性封装了字段,方法的多个参数封装成了一个对象,将一堆代码封装到了一个方法,将一些功能封装到了几个类中,将一些具有相同功能的代码封装到了一个程序集中,并且对外提供统一的访问接口

3,继承中的几个关键词Base Class → 基类,Parent Class → 父类,Derived Class → 派生类,Child Class → 子类

4,继承的好处:代码重用,多态

5,继承的特性:
   1>继承的但根性:不能同时继承多个类(解决方案:实现接口);
   2>继承具有传递性:基类如果没有继承显示继承类,就默认继承了Object类,继承基类的子类也将继承Object类。这个就叫继承的传递性
   3>C#任何一个类都是继承Object类(默认继承),如果一个类没有显示继承任何一个类,则默认继承Object类,如果显示的指定了当前类继承了某个类,则将覆盖默认的            Object类

6,继承中构造函数:
   1>构造函数不能被继承
   2>子类中的构造函数会默认去调用父类的无参数的构造函数,如果父类添加了有参数的构造函数就会,报错。
    (1)解决此错误是在父类中添加一个无参数的构造函数即可
    public class Person
    {
   
       public Person()
       {
        
       }

       public Person(string name,string age)
       {
        
       }
    }
    public class Student:Person
    {
       public Student(string name,int age)
       {
        
       }
    }

         (2)也可以通过base关键词调用父类有参数的构造函数。
    public class Person
    {
       public Person(string name,string age)
       {
        
       }
    }
    public class Student:Person
    {
       public Student(string name,int age):base("xx",10)
       {
        
       }
    }

   3> base关键词的作用:1,调用父类中的构造函数;2调用父类中的成员
   4> this关键词的作用:1,调用当前类的其他构造函数;2作为当前类的对象调用当前类的成员
   
7,对象初始化器:Person p=new Person(){Name,Age,Gender};
8,访问修饰符
    1>private               只能在当前类的内部使用

    2>protected          受保护的,当前类内部,以及子类内部

    3>internal        当前程序集内部,也就是当前项目内使用,没有访问修饰符的类及成员默认为internal   

    4>protected internal     相当于同时具有protected和internal的权限。在当前项目中可以访问,也可以在其他程序集有继承关系的类中访问
   
    5>public        任何地方都可以访问
9,私有成员是否被继承
    老师观点:1>虽然子类继承父类后,在创建子类对象的时候,父类中的那些私有成员也被分配了内存(子类中也有)。
          2>但是,继承只是面向对象中的一个观念,目的是为了子类使用(多态,代码重用),私有成员即便被继承了,子类中也不能被访问,所以在面向对象中,                       继承了但不能访问,没有意义
10,继承中访问级别约束。
    1>子类访问级别不能高于基类,也就是说,如果子类是public,基类是internal,这样的话就不能被编译。
    2>类的访问修饰符只有两种,public和internal。
    3>可访问性必须一致
11,静态类,成员
    1>调用静态方法的时候必须通过类名直接来调用,不能通过对象来调用
    2>如果类需要实例化就一定不能写成静态类,也就是说静态类不需要实例化
    3>静态成员会在整个程序退出时,才释放资源,所以可以再整个应用程序中共享数据
    4>一般情况是,在这个类是一个工具类,里面都是方法。为了让用户调用的时候方便,不需要实例化对象,这时就可以将该类标记为静态类,此类只能包括静态成员。
      不能包括对象成员。
    5>当这个类需要被实例化的时候。如果这个类中有一个成员是所有对象都需要共享的数据,这时可以讲该类中的这个成员标记为静态的。但是这个类还是一个实例类
    6>由于静态成员会在整个程序退出时,才释放资源,所以尽量避免写静态字段或静态属性,所以最好只写静态方法。
    7>当给一个普通类添加一个静态字段后,系统会默认为该类生成一个静态构造函数,并且静态构造函数不能有访问修饰符,并且不能带参数
    8>静态类的构造函数,只会在第一次使用静态类之前执行,并且只会执行一次,
    9>静态类只能继承自Object,静态类不能继承其他类。
12,sealed关键字。
    1>sealed关键字声明一个密封类,此类将不能被继承。
    2>sealed关键字可以用于禁止重写该方法。


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马