美文网首页
面向对象编程

面向对象编程

作者: 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();

                //声明附加的方法

        }

}

重写就是多态的表现形式

相关文章

  • 面向对象_初识

    目录 面向对象编程介绍 类与对象介绍 私有属性与私有方法 面向对象编程 1. 面向对象编程介绍 面向对象编程:Ob...

  • 谈谈面向对象编程

    何为面向对象编程 面向对象编程简介 面向对象编程(Object-oriented Programming,缩写:O...

  • 面向对象基础

    面向对象编程包括: 面向对象的分析(OOA) 面向对象的设计(OOD) 面向对象的编程实现(OOP) 面向对象思想...

  • python-day14

    一、面向对象编程 编程思想:1.面向对象编程 --> 算法,逻辑2.函数式编程 --> 函数3.面向对象编程 ...

  • PHP全栈学习笔记8

    面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类。 类...

  • PHP全栈学习笔记8

    面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类。 类...

  • 面向对象浅析

    ### 面向对象编程和面向对象编程语言 面向对象编程的英文缩写是 OOP,全称是 Object Oriented ...

  • 2017-08-14

    面向对象编程用对象的思想去写代码,就是面向对象编程-面向过程-面向对象面向对象编程的特点1.抽象 抽取一样的东西...

  • 面向对象编程,类和对象

    面向对象编程 Java是面向对象的一门编程语言,所以余姚使用者具备面向对象编程的思想。 那么,什么是面向对象编程呢...

  • Swift和OC的区别

    一、编程范式 Swift可以面向协议编程、面向函数编程、面向对象编程。 OC主要是面向对象编程。 二、类型安全 S...

网友评论

      本文标题:面向对象编程

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