JavaSE基础知识(5)—面向对象(Object类)

时间:2023-03-09 16:21:24
JavaSE基础知识(5)—面向对象(Object类)

一、包

java.lang包,属于java中的核心包,系统默认导入的,不用手动导入
该包中的类:Object、System、String、Integer等

1、包的好处

①分类管理java文件,查找和管理方便
②解决了同一个项目中同名类的问题

2、包的创建

①新建class的同时指定包
②新建package
③强制添加包的声明

3、包的命名

遵循标识符的命名规则:包含数字、字母、下划线、$符号,不能用数字开头,不能是关键字,标识符和标识符之间使用小圆点分割
命名规范:遵循域名倒置的写法
  com.公司名.业务模块名
常见的业务模块名:view视图、domain/bean/pojo实体类、service业务

4、包的声明和导入

(1)声明
  语法:package 包名;
  位置:放在class的最上面
  个数:至多有一个
(2)导入
  语法:import 包名.类名;或import 包名.*;
  位置:package——import——class
  个数:可以有多个,没有顺序要求

二、Object类说明

Object类是java中的根类,所有对象都继承了Object类,具备该类的方法

三、创建Object对象

new Object();
注意:一般不需创建Object本类对象,因为可以通过创建子类对象,调用里面的方法

四、常见方法 ★

1、equals

(1)说明:判断两个对象是否相等
(2)原型:
  public boolean equals(Object obj){
    return this==obj;
  }

(3)==和equals的对比

== 如果判断引用类型,比较的是地址;如果判断基本类型,比较的是值。注意:左右的操作数的类型必须一致或兼容
equals 只能判断引用类型,默认比较的是地址,子类可以重写该方法用于比较内容

(4)如何重写equals ★

public boolean equals(Object o){
  if(this == o)
    return true;
  if(!(o instanceof XX))
    return false;
  XX t = (XX)o;
  return this.name.equals(t.name);//返回具体的比较逻辑
}

2、toString

(1)说明:返回对象的字符串形式
(2)原型:
  public String toString(){
    return getClass().getName()+'@'+Integer.toHexString(hashCode());
  }
(3)特点:默认返回的字符串不好理解,子类往往重写该方法,用于返回对象的属性信息
(4)好处:打印方法和拼接字符串时,将默认调用对象的toString方法

3、hashCode

(1)说明:返回对象的哈希码值
(2)好处:一般用于提高哈希表结构容器的查找性能
(3)特点:对象的哈希值不需要关心,大致等于 对象的地址号。所以:不同对象的哈希值肯定不一样

4、finalize

(1)说明:当对象被回收时,系统自动调用该方法
(2)垃圾回收机制:
  回收的对象:无用对象
  无用的对象:没有任何引用指向的对象
  回收的时机:随机的,不确定