Java面向对象入门

386 阅读3分钟

类的创建

  • 格式
class 类名 {
    0 ~ N 个成员变量(Field)
    0 ~ N 构造器
    0 ~ N 个方法
}
  • 对象实例化过程

  • 成员变量
    • 定义在类的大括号中的变量,称为成员变量。
    • 类的成员变量在类被初始化的时会有默认值。
    • 局部变量没有默认值,必须先初始化。
    • 变量的生命周期
  • 构造方法
    • 作用:先初始化对象成员变量,接着合并初始化代码块内容。
    • 编译器提供了默认无参数构造方法
    • 一旦显示或者重载构造方法,则默认构造方法不再提供。
    • 构造方法中可以通过this()调用其他构造方法。

继承

  • 概述:在原有类的基础上,加以拓展,产生新的子类的过程。
  • 格式:
class Examp extends SuperClass {
    
}
  • 什么时候不用继承
    • 不要为了部分功能使用继承
    • 继承体现的is-a的包含关系,比如香蕉是水果的一种,猫是动物的一种。
  • 继承--成员变量
    • 子类和父类可以有同名同类型成员变量,创建对象时候分配2份空间
    • 访问成员变量是编译期就决定了,类似(uintptr)this+0,所以访问同名成员变量时在编译期已经确定访问哪一块偏移量的内存空间。
  • 继承--构造方法
    • 子类中所有的构造方法默认第一句都会调用父类无参构造方法,如super()
    • 如果父类重载可了构造方法,子类需要显示调用父类构造方法。
  • 继承--成员方法
    • 调用一个类的方法时,先在子类中找,找不到会去父类中找。
    • private方法不可被重写或不算重写。
    • 子类重写父类方法时访问权限不能更高,如果父类没有抛异常,则重写也不能抛出异常。
    • static方法不能被重写,会生成2个方法。

多态

  • 概述:同一个对象,在不同时刻体现出来的不同状态。如:猫是猫,猫也可以是动物。水可以是液体,也可以是冰(固体)。
  • 多态的前提:
    • 要有继承关系,要有方法重写,父类引用指向子类对象。
  • 多态--成员变量
    • 编译看左边,运行也看左边。
  • 多态--构造方法
    • 创建对象时,先执行父类构造方法,再执行子类构造方法。
  • 多态--成员方法
    • 编译看左边,运行看右边
  • Java方法调用原理

抽象类

  • 格式
public abstract classs Examole {
    public abstract void method();
}
  • 抽象类--成员变量
    • 既可以有成员变量,也可以有静态变量。
  • 抽象类--构造方法
    • 有默认构造方法,也可以自定义构造方法。
  • 抽象类--成员方法
    • 既可以有成员方法(有实现),也可以有抽象方法。
    • 一个类如果有任意抽象方法,则类必须为抽象类。
    • 抽象类的抽象方法,子类必须提供实现。

接口

  • 概述:接口更注重于为某些类增加的拓展功能,而抽象类更注重于抽象提升出某些类都有的功能,
  • 格式
public interface Example {
    
}
  • 接口--成员变量
    • 接口中定义的变量均为静态常量,默认增加了(public static final)修饰
  • 接口--构造方法
    • 接口没有/不能定义构造方法,接口是功能的拓展,并没有真实的存在。
  • 接口--成员方法
    • 接口的成员方法默认都是公共抽象方法public abstract

内部类

static修饰符

访问权限修饰符

final修饰符

代码块