吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 521|回复: 0
收起左侧

[学习记录] Java基础知识点总结

[复制链接]
Kai1222 发表于 2022-4-7 17:38
本帖最后由 Kai1222 于 2022-4-7 17:42 编辑

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 的比较
    super and this

多态

  • 方法的多态
    > 方法的重写和重载体现多态
  • 对象的多态
    • 多态向上转型 可以调用父类中的所有成员(权限), 不能调用子类特有成员

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

      父类类型 引用民 = 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;
    }
  }

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 13:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表