JAVA 基础

JAVA 基础进阶巩固

类(class):

  • 类:是描述相同事物的共同特征的抽象。
  • 对象:是基于类具体创造的实例。
  • 类名建议使用驼峰写法,一个 java 代码文件中可以定义多个类。但只有 java 文件名的同名类才能被 public 修饰。
  • 类中有且只有五大成分:成员变量,成员方法,构造器,代码块,内部类。
  • 类名 变量=new 构造器 类有一个默认的构造器,当定义了其它构造器时此默认构造器将不存在。

面向对象:

  • 面像对象的三大特征:封装,继承,多态。
  • 封装的作用:提高代码安全性,实现代码组件化。
  • 子类实际上继承了父类的私有成员,只是不能直接访问。
  • 子类实际上并未继承父类的静态成员,只是与父类共享。
  • 方法重写:
    • 子类重写父类方法时,必须保证名称,参数列表与父类重写方法一致。
    • 子类重写方法的返回值类型范围只能等于或小于父类声明的返回值。
    • 子类重写方法的修饰符只能等于或大于父类声明的修饰符。
    • 子类重写方法抛出的异常只能等于或小于父类抛出的异常。
    • 重写方法应加上 @Override 注解。
  • thissuper :
    • this(参数列表) 调用本类构造器。
    • super(参数列表) 调用父类的构造器,一般子类构造器中默认带有 super()
    • thissuper 必须放在构造器的第一行,且它们不能同时出现在一个构造器中。
  • 抽象类与接口:
    • 抽象类用 abstract 修饰,且不能被实例化。抽象类中不一定得有抽象成员。
    • 有抽象方法就一定是抽象类,子类必须重写父类方法否则将此类定义为抽象类。
    • 抽象类是一种思想,接口是一种规范。一个类可实现多个接口。
    • 父类方法与接口默认(default)方法同名时,将执行父类的方法。
    • 当实现多接口时,多个接口中默认方法同名时我们必须重写这个方法。
  • final 关键字:
    • 修饰的类为最终类,不能被继承。修饰的方法为最终方法,不能不重写。
    • 修饰的变量为常量,有且仅能被 赋值一次,类中定义的成员常量可利用构造器赋初值。
    • abstractfinal 为互斥关系不能同时修饰一个成员。
  • 多态变量与方法的访问:
    • 方法:编译看左边,运行看右边。
    • 变量:编译看左边,运行看左边。
    • java 强制类型转换之前建议判断变量的类型: 变量 instanceof 类型
  • 内部类:
    • 静态内部类(static class):与外部类一同加载,可直接访问外部静态成员,其它成员需要外部对象访问。
    • 实例内部类:不能定义静态成员(常量除外),可以访问外部类所有资源。
  • 枚举类:

常用类(API):

Date:

大部分方法方法也废弃,由 Calendar 类代替。

  • 可用构造器:Date()Date(long date)

部分可用方法介绍:

  • getTime : 返回此时间对象自 1970 年 1 月 1 日以来的毫秒数
    • 官方不推荐用 new Date().getTime() 来获取此时的时间毫秒数,推荐使用 System.currentTimeMillis()
  • clone :返回此对象的克隆体对象
  • before(Date) :某 Date 是否本 Date 时间之前
  • after(Date) :某 Date 是否本 Date 时间之后
  • compareTo(Date)equals(Object) :前者比较时间长远返回 int(0||1||-1) ,后者比较时间是否相同。

DateFormat:

基础:

  • 转义字符(字母大写表示取反):
    \d :表示任意一个数字
    \w :表示字母数字或下划线中任意一个
    \s :表示空格,制表符,换行符,等空白字符中的任意一个
  • 量词:
    . :表示一个任意字符(除换行符外),如需包含建议使用 [\s\S]
    {n} :表达式重复n次
    {n,m} :表达式重复n至m次
    {m,} :表达式至少重复m次
    ? :表达式重复0-1次,相当于 {0,1}
    + :表达式至少重复1次,相当于 {1,}
    * :表达式重复任意次,相当与 {0,}