Java基础04-面向对象

什么是面向对象

  1. 本质:以类的方式组织代码,以对象的组织封装数据(每一个具体的对象有自己特有的数据)
  2. 三大特性:
    1. 封装
    2. 继承
    3. 多态

类与对象的关系

  1. 类是一种抽象的数据类型,他是对某一类事物整体的描述/定义,但是并不能代表一个具体的事物
    1. 手机,动物 这都是一类事物
    2. Person类,这些类都是用来描述/定义某一类具体的事物应该具备的特点和行为
  2. 对象是抽象概念的具体实例(Person person=new Person();)person就是一个具体的实例
    1. 张三是一个Person的具体实例
    2. 能够体现出特点,展现出功能的是一个具体的实例(对象),不是一个抽象的概念(类)
  3. 先有对象还是先有类?
    1. 类是对象的抽象,是对象的模板

创建与初始化对象

  1. 使用new关键字创建对象
    1. 使用new关键字创建的时候,会进行内存空间的分配,除此之外,还会给创建好的对象,进行默认的初始化,以及对类中构造器的调用
  2. 构造器:
    1. 类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的
    2. 构造器的特点:
      1. 必须和类名相同
      2. 必须没有返回值类型,也不能使用void
      3. 有两种类型:无参构造和有参构造
    3. 无参构造器是一个类默认就有的(隐式存在)
    4. 若定义了有参构造器,无参构造器就需要显示定义
    5. 作用:
      1. new 的本质是在调用构造方法
      2. 初始化对象的值
    6. Java基础04-面向对象

封装

  1. 程序设计追求“高内聚,低耦合”
    1. 高内聚:类的内部数据操作都由自己完成
    2. 低耦合:对外开放少量的接口使用
  2. 封装(数据的隐藏)
    1. 禁止直接访问对象的数据的实际表示,应该通过接口进行访问,称为信息隐藏(设置属性私有通过get/set方法访问)
  3. 封装的意义:
    1. 提高程序的安全性,保护数据
    2. 隐藏代码的实现细节
    3. 统一接口
    4. 增加系统的可维护性

继承

  1. 继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模(Student类和Teacher类都可以继承Person类)
  2. extends的意思是“扩展”,子类是父类的扩展
  3. Java中只有单继承,没有多继承
  4. 继承是类和类之间的一种关系,除此之外,类和类之间的关系还有依赖,组合,聚合等。
  5. 继承关系的两个类,一个为子类(派生类)一个为父类(基类)。子类继承父类,使用关键字extends来表示。
  6. object类(超级父类)
    1. Java中所有的类都默认继承object类
  7. super
    1. 用于访问父类的属性,方法(Super.name="";)
    2. Java基础04-面向对象
    3. 注意点:
      1. super调用父类的构造方法,必须在构造方法的第一个
      2. super必须只能出现在子类的方法或者构造方法中
      3. super和this不能同时在构造方法中调用构造方法
    4. this与super
      1. 代表的对象不同
        1. this:本身调用者这个对象
        2. super:代表父类对象的应用
      2. 使用的前提条件
        1. this:没有继承也可以使用
        2. super:只有在继承条件下才可以使用
      3. 构造方法
        1. this():本类的构造方法
        2. super():父类的构造方法
  8. 方法的重写
    1. 方法的重写只对非静态方法有作用
    2. 方法的重写对私有修饰的方法没有作用
    3. 重写特点:
      1. 方法名必须相同
      2. 参数列表必须相同
      3. 修饰符:范围可以扩大但是不能缩小(public>protected>default>private)
      4. 抛出异常:异常的范围可以被缩小不能被扩大(Exception>...)
    4. 为什么要进行父类方法的重写?
      1. 父类的方法功能不一定满足子类
    5. 子类重写父类的方法后,方法被调用时执行子类的方法
  9. 子类不能继承父类的private修饰的属性和方法,“子类可以继承父类所有的方法和属性”

多态

  1. 作用:动态编译,增强可扩展性
  2. 定义:同一方法可以根据发送对象的不同而采用多种不同的行为方式
  3. 一个对象的实际类型是确定的,但可以指向的引用类型有很多
    1. 例子:(环境:A extends B;实现:A a = new A();B b = new A();)
    2. 解释:这里的A()是一个实际的对象类型,A 和 B是引用类型
  4. 多态存在的条件
    1. 有继承关系
    2. 子类重写父类的方法
    3. 父类引用指向子类对象
  5. 注意点:
    1. 方法具有多态性,属性不具有
    2. 父类型的引用可以指向子类,但是不能调用子类独有的方法(若要调用需要进行强转,有时候会出现类型转换异常),例如:((Student)a).run();
  6. instanceof(引用类型之间的类型转换)

什么是引用类型?

Java基础04-面向对象

上一篇:gitee代码回滚


下一篇:实验1:SDN拓扑实践