SpringDragon

导航

 

  面向对象是一种编程思想,是一种看待问题,解决问题的思维方式。关键在于找到一个能够帮助解决问题的实体,然后委托这个实体解决问题。

  面向过程是一种看待问题,解决问题的思维方式。关键在于问题是怎样一步步的解决的,然后亲力亲为的解决问题。

  1.类和对象

    类:是一系列具有相同功能和属性的对象的集合;

    对象:能够帮我们解决问题的实体;

  2.类的设计

    class 类名{

      //类名是一个标识符

      //类名需要首字母大写

      //类名需要遵循驼峰命名法

      //在一个类中,允许声明另外的一个类,但是不推荐(内部类)

      //在类中可以定义这个类的每一个对象都具有的属性和功能

      //属性:是以全局变量的形式来写的

      //功能:是以方法的形式来写的

    }

  3.static关键字

    static关键字可以用来修饰类的属性和方法

    被static修饰的属性和方法--静态属性和静态方法

    静态的属性和方法是属于类的,在访问静态属性和方法的时候,需要拿类来访问;

    非静态的属性和方法是属于对象的,在访问非静态的属性和方法的时候,需要拿对象来访问;

    静态属性存在静态区,不在堆上开辟空间;

    静态属性开辟空间的时机:类被加载到内存中的时候开辟空间,程序运行的时候;

    在静态方法中不允许直接访问非静态的属性和方法;

    在非静态方法中,既可以访问静态的属性和方法,也可以访问非静态的属性和方法

  4.this关键字

    表示对当前对象的引用,this不能在静态方法中调用

  5.Sealed关键字

    Sealed使用来修饰类的,表示这个类不能被继承(密封类)

  6.readonly关键字

    readonly修饰的属性,只能在声明的时候和在构造方法中赋值

  7.面向对象的三大特性

    封装:把一段重复执行的代码抽取出来

    继承:如果有多个类具有相同的属性和功能,那么我们可以把相同的部分抽取出来,单独做一个类;

      被抽取出来的这个类:父类(基类)(超类)

      具有相同属性和行为的类:子类(派生类)

      关系:子类继承自父类

    继承的特点:

      --子类拥有父类中所有的属性和方法(构造方法除外)

      --子类在继承了父类所有的属性和方法后,还可以再写自身特有的属性和方法

      --一个类只有一个父类,但是一个类可以有多个子类(单继承)

      --子类的访问权限必须小于等于父类的访问权限

    继承中的内存分析:

      --一个对象在堆中的空间由两部分组成:父类部分和子类部分;

      --在实例化一个对象的时候,优先开辟父类部分空间;

    继承中的构造方法:

      --构造方法不能被继承

      --子类的构造方法在执行前,会默认先调用父类中无参的构造方法

  8.访问权限

    用来约束某个属性或方法,类能够被使用的范围

      关键字        可以约束的范围       可访问的范围    

      public           属性、方法、类        任意位置

      internal       属性、方法、类        仅限当前项目中

      protected      属性、方法          在当前类、子类中

      private        属性、方法          当前类中

      protected internal  属性、方法          当前项目和跨项目的子类中

    --类中的属性和方法的访问权限默认为private

    --类的默认访问权限为internal

  9.(属性)访问器

    是用来访问一个属性的;

    一半访问器的名称为属性的名称(首字母大写)

      访问权限修饰符  要访问的属性的类型  访问器名称{

        //其中,必须要包含set和get中的至少一种

        //如果只有set,表示这个属性访问器只能写

        //如果只有get,表示这个属性访问器只能读

      }

  10.Virtual关键字

    --使用关键字virtual修饰的方法是虚方法

    --虚方法可以被重写,也可以被隐藏

    --非虚方法只能被隐藏,不能被重写

    --C#中,方法默认的都是非虚方法

    方法的隐藏:

      对于父类中的虚方法,子类有自己的实现方式,需要使用new关键字来修饰方法,表示隐藏父类的实现方式

      如果子类隐藏父类的方法,那么子类中有两种方法,父类中的方法和子类中的方法不是同一个方法

    方法的重写:

      对于同一个方法来说,子类和父类有着不同的实现,在子类中重新实现这个方法叫做重写,用override关键字来修饰

      子类中的方法和从父类中继承到的方法其实是同一个方法

  11.多态初步

    对象的向上转型:

      将一个子类类型的对象转成父类类型

      向上转型后的对象,将只能访问父类中公有的属性和方法,不可以访问子类中特有的属性和方法

    对象的向下转型:

      将一个父类类型的对象转成子类类型(向下转型可能会失败),需要强制类型转换

      向下转型后的对象,可以访问子类中特有的属性和方法

posted on 2017-05-03 18:37  chenquanlong  阅读(162)  评论(0编辑  收藏  举报