查缺补漏(二)Java基本知识

访问修饰符

  • private:仅对本类可见。
  • 无修饰符(默认):对本包可见。
  • protect:对本包以及所有子类可见。
  • public:对所有类可见。
修饰符\可见域 类内部 本包 子类 外部包
private
无修饰符
protect
public

equlas方法的重载

《core java》提供的一种方法

  1. 显式参数命名为 other。
  2. if (this == other) return true;检测是否引用到同一个对象。(似乎可以省略)
  3. if (this == null) return false;防止之后的检测抛出异常。
  4. if (getClass() != other.getClass()) return false;不属于同一个类则不相等。
  5. 比较所有域名。
// field1域是基本类型时直接比较,不是基本类型的话需要调用Objects的静态方法equals。
return field1 == other field1 
			&& Objects.equals(field2, other.field2)
			//如果调用field2.equals(other.filed2),则对于field2是null会抛出异常。

Objects.equals方法的源码如下:
在这里插入图片描述

  • 当自定义了构造函数时,默认构造函数将不会生成。子类的构造函数会默认调用父类的默认构造函数,如果父类没有默认构造函数则报错,子类也可以在构造函数中调用父类的构造函数(super),但是必须放在第一句。
  • 子类重写的方法的可见性不能低于父类方法的可见性(访问修饰符父类是protected,则子类不能是private,可以是public)。
  • 类中的代码块初始化变量域的执行顺序是,(1)变量初始化;(2)变量初始化和代码块的位置决定赋值顺序。
  • 常量也不一定不可以修改,比如依靠本地方法。
  • super和this的区别:super有两种用法:(1)相当于域,代表的是父类的域;(2)调用父类的构造函数; this有两种用法:(1) 相当于当前对象;(2)调用自己的其他构造函数。
  • object的基本方法:如:tostring, equals, hashCode, clone, finalize。

你可能感兴趣的:(java,查缺补漏,学习)