zoukankan      html  css  js  c++  java
  • 面向对象基础进阶02

    一:面向对象的三大特征

    封装,继承,多态

    封装

    1:封装的概念及作用

         *通过使用private和public修饰符来修饰类的成员(字段,属性,方法等)这样有效的使私有数据和方法不被外界访问,这种使用特性就是封装;

         *一个属性,一个方法也是封装,类是对属性和方法的封装;

         *封装是面向对象中的一个重要特征,面向对象的三个重要特征为:封装,继承,多态;

         *作用<模块化和数据隐藏>

    2:类是模版,确定的对象将会拥有的特征(属性)和行为(方法);任何对象将会属于一个类中;

    3:对象是以类为模版而创建的,是类的实例化,具体化;

    4:面向对象的好处

          *封装使得开发人员更加关注自己的需求;

          *一个类定义之后可以多次使用,避免重复赋值;

    5:类试图 对于类的总体结构的展示;类(右键-----查看类图)

    6:类的祖先(object)

          *Object类是所有类的父类(祖先类),因此任何一个类都可以转换成object类型;

          *可以将任何类型的值赋予object类型的变量;

    装箱:将值类型的变量转换为<object>对象的过程叫做装箱;

    拆箱:将<object>对象类型的变量转换为值类型的过程叫做拆箱;

    wps1FA0.tmp

    继承

         *一个类继承另一个类,第一个类叫做子类,另一个叫做父类,子类继承父类,即子类就拥有了父类的属性和方法,可以重写<override>父类的方法和属性,同时子类也可以编辑自己的属性和方法。<Object类>

         *子类不能继承父类的私有成员

         *子类只能有一个父类,但是作为父类的类可以是多个子类的父类。

    1:关键字Virtual

       Virtual关键字用于指定属性或方法在派生类中重写. 默认情况下,派生类从其基类继承属性和方法,如果继承的属性或方法需要在派生类中有不同的行为,则可以重写它,即可以在派生类中定义该属性或方法的新实现,这时在基类中该属性或方法必须用virtual关键字修饰.virtual关键字用于指定属性或方法时可以在派生类中重写.具有virtual关键字的方法或属性被称作虚拟成员.
       在基类(父类)中用virtual修饰符声明一个虚方法,然后在在派生类(子类)中用override修饰符覆盖基类虚方法。表明是对基类的虚方法重载。这种优势在于它可以在程序运行时再决定调用哪一个方法,这就是所谓的“运行时多态”,或者称动态绑定。

    class A                                                   
    {                                                         
        public virtual void F(){}                             
    }                                                         
                                                              
    class B:A                                                 
    {                                                         
        public override void F(){}                            
    }

    多态  <编译时多态,运行时多态>

       *和重载的定义一样,可以这样说重载也多态的一种。

       *定义类的继承发生在多个类之间,而类的多态发生在同一个类上,在一个类中可以定义多个同名方法,只要确定了它们的参数个数和类型不同。

    理解下面这段话就了解了多态.

    wps91C9.tmp

    覆盖: 就是子类有和父类重名的方法和属性,此时父类的方法就被子类的覆盖掉了。相当于修改父类的方法。

    二:对象数据类型与对象销毁

    1:基本数据类型{int,double,bool.....},值类型;

      引用数据类型{数组,对象,string},对象类型;

    2: *引用类型变量传递时,将自己的内存地址赋给新变量{指针};

       *值类型变量传递时,将自己复制一份;

    这里值类型保存在栈里面,而引用类型,一部分保存在堆里面,一部分保存在栈里面.

    3:ref关键字

       可以将值类型变量按照引用方式传递;{实际开发中不建议经常使用ref关键字}

       引用传参,必须进行初始化,

    4:out关键字

       可以让方法有多个返回值,侧重输出,引用传参,可以不进行初始化,但是必须在方法里面进行赋值。<return多个返回值的方法里面>

    5: Params:当需要多个参数时,才会用到。数组类型参数。

    wps938F.tmp

    6:对象的销毁

      垃圾回收机制(GC)

       *.net虚拟机特有的机制,自动运行,并检查对象的状态;

       *发现对象不被引用时,会将其释放所占空间;

       *在实际的应用中我们可以自己调用GC来帮助我们清理一些我们不需要的变量和字段。

    三:非泛型集合

    1:ArrayList是一个长度可变的“数组”,通常成为集合,类似于数组的结构,其中最大的特点是:可以自由的扩展元素个数;

    2:ArrayList集合的特点

       *元素都被转换成object类型

       *使用Add方法可以随意添加元素,无个数限制;

       *使用Remove方法可以删除指定元素,元素删除后索引自动调整;

       *通过索引访问元素,元素取出的时候需要强制转换成特定数据类型;

    3:Arraylist的具体插入,删除代码;

    wps98CB.tmp

    4:ICollection<T>泛型的知识

       * IList<T>继承自ICollection<T>,ICollection<T>继承自IEnumerable<T>,IEnumerable<T>继承自IEnumerable

    所以List<T>实现了IList<T>接口,也就是实现了IEnumerable接口
       * IEnumerable<T>是IEnumerable接口的泛型版本。使用泛型,不会强行对值类型进行装箱和拆箱,或引用类型进行向下强制类型转换,使程序性能提高。泛型定义的变量有类型限制,所以泛型提高了程序的类型安全。  泛型还提高了代码的重用性。

    四:泛型集合list<T>与Dictionary的使用

    1:List<T>使用前的准备工作

      *引入命名空间:System.Collections.Generic

      *确定存储类型:List<Student> student=new List<student>();

    常用方法

      *添加元素:Add(<T>);

      *删除元素:RemoveAt(索引);

      *元素个数:count

    遍历集合

       Foreach(Student stu in students)
    
       {
    
       Console.writeline(stu.studentName);
    
       }

    2:泛型集合的最大特征:严格约束集合内的元素类型;

    3:集合初始化器

      创建集合对象时直接初始化,非常类似与数组;

    4:Dictionary<k,v>通常称为字典

       *<k,v>约束集合中的元素类型

       *编译时检查类型约束;

       *无需装箱拆箱操作

       *与哈希表操作类视

    wps70F1.tmp

    wps7102.tmp

     

  • 相关阅读:
    启明星门户网站Portal发布V4.5,并兼论部分功能的实现
    修改SQL数据库dbo所有者
    iphone& android 开发指南 http://mobile.tutsplus.com
    启明星会议室预定系统V5.0.0.0版本说明
    启明星Portal企业内部网站V4.3版 附演示地址 http://demo.dotnetcms.org
    在winform程序里实现最小化隐藏到windows右下角
    【门户网站】启明星Portal系统里,关于天气预报调用的说明
    获取客户端经纬度坐标
    修改表名或者列名SQL
    ER图
  • 原文地址:https://www.cnblogs.com/netxiaohui/p/4903562.html
Copyright © 2011-2022 走看看