在object类中 tostring 直接打印对象的额名字 就是调用对象的tostring方法。。p = p.tostring
直接打印对象的地址值没有意义,所以需要重写object类的tostring方法,打印对象的属性(name.age)
voerride
public string tostring();
return "Person{name="+name+",age = +age+}";
可以直接快捷键就跟gettersetter一样
看一个类是否重写toString方法,直接打印这个类对应对象的名字即可,若果没有重写tostring方法,那么打印的就是对象的地址值(默认值)
如果重写tostring方法,那么久按照重写的方式打印,
引用数据类型 :比较的是两个对象的地址值 boolean
这就是equal 查看方法的地址是否相同
boolean b = s1.equals(s2);
null是不能调用方法的,会抛出空指针一场
object.equals对两个对象进行比较,防止空指针异常
equals默认比较地址值没有意义,所以我们需要重写equals方法,比较两个对象的属性值。
对象属性一样,返回ture,否则返回false
当打印一个东西的时候,默认打印toString()的方法。所以 在对象里面直接tostring就可以了
重写前是打印包名类名@地址值,重写之后打印的是对象的属性值。
equals作用 比较两个对象
重写前比较地址值,重写后比较属性值
equals比较两个对象是否相同,但是加了一些健壮性的判断NULL
日期时间的类:
Date类
java.util.Date
Date类表示特定的 瞬间,精确到毫秒
毫秒 千分之一秒
特定的瞬间:一个时间点,一刹那的时间。
毫秒值的作用,可以对时间和日期进行计算
可以日期转化为毫秒,计算完毕 再把毫秒转化为日期。
把日期转化为毫秒:
当前日期:
时间原点:
就是计算当前日期到时间原点之间一共经历了多少毫秒。
sout(System.cuurrentTimeMillis());获取当前系统时间与原点时间一共经历了多少毫秒。
吧毫秒转化为日期:
1天=86400秒=86400000毫秒。
注意:中国属于东八区,会把时间增加8个小时。
Date类的构造方法和成员方法
Date类的空参数构造方法。
Date();
带参数的:
Date d1 = new Date;
date类的成员方法:
long getTime();就是吧日期转换为毫秒相当于System.cuurrentTimeMillis
java.text.DateFormat:是日期或时间格式化类的抽象类
作用:格式化(也就是日期--文本)解析(文本--日期)
构造方法:SimpleDateFormat extends FateFormat
SimpleDateFormat(String pattern)用给定的模式和默认预言环境额日期格式符号构造SimpleDateFormat
参数String pattern:传递指定的模式
模式:区分大小写的
y 年
N 月
d 日
H 时
m 秒
s 分
写对应的模式,会吧模式替换为赌赢的日期和时间
"yyyy-MM-dd HH:mm:ss"
可以吧-换位年月日 :时分秒
注意 模式中的子母不能更改,连接模式的符号可以改变
package test;
import java.text.SimpleDateFormat;
public class Date {
public static void main(String[] args) {
demo02();
}
private static void demo02() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String text = sdf.format(date);
System.out.println(date);
System.out.println(text);
}
}
parse方法生命了一个异常叫做parseExcept解析异常
如果字符和构造方法中的模式不一样,那么程序就会异常。
调用一个抛出了异常的方法,就必须的处理这个异常,要么throws继续声明这一个异常,要么try...catch自己处理这个异常。
package test;
public class Date1 {
public static void main(String[] args) {
demo02();
}
private static void demo02() {
Date date = new Date();
System.out.println(date);
}
}