美文网首页
面向对象编程

面向对象编程

作者: TALY | 来源:发表于2017-12-08 13:46 被阅读0次

    构造方法和析构方法


    构造方法


    类的构造方法

    Woman类后面的“()”;其实指的就是构造方法。

    只要你想要创建类或结构的实例,必须调用它的构

    造方法。

    构造方法负责对类里面的字段进行初始化。

    1.构造方法必须类重名;

    2.构造方法没有返回值,但可以有参数;

    3.构造方法可以有多个重载;

    4.不带参数的构造方法称为默认构造;

    1.构造方法的本质是一个构造器,是为了类的实例化而产生;

    2.构造方法是一种特殊的方法,它没有返回值,它必须与类重名,它只能在初始化的时候被系统自动执行,外部不能调用;

    3.构造方法可以不显示的写,系统会默认的为你的类添加一个无参构造方法;

    4.如果讲构造函数设为private,则不能被外部实例化;

    5.如果类里面有带有参数的构造方法,想调默认构造时,必须把默认构造显示的写出来;

    结构体的构造方法

    public struct position{

        public int x;

        public int y;

    //结构体的自定义构造

    public position (int x , int y){

        this.x=x;

        this.y=y;

        }

    }

    默认构造方法不用写默认构造显示,也有默认构造。

    析构方法

    析构方法用于析构类的实例。

    构造方法用户实例化,分配内存空间,而析构方法正好与它相反,用于释放内存空间。

    一般在某个功能结束的时候,做某些事情。

    class  Car

    {

                            ~Car( )        // destructor 写在类名的前面

            {

                                // cleanup statements...

            }

    }

    1.不能在结构中定义析构方法,只能对类使用析构方法。

    2.一个类只能有一个析构方法。

    3.无法继承或重载析构方法。

    4.无法调用析构方法。

    5.它们是被自动调用的。

    6.析构方法既没有修饰符,也没有参数。

    面向对象

    面向对象是把构成问题事务分解成各个对象,创建对象后用

    对象调用各自方法以达到解决问题的目的;

    面向对象特性:封装、继承、多态

    OOP(面向对象编程)达到软件工程的三个主要目标:

    重用性、灵活性、扩展性

    封装

    封装是实现面向对象程序设计的第一步,封装就是将数据或函数等集合在一个个的单元中(我们称之为类)。

    封装的意义在于保护或者防止代码(数据)被我们无意中破坏。

    封装就是对类成员的再次包装,这样写更规范。

    继承

    继承用于创建可重用、扩展和修改在其他类中定义的行为的新类。 其成员被继承的类称为“基类”,继承这些成员的类称“派生类”。派生类只能有一个直接基类。 但是,继承是可传递的。 如果 ClassB 派生出 ClassC,ClassA 派生出ClassB,则 ClassC 会继承 ClassB 和 ClassA 中声明的成员。

    由继承的关系我们知道,基类有的,派生类都有;

    派生类有的,基类可能没有。

    即:派生类可以赋值给基类,而基类不能赋值给派生类。

    指定基类的方法

    通过在派生的类名后面追加冒号和基类名称,可以指定基类。

    1.派生类获得基类的所有方法、字段、属性和事件。

    2.继承具有传递性。

    3.派生类可以赋值给基类,但是基类不能赋值给派生类。

    多数情况 对象总是写在子类里面,不会再基类里创建太多东西。

    派生类写构造需要把基类的内容也补充进去

    例子:public classname(int a,int x,int y,long z): base ( x,y,z)//x,y,z是基类的内容。

    this a=a;

    里氏转换

    转换原则一:子类对象可以直接赋值给父类对象。

    作用:消除子类间的差异。把其类型转换为统一的数据类型,这样就可以写出一套通用的代码,这样即可以最大限度的重用代码,同时也提高了程序开发的效率;

    转换原则二:父类转换成子类,这样就可以调用子类里面的公有成员了。

    is as关键字

     多态

    当派生类从基类继承时,它会获得基类的所有方法、字段、 属性和事件。 派生类可以选择:

     • 继承最接近的基类方法而不重写它

     • 重写基类中的虚拟成员。 

    • 定义隐藏基类实现的成员的新非虚实现 

    方法替换

    当派生类继承基类后,可以定义隐藏基类实现的成员的新非虚实现。通常,我们称这为“方法替换”。

    关键字:new

    虚函数 重写

    相对比于方法替换

    关键字 virtual修饰方法

    override重写子类里的方法


    当采用虚方法重写后,子类方法不会再含有父类方法的特征,如果需要调用原本父类的特征,就需要一个新的关键字

    base 

    用法:重写时

    pubic class A{

                public virtual void Aff{


                }

    }



    public class A:B

    {

            public override void Add(){

                    base.Aff();

                    //声明附加的方法

            }

    }

    重写就是多态的表现形式

    相关文章

      网友评论

          本文标题:面向对象编程

          本文链接:https://www.haomeiwen.com/subject/ymndixtx.html