Java review Day 03

ReviewDay3

JAR 文件

创建jar文件

  • jar options file1 file2

    jar cvf jarFileName file1 file2

    jar cvf CalculatorClasses.jar *.class icon.gif

文档注释

生成注释

  • 类注释

    import 语句之后, 类定义之前

  • 方法注释

    方法注释放在所描述方法之前

  • 字段注释

    只需要对公共字段(通常是静态常量)

  • 通用注释

    @author @version 等

  • 包注释

    不同于上面的注释直接放于源文件,包注释有两种选择

    1. 提供一个 package-info.java
    2. 提供一个 package.html
  • 抽取注释

    javadoc -d docDirectory packageName1 packageName2
    -d 指定html都将放置于的目录
    

继承

访问修饰符

  • public 对外公开
  • protected 对子类和同一个包中的类公开
  • 默认 没有修饰符,向同一个包的类公开
  • private 只有类本身可以访问,不对外公开
    访问修饰符

extends

  • 父类,超类, 基类
  • 子类,派生类,孩子类

方法重写(覆盖方法)

  • @override
  • 子类的方法和父类的方法名称、返回类型、参数一样
  • 子类方法不能缩小父类方法的访问权限 public>protected>default>private

super关键字

  • 访问父类private属性与方法
  • 访问父类构造器 super(参数列表)

    注意: 只能放在构造器的第一句,只能出现一句

  • super 和 this 的比较
    superAndThis

多态

  • 方法的多态

    方法的重写和重载体现多态

  • 对象的多态
    • 多态向上转型 可以调用父类中的所有成员(权限), 不能调用子类特有成员

      子类对象赋给父类引用(父类引用指向了子类的对象)

      父类类型 引用民 = new 子类类型();

    • 多态向下转型 只能强转父类的引用,而不是对象

      子类类型 引用名 = (子类类型) 父类引用

    • 编译类型与运行类型

      编译类型看 “=” 左边, 运行类型看 “=” 右边

Object类:所有类的父类

  • equals 方法

    • “==”: 如果判断基本类型,判断值是否相等;如果判断引用类型,判断地址是否相等
    • equals 方法是object的方法(默认判断地址‘==’),子类往往重写用于判断内容是否相等
    public boolean equals(Object obj) {
      if (this == obj) { return true; }
      if (obj == null) { return false; }
      if (this.getClass != obj.getClass) { return false; }
      //再向下转型
      ...
      //使用 == 判断基本类型字段(属性),使用 Objects.equals() 比较对象字段(引用类型)
      return ...
    }
    
  • hashCode() 方法

    • Object类的默认hashCode方法是从对象的存储地址得出散列码
    • 如果重新定义了equals方法,应重新定义hashCode方法 Objects.hash()
  • toString 方法

    • System.out.println(x) 会调用x.toString()
    • 数组继承了object的toString方法

      调用静态方法打印数组 Arrays.toString(new int[] {1,2,3})

      要打印多维数组,需要调用 Arrays.deepToString 方法

抽象类

  • abstract 关键字

    • abstract 修饰方法,表示这是抽象方法,没有方法体,需要子类实现

      访问修饰符 abstract 返回类型 方法名(参数列表); //没有方法体

    • 一旦类包含了abstract方法,该类必须声明为abstract类
    • 抽象类不一定要包含abstract方法
    • 一个类继承了抽象类,则必须实现抽象类的所有抽象方法,除非该类也声明为abstract类
    • 抽象类不能用private、final、static来修饰(与重写相违背)
  • 模板设计模式

abstract public class Template { //抽象类-模板设计模式
  public abstract void job();//抽象方法

  public void calculateTime() {//实现方法,调用 job 方法
    //得到开始的时间
    long start = System.currentTimeMillis();
    job(); //动态绑定机制
    //得的结束的时间
    long end = System.currentTimeMillis();
    System.out.println("任务执行时间 " + (end - start));
  }
}

public class AA extends Template { 
    //计算任务
    //1+....+ 800000
    @Override
    public void job() { //实现 Template 的抽象方法 job
        long num = 0;
        for (long i = 1; i <= 800000; i++) {
        num += i;
    }
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值