面向对象编程

2021/10/23 22:10:05

本文主要是介绍面向对象编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

面向对象编程(OOP):以类的方式组织代码,以对象的组织(封装)数据

  面向过程:

  • 步骤清晰简单,按部就班往下做
  • 面向过程适合处理一些较为简单的问题

  面向对象:

  • 物以类聚,分类的思维模式,思考问题首先解决问题需要哪些分类,然后对这些分类进行单独思考。最后才对分类下的细节进行面向过程的思索。
  • 面向对象适合处理复杂的问题,适合处理需要多人协作的问题。

  对于描述复杂的事物,为了从宏观上把握、从整体上合理分析,我们需要使用面向对象的思路来分析整个系统,但是具体到微观操作,仍然需要面向过程的思路去处理

抽象

三大特性:

  1、封装 :高内聚,低耦合

    类的内部数据操作细节自己完成,不允许外部干涉;仅暴露少量的方法给外部使用

  2、继承

     继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。

    extends的意思是“扩展”,子类是父类的扩展。

    Java中类只有单继承,没有多继承。(一个子类只能有一个父类,一个父类可以有多个子类)

    在Java中,所有的类都默认直接或间接继承Object类。

    Ctrl + H  :显示继承关系

    super和this对比:

    代表的对象不同:        this:本身调用者这个对象      super:代表父类对象的应用

    前提不同:this没有继承也可以使用    super只能在继承条件下才可以使用

    构造方法不同:this();  本类的构造     super();父类的构造

    super注意点:

      1、super调用父类的构造方法,必须在构造方法的第一个

      2、super必须只能出现在子类的方法或者构造方法中

      3、super和this不能同时调用构造方法

    方法的重写:都是方法的重写,和属性无关

      需要有继承的关系,子类重写父类的方法

      方法名必须相同、参数列表必须相同、修饰符范围可以扩大不可以缩小(public>protected>default>private)、抛出的异常:范围可以被缩小但不能扩大

    父类的引用指向了子类,静态方法的调用只和定义的数据类型有关

    为什么需要重写:

      1.父类的功能子类不一定需要,或者不一定满足Alt+Insert:override

  3、多态:

  注意事项:

    1、多态是方法的多态,属性没有多态

    2、父类和子类,有联系  类型转换异常(ClassCastException)

    3、存在的条件:有继承关系、方法需要重写、父类的引用指向子类对象

方法:同一个方法可以根据发送对象的不同而采用多种不同的行为方式

  修饰符  返回值类型  方法名(){

    //方法体 ;

    return 返回值 ;

}

  instanceof   判断是否为父子类

  system.out.printlf(A instanceof B);    //A和B之间是否存在父子类关系,是则通过,否则报错

  子类转换为父类,可能会丢失自己本来的一些方法。

构造器:

  一个类即使什么都不写,它也会存在一个方法

  类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的,并有以下两个特点:

    1、必须和类名相同

    2、必须没有返回值类型,也不能写void

  作用:

    1、使用new关键字,必须要有构造器(本质就是在调用构造器)

    2、用来初始化值

  注意:定义了有参构造之后,如果想使用无参构造,需要显示地定义一个无参构造

  alt + Insert :自动生成一个构造器

 



这篇关于面向对象编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程