zoukankan      html  css  js  c++  java
  • ●类

    面向过程

    面向对象

    对象:一切皆为对象。一个人、一本书、一支笔……都是一个对象。

    类(class)是既包括数据又包括作用于数据的一组操作的封装体。就是对有共同点的某类对象抽象出的模型。

      对象→(抽象)→类

      类→(实例)→对象

    类一般包含:变量(成员变量)、函数(成员函数、成员方法)

    类的特性:封装性、继承性、多态性和抽象性。

      封装性:

        1、不同类的变量属于各自的对象

        2、不同对象的成员变量只属于各自的对象

        3、对象中的变量需要通过各自的函数操作,比较安全

      继承性:

        子类可以从父类继承父类的成员变量和成员方法。

      多态性:

        某类不同对象在执行的时候,表现出来的形态多样性,这种现象成为多态性。

    1、声明类

      类声明

      {

        成员变量的声明;

        成员方法的声明及实现;

      }

      [修饰符(例:public)] class 类<泛型> [:父类][:接口列表]

    2、声明成员变量和成员方法

      [修饰符] 返回值类型 方法([参数列表])

      {

        语句序列;

        [return [返回值]];

      }

    3、成员方法重载

      声明对象

        类   对象

      创建实例

        对象= new 类的构造方法([参数列表])

      引用对象的成员变量和调用对象方法

        对象.成员变量

        对象.成员方法([参数列表])

    构造函数:特殊的成员函数。如果不写构造函数,系统会自动生成一个默认的构造函数。

      1、写法特殊

        无返回值,函数名只能与类名相同。

      2、执行特殊

        类在实例化的时候自动执行。构造函数是最早执行的成员函数。构造函数是用来生成对象的函数。

    主要作用:对象实例化生成时,做初始化工作。

    1.声明及调用构造方法

      public class MyDate

      {

          public MyDate(int y, int m, int d)      //声明构造方法

          {     //构造方法与类同名,构造方法返回该类的一个实例

              year = y;

              month = m;

              day = d;

          }

      }

      MyDate d = new MyDate(2009,7,18);

    2.默认构造方法

      public MyDate()

    重载:函数名相同,参数不同(个数,类型)的函数就形成了重载。

    重载只与函数名、形参有关,与返回值无关。

    this

      指对象本身。

      访问本类的成员变量和成员方法

        this.成员变量

        this.成员方法([参数列表])

      this调用当前对象的其他构造函数。public Bird(string name,string color):this(name)

    is

      对象 is 类;

      如果成立,返回TRUE;否则返回FALSE。

    partial  写在class左边,拆分类,可以继续用partial对该类进行拓展。

     

    类中的方法:

             构造方法

             属性方法:取值赋值

             行为方法:运算

     

    类中成员的访问权限

     

     

    属性方法

             右键变量→重构→封装字段→选中“全部”……确定

     

    public int R

    {

             get{return R;}

             set{R = value;}    //value就是等号右边的值。{}中可以用if语句

    }

      1、属性是用来为成员变量赋值和取值的。它有替代属性方法的作用。

      2、属性定义的时候,属性名后没有小括号。

      3、属性都是public

      4、属性中只能包括两部分:get,set。代码只能写在这两部分的{}中。

      5、如果属性中只有set或get,则为只写属性或只读属性;两部分都有,则为可读写属性。

     

    静态

      静态成员包括:静态变量、静态属性、静态方法。

      静态成员属于类,不属于实例。

      静态变量在内存中只保存一份,而实例变量则是每个对象都保存一份。

      例:将一个学校看成一个类,那么校医属于静态成员,班主任属于实例成员。静态成员(如:校医)的改变对于实例都有影响,而实例成员(如:班主任)的改变对于其他实例成员没有影响。

     

    public class MyDate

    {

        private int year,month,day;          //实例成员变量

        private static int thisYear;             //静态成员变量

        static                                       //静态成员变量初始化

        {

            thisYear=2009;

        }

         public static int getThisYear()     //静态成员方法

        {

             return thisYear;                      //访问静态成员变量

         }

    }

     

    在C#中:

      在当前类的{}之外,静态成员,只能用类名来调用,不能用实例名来调用。而实例成员只能用实例对象来调用。

      在当前类的{}之内,静态方法中之恩个直接调用静态成员。实例方法可以调用非静态和静态成员。

     

     浅拷贝、深拷贝

      浅拷贝:只拷贝栈空间中的地址

      深拷贝:拷贝堆空间中的数据

     

    继承

      1、public,protected修改的成员可以被继承到子类去。private修饰的成员,无法被子类继承。

      2、单继承:一个父类可以派生多个子类,每个子类只能有一个父类。

      3、实例化子类的时候,会先执行父类的构造函数,再执行子类的构造函数。

      4、base关键字,用来调用父类的相关成员。base.xxx()调用父类的成员方法;base(…)调用父类的构造函数。

      5、如果父类中有且只有一个带参的构造函数,则其子类必须要有带相应参数的构造函数,并且通过base()把参数传给父类。

     

  • 相关阅读:
    ceph(4)--Ceph 的基础数据结构
    ceph(3)--Ceph 物理和逻辑结构
    ceph(2)--Ceph RBD 接口和工具
    ceph(1)--安装和部署
    Ceph中文文档
    Linux系统介绍(五)常用命令
    Linux系统介绍(四)IO重定向与管道
    剑指offer:跳台阶
    剑指offer:斐波那契数列
    剑指offer:旋转数组的最小数字
  • 原文地址:https://www.cnblogs.com/phantom-k/p/4018072.html
Copyright © 2011-2022 走看看