类的五大成分:成员变量、构造器、方法、代码块、内部类

变量

不加static修饰:实例变量,属于对象

加static修饰:类变量,属于类,被所有对象共享

方法

不加static修饰:实例方法,属于对象,对象名调用。

加static修饰:类方法,属于类,类名调用。无须创建对象即可调用,节省内存

main方法属于类方法

工具类

相当于C++全局函数

工具类的方法无须创建对象即可调用,提高了代码复用。

由于不需要创建对象,建议将构造器私有化

代码块

静态代码块

类加载时自动执行。

实例代码块

每次加载对象时,在构造器前执行。

单例设计模式

饿汉式

public class A {
    private static A a = new A();
 
    private A() {
 
    }
 
    public static A getObject() {
        return a;
    }
}

懒汉式

public class B {
    private static B b;
 
    private B() {
 
    }
 
    public static B getObject() {
        if (b == null) {
            b = new B();
        }
        return b;
    }
}

继承的权限修饰符:

private、public、protected

仅支持单继承,不支持多继承,但支持多层继承。

方法重写:添加@override注解,访问权限大于等于父类被重写的方法的权限

访问其他成员:默认按照就近原则,可以使用super关键字优先选择父类,super.method()

子类构造器:先调用父类构造器(默认调用super(),如果没有无参构造,手动调用super(…)),再执行自己。

在同一个类中,this(…)调用其他构造器

多态

对象多态、行为多态

使用父类类型的形参,去接受一切子类对象,扩展性更强,更便利。

父类 变量名 = new 子类();

子类 变量名 = (子类) 父类变量;

final

修饰类:不能继承。修饰方法:不能重写。修饰变量:赋值一次(常量)

abstract

接口

interface、implements