Java 面向对象 Java 面向对象

1、简介

理解:物以类聚,把一个类,当做一个对象,而不仅仅是一些变量方法,杂乱无章。

本质:以类的方式组织代码,以对象的组织数据。

2、创建类

public class Person{
}

3、创建对象

对象类型 对象名 = 值
Person person = new Person();

new 关键字

分配内存空间,创建对象,初始化参数,调用构造器等

4、构造方法

public Person(){}
  • 与类名字相同

  • 没有返回值,也不能写void

5、三大特性

5.1、封装

数据隐藏,用盒子装起来,留一个小口,接口

高内聚,低耦合

高内聚:类的内部数据操作细节自己完成,不允许外部干涉。

低耦合:暴露少量方法给外部使用

5.2、继承

理解:儿子继承父亲,并且能拓展,减少代码重复

关键字 : extends,“扩展”

5.2.1、super this

  • this(),本身构造器

  • super(),父类构造器

两者不能同时调用,因为都必须在第一行,遵循构造器择一的原则

5.2.2、方法重写

  • 方法名相同
  • 参数列表相同
  • 修饰符可扩大
  • 抛出异常可缩小

5.2.3、方法重载

  • 方法名称必须相同
  • 参数列表必须不同
  • 方法的返回类型可以相同也可以不相同

5.2.4、instanceof

instanceof 判断父子关系,间接也可以(爷孙)

5.3、多态

5.3.1、什么是多态?

现实中:不同类的对象对同一消息作出不同的响应就叫做多态。

编程中:不同的子类重写同一个父类的同一个方法叫做多态。

举例:上课铃响了,上体育课的去操场,上数学课的去教室。

5.3.2、多态的分类

编译时多态,即方法的重载,从JVM的角度来讲,这是一种静态分派(static dispatch)

运行时多态,即方法的重写,从JVM的角度来讲,这是一种动态分派(dynamic dispatch)

6、抽象类

概述:生来就是被继承的,没有自己的生命

作用:定义抽象方法,或普通方法、可以有构造器

  • 不能 new(实例化)
  • 子类必须实现抽象方法
  • 被abstract关键字修饰

7、接口

接口是一种规范。

接口中有必要的方法,不能自己实现

  • interface 关键字

  • 一个类可以多个接口

  • 不能new(实例化),只能靠子类实现

  • 方法都是public

  • 必须实现接口的全部方法

  • 可以定义常量,不能定义变量,全局静态常量都有(public static final 修饰 )和 初始值

  • 不能有构造