面向对象
类变量:static。所有的对象共享。jdk7及以前放在静态域,jdk8及以后放在堆。随着类的创建而加载,类的销毁而销毁。 类方法:static。直接通过类名调用,不用创建实例。 静态方法只能访问静态成员,非静态方法都可以访问。 main方法:Public static void main(String[] args)。Public是为了JVM调用。static是为了调用时不需要创建对象。void代表没有返回值。args接收参数。 代码块:又叫初始化块,属于类的成员,类似于方法,将逻辑语句用{}包裹起来。加载类或创建对象时隐式调用。修饰符仅可选static。相当于另外一种形式的构造器。如果多个构造器有相同内容可以抽取出来放在代码块中,实现代码重用。 单例设计模式:保证在整个软件周期中某个类只存在一个对象实例,并且只提供一个取得其对象实例的方法。构造器私有化(防止直接new),类的内部创建对象,向外暴露一个Public static方法getInstance。分为饿汉式和懒汉式。饿汉式是直接创建一个私有静态对象(构造器为私有),提供一个公共的static方法返回对象。懒汉式是先在类中声明一个Private static的对象,在getInstance的时候判断对象是否为空,如果为空才创建对象。 final:修饰类,不能被继承;修饰属性,不能被修改;修饰变量,不能被修改。 抽象类:父类方法中含有abstract方法,这个类就是一个抽象类。抽象类不能被实例化。抽象类不一定有abstract方法,但一旦有abstract方法一定是抽象类。abstract只能修饰类和方法。抽象方法不能有主体。抽象类也可以被抽象类继承,子类如果不是抽象类,需要实现抽象类的所有抽象方法。 抽象类的最佳时机:模板设计模式。相当于给子类定下来了一些模板。 接口interface:更抽象的抽象类,jdk7及以前所有方法都没有方法体,jdk8及以后接口内可以有静态方法,默认方法,可以有方法的具体实现。接口类型可以接受实现了该接口的对象(多态)。接口存在多态传递,即A实现B接口,C继承A,则C耶实现了B接口。 内部类:在其他类的内部嵌套的类。类的五大成员:属性,方法,构造器,代码块,内部类。内部类可访问外部类的私有属性。定义在类的局部位置(方法,代码块)的有局部内部类和匿名内部类,定义在成员位置的有成员内部类和静态内部类。匿名内部类相对比较重要,即在new一个类(或接口)的时候定义参数与类体,没有具体的名字:new class(参数列表){类体}。
枚举类
枚举就是事先在类里面定义好对象。enum 类名{在最开始初始化枚举对象}
注解
注解:@Override:重写父类方法,@Deprecated:已过时,@SupressWarning:抑制警告。 元注解:注解的注解。Retention:注解的作用范围,包括SOURCE(只在源码),CLASS(保留到CLASS文件中),RUNTIME(保存到运行时)。Target:注解的作用对象。Documented:注解是否在javadoc体现。Inherited:子类是否继承父类注解。