面向对象

面向对象(Object-Oriented Programming)

面向对象思想:物以类聚,分类的思维模式

面向过程思想:线性

宏观:面向对象(OOP,抽象的,相当于框架)

微观:面向过程(具体的,相当于流程)

一、本质:以类的方式组织代码,以对象的组织(封装)数据。

二、三大特征:

  1. 封装:将数据封装,只对外提供一个接口。
  2. 继承:子类继承父类。
  3. 多态
  • 认识论角度考虑:先有对象(具体的事物)后有类(抽象的,对对象的抽象)
  • 代码运行角度考虑:先有类后有对象,类是对象的模版,对象是类的实例

三、静态和非静态

  1. 调用非静态方法(另一个类),需要先实例化类。
  2. static是和类一起加载的。

四、类与对象的关系

  1. 是一种抽象的数据类型,对某一类事物整体描述/定义。
  2. 对象是抽象概念的具体实例。

五、构造器

  1. 类中的构造器也称为构造方法,是进行创建对象的时候必须要调用的。

  2. 特点:

    • 必须和类的名字相同
    • 必须无返回类型,也不能写void
  3. 作用:

    • new本质是调用构造方法
    • 初始化对象的值

注:写一个类的时候,默认有无参构造;一旦定义了有参构造,则无参构造必须写出来。

Alt+insert:快速生成构造方法。

this:表示当前类。

六、封装

  1. 高内聚,低耦合

    • 高内聚就是类的内部数据操作细节自己完成,不允许外部干涉。
    • 低耦合:仅暴露少量的方法给外部使用。
  2. 通常操作接口来访问

  3. 属性私有,调用用get,set

  4. 提高程序的安全性

七、继承

  1. extends,子类是父类的扩展。
  2. Java中类只有单继承,无多继承。
  3. 子类继承父类,就会拥有父类的所有非私有方法。

Ctrl+H:显示层次结构。

注:Java中所有的类默认继承Object类。

八、super、this

  1. 调用父类构造器是必须要在子类构造器的第一行。
  2. 默认调用父类的无参构造器(隐藏代码super())
  3. super只能出现在子类的方法或构造方法中。
  4. super和this不能同时调用构造方法。
  5. this():本类的构造。

九、重写(@Override)

  1. 重写都是方法的重写,和属性无关。
  2. 静态方法的情况下,方法的调用只和定义的数据类型有关(左边的);否则,与定义类型无关。
  3. 有继承关系。
  4. 方法名必须相同,参数列表必须相同。
  5. 修饰符:范围可扩大。
  6. 抛出的异常:范围可缩小。
  7. 不能重写的情况:
    • static方法属于类,不属于实例
    • final常量
    • private方法

十、多态

  1. 多态是指方法的多态,属性没有多态。

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

  3. 存在条件:

    • 继承关系

    • 方法需重写

    • 父类引用指向子类对象

      Father f1=new Son()
      此时f1调用的方法与Father相关,但被调用的方法若被重写,则结果会显示子类中重写的方法
      
  4. 含义:即同一方法可以根据发送对象的不同而采用多种不同的行为方式。

  5. 一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多。

instanceof:(类型转换)引用类型,判断一个对象是什么类型。

十一、抽象类

  1. abstract,抽象方法,只有方法名字,没有方法实现。
  2. 不能new这个抽象类,只能靠子类去实现它;约束!
  3. 抽象类中可以写普通方法。
  4. 抽象方法必须在抽象类中。
  5. 抽象的抽象:约束!
  6. 抽象类存在构造器,不能直接new。
  7. 存在的意义:抽象出来,提高开发效率。

十二、接口(interface)

  1. 接口:只有规范(抽象方法),自己无法写方法~专业的约束! 约束和实现分离:面向接口编程~
  2. 本质:就是定义规则,让大家遵守。
  3. 接口就是定义一些方法,让不同的人实现。
  4. 接口类默认public abstract
  5. 接口类中定义的方法默认public static final
  6. 接口不能被实例化,其中无构造方法。
  7. implements可以实现多个接口。实现接口时必须重写接口中的方法

Ctrl+Alt+T:包围方法快捷键

posted @ 2025-01-26 23:52  Estrella*luo  阅读(21)  评论(0)    收藏  举报