导航栏
面向对象的基本概念
类与对象
限制
类方法体有如下限制: (1) 类方法中不能引用对象变量; (2) 类方法中不能调用类的对象方法; (3) 在类方法中不能使用super、this关键字。 (4)类方法不能被覆盖
创建对象方式
创建对象方式
- 使用 new 关键字(最常用): ObjectName obj = new ObjectName();
- 使用反射的Class类的newInstance()方法: ObjectName obj = ObjectName.class.newInstance();
- 使用反射的Constructor类的newInstance()方法: ObjectName obj = ObjectName.class.getConstructor.newInstance();
- 使用对象克隆clone()方法: ObjectName obj = obj.clone();
- 使用反序列化(ObjectInputStream)的readObject()方法: try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(FILE_NAME))) { ObjectName obj = ois.readObject(); }
方法
类方法
限制类方法体有如下限制:
(1) 类方法中不能引用对象变量;
(2) 类方法中不能调用类的对象方法;
(3) 在类方法中不能使用super、this关键字。
(4)类方法不能被覆盖
构造器
初始化
初始化过程:
初始化
-
初始化父类中的静态成员变量和静态代码块 ;
-
初始化子类中的静态成员变量和静态代码块 ;
-
初始化父类的普通成员变量和代码块,再执行父类的构造方法;
-
初始化子类的普通成员变量和代码块,再执行子类的构造方法;
-
不考虑反射机制,一个子类显式调用父类的构造器必须用super关键字。
-
初始化块在构造器执行之前执行,类初始化阶段先执行最顶层父类的静态初始化块,依次向下执行,最后执行当前类的静态初始化块;创建对象时,先调用顶层父类的构造方法,依次向下执行,最后调用本类的构造方法。
匿名对象
成员变量
封装的基本概念
this关键字
权限修饰符
继承的权限修饰符JAVA 子类重写继承的方法时,不可以降低方法的访问权限,子类继承父类的访问修饰符要比父类的更大,也就是更加开放,假如我父类是protected修饰的,其子类只能是protected或者public,绝对不能是friendly(默认的访问范围)或者private,当然使用private就不是继承了。还要注意的是,继承当中子类抛出的异常必须是父类抛出的异常的子异常,或者子类抛出的异常要比父类抛出的异常要少。
static关键字
特点
- 随着类的加载而加载
- 优先于对象存在
- 被所有对象所共享
- 可以直接被类名所调用
使用注意
- 静态代码块优先于主方法,且只执行一次。
- 静态方法只能访问静态成员
- 静态方法中不可以写this,super关键字
- 主函数是静态的
规则
- 执行顺序优先级:静态域,main(),构造代码块,构造方法。
super关键字
方法重写
final关键字
工具类
日期类
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
多态的基本概念
抽象类
- 抽象类不能被实例化,如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。
- 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
- 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。
- 构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。
- 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。
- 抽象类可以定义普通成员变量而接口不可以,但是抽象类和接口都可以定义静态成员变量,只是接口的静态成员变量要用static final public 来修饰。
接口
接口实现
- 实现接口,就要实现接口的所以方法,相当于重写方法,方法的重写需要满足:三同一大一小(方法名、返回值类型、形参相同;访问权限>=重写前;抛出异常<=重写前)
package和import
- java.io提供了全面的IO接口。包括:文件读写、标准设备输出等。
- java.sql 提供使用 Java 编程语言访问并处理存储在数据源中的数据的 API。此 API 包括一个框架,凭借此框架可以动态地安装不同驱动程序来访问不同数据源。
- java.awt是一个软件包,包含用于创建用户界面和绘制图形图像的所有分类。功能:包含用于创建用户界面和绘制图形图像的所有类。
- java.rmi 提供 RMI 包。RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。
- 包含抽象方法的类必须定义为抽象类; 抽象类不一定包含抽象方法,也可以包含普通方法; 抽象类有构造方法,但是不能new一个对象; 抽象类只支持单继承。