zoukankan      html  css  js  c++  java
  • 面向对象(5)

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

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

      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.多态初步

        对象的向上转型:

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

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

        对象的向下转型:

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

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

  • 相关阅读:
    多线程编程(二)--进程&&线程
    hdu2222 Keywords Search
    sqlserver 运行正則表達式,调用c# 函数、代码
    【Nutch2.2.1基础教程之2.2】集成Nutch/Hbase/Solr构建搜索引擎之二:内容分析
    ios学习之block初探
    PHP GD 生成图片验证码+session获取储存验证码
    ps 命令详解
    python --subprocess
    python --存储对象
    python --字符串格式化
  • 原文地址:https://www.cnblogs.com/xingyunge/p/6803357.html
Copyright © 2011-2022 走看看