object类.常用API(一)

news/2024/9/3 0:29:45 标签: 开发语言, java

1.Object类

Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候,最终找的父类就是Object。

1.1toString 方法

toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。
由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。
如果不希望使用toString方法的默认行为,则可以对它进行覆盖重写。例如自定义的Person类:
public class Person {  
    private String name;
    private int age;
    @Override
    public String toString() {
        return "Person{" + "name='" + name + '\'' + ", age=" + age + '}';
    }
    // 省略构造器与Getter Setter
}

1.2equals方法

public boolean equals(Object obj):指示其他某个对象是否与此对象“相等”。

调用成员方法equals并指定参数为另一个对象,则可以判断这两个对象是否是相同的。这里的“相同”有默认和自定义两种方式。

默认地址比较
如果没有覆盖重写equals方法,那么Object类中默认进行`==`运算符的对象地址比较,只要不是同一个对象,结果必然为false。

对象内容比较
如果希望进行对象的内容比较,即所有或指定的部分成员变量相同就判定两个对象相同,则可以覆盖重写equals方法。
import java.util.Objects;

public class Person {	
	private String name;
	private int age;
	
    @Override
    public boolean equals(Object o) {
        // 如果对象地址一样,则认为相同
        if (this == o)
            return true;
        // 如果参数为空,或者类型信息不一样,则认为不同
        if (o == null || getClass() != o.getClass())
            return false;
        // 转换为当前类型
        Person person = (Person) o;
        // 要求基本类型相等,并且将引用类型交给java.util.Objects类的equals静态方法取用结果
        return age == person.age && Objects.equals(name, person.name);

1.3Objects类

在JDK7添加了一个Objects工具类,它提供了一些方法来操作对象,它由一些静态的实用方法组成,这些方法是null-save(空指针安全的)或null-tolerant(容忍空指针的),用于计算对象的hashcode、返回对象的字符串表示形式、比较两个对象。
在比较两个对象的时候,Object的equals方法容易抛出空指针异常,而Objects类中的equals方法就优化了这个问题。方法如下:
public static boolean equals(Object a, Object b):判断两个对象是否相等。

2.Date类

public Date():分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
public Date(long date)`:分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。
tips: 由于我们处于东八区,所以我们的基准时间为1970年1月1日8时0分0秒。
简单来说:使用无参构造,可以自动设置当前系统时间的毫秒时刻;指定long类型的构造参数,可以自定义毫秒时刻。例如:
import java.util.Date;
public class Demo01Date {
    public static void main(String[] args) {
        // 创建日期对象,把当前的时间
        System.out.println(new Date()); // Tue Jan 16 14:37:35 CST 2018
        // 创建日期对象,把当前的毫秒值转成日期对象
        System.out.println(new Date(0L)); // Thu Jan 01 08:00:00 CST 1970
    }
}
tips:在使用println方法时,会自动调用Date类中的toString方法。Date类对Object类中的toString方法进行了覆盖重写,所以结果为指定格式的字符串。
public long getTime() 把日期对象转换成对应的时间毫秒值。
2.2 DateFormat类
java.text.DateFormat是日期/时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换。
格式化:按照指定的格式,从Date对象转换为String对象。
解析:按照指定的格式,从String对象转换为Date对象。
由于DateFormat为抽象类,不能直接使用,所以需要常用的子类java.text.SimpleDateFormat。这个类需要一个模式(格式)来指定格式化或解析的标准。构造方法为:
public SimpleDateFormat(String pattern):用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。
参数pattern是一个字符串,代表日期时间的自定义格式。
DateFormat类的常用方法有:

public String format(Date date)`:将Date对象格式化为字符串。
public Date parse(String source)`:将字符串解析为Date对象。

http://www.niftyadmin.cn/n/1329993.html

相关文章

【Vue】Vue中的Ajax——axios组件详解

axios简介 Vue并不能直接支持ajax,所以通过组件来实现ajax异步请求。 最为推荐的组件就是 axios。 在进行下面的学习之前,先把这个组件安装到本地: npm install axios请求 axios这样发出请求:axios(config)axios.get(url[, c…

Object类、常用API(二)

java.util.Calendar是日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。日历类就是方便获取各个时间属性的。 Calendar为抽象类,由于语言敏感性,Calendar类在创…

【LeetCode】Sama的个人记录_56

不要想的太复杂。自定义一个排序器即可: Arrays.sort(strings, (o1, o2) -> (o2 o1).compareTo(o1 o2)); 说明: 1. 这里的排序器的特殊之处在于,不是比较两个独立的元素,而是比较两个元素的组成结果———但这是可行的。 2. …

Collection、泛型

* 数组的长度是固定的。集合的长度是可变的。 * 数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。 JAVASE提供了满足各种需求的API,在使…

list、set

常见的数据结构数据存储的常用结构有:栈、队列、数组、链表和红黑树。我们分别来了解一下:#### 栈* **栈**:**stack**,又称堆栈,它是运算受限的线性表,其限制是仅允许在标的一端进行插入和删除操作,不允许在…

【Node.js】一篇文章带你彻底理解Node.js及其特性

什么是Node.js 简单的说,Node.js就是运行在服务端的JavaScript,它打破了JavaScript只能在浏览器运行的局面,并且让JavaScript的生态建设走向正轨。 Node.js最初的开发者,是想要写一个基于事件驱动的、非阻塞I/O的Web服务器&…

【Node.js】一篇文章带你直接上手JavaScript服务端编程

你需要先学习的 1)什么是Node.js?(戳这里:《【Node.js】一篇文章带你彻底理解Node.js及其特性》) 2)安装Node.js。(node -v如果得到版本号,则安装成功) Node.js模块化 …

异常、线程

1.1 异常概念异常,就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是:* **异常** :指的是程序在执行过程中,出现的非正常的情况,最终会导…