当我们输出对象时,控制台输出的会是一个内存地址值,而我们想看的是该对象中的信息,这时我们就可以重写toString方法,这个方法是Object类中的。
例如:
成员信息都有(name、age)
public String toString(){
return "Student[name=" + name + ", age=" + age + "]";
}
这个就是重写了toString方法
当我们声明了两个对象,成员属性全部都一样,姓名和年龄都一样,这时我们去比较这两个对象,但是出来的结果是false,这是因为我们用的是Object类中的equals方法,它
比较的还有地址值,而声明两个对象的内存地址值不一样,所以会出现false,我们可以重写Object类中的equals类
例如:
public boolean equals(Object obj){
if(obj == null){
return false;
}
if(this == obj){
return true;
}
//比较的是方法的调用者和方法的参数对象
// == 此时比较的是地址
if(obj instanceof Student){
Student student =(Student) obj;
//比较两个对象的成员变量值是否相等
boolean result = this.name.equals(student.getName())&& this.age == student.getAge();
return result;
}
//如果object不属于Student类型,执行return false
return false;
}
Date类
它是在util包下的一个类,它里面的很多方法都已经过时了,但是它还有要用的方法
例如:
Date.getTime();返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
Date的构造方法常用的有2种,一种是默认的无参构造
输出的就是现在的时间
还有一种构造方法是传入一个long类型的参数
返回的值输出是一个那个毫秒值的时间是什么时候。
例如:
Date date = new Date();
System.out.print(date);
这个就是输出的:Sat Nov 28 11:01:06 CST 2020
long a = 123456789123l;
Date date2 = new Date(a);
System.out.print(date2);
这个输出就是:Fri Nov 30 05:33:09 CST 1973
DateFormat类
这个类它类似于代替了Date这个类,它的主要作用是可以把date日期格式化为符合模式的字符串,他也可以把符合模式的字符串,解析成Date日期
它类是一个抽象类,无法直接创造对象,可以使用它的子类SimpleDateFormat
构造方法
public SimpleDateFormat(String pattern)
参数: String pattern
使用format方法 把日期格式化为文本
使用DateFormat类中的方法parse。把文本解析成日期
使用的步骤
1.先创建SimpleDateFormat中的parse方法,把符合构造方法当中的字符串解析成日期
注意:
public Date parse(String source) throws ParseException
如果字符串和构造方法当中的模式不一样时,程序会抛出此异常
如果程序调用了一个携带解析异常的方法,那么就必须对这个异常处理,通常处理异常有两种处理方案
1.使用throws继续往上抛
2.使用try catch语句块处理掉这个异常
接下来是举例:
Date date = new Date();
按照指定的模式生成对应的字符串值
使用DateFormat类的子类叫SimpleDateFormat
Date date = new Date();
SimpleDateFormat si = new SimpleDateFormat("HH:mm yyyy/MM/dd"):
String format = si.format(date);
System.out.println(format);
//输出结果为:11:11 2020/11/28
String strdate = "2020年11月27日 20:31:30 5";
SimpleDateFormat two = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss F");
Date parse = two.parse(strdate);
System.out.println(parse);
//输出结果为:Fri Nov 27 20:31:30 CST 2020