Object类,Objects类,Date类,DateFormat类,Calendar类,Math类,system类

一.Object类

所在包: java.lang.Object

概念:

  • 所有类的根类。
  • 任何类都会直接或间接的继承Object类
  • 一个类如果没有明确的写出extends 父类,默认的爹就是Object类

方法:

toString

  • 如果直接输出对象名,没有重写Object类中的toString方法,默认调用了Object类中的toString。输出的是地址值!

  • 如果重写了toString方法,在输出地址值就没有意义了,所以,重写后的toString应该输出内容。

  • 如果想让我们自定义的类直接输出,不出现地址值,那么该类就需要重写toString,返回属性值。

重写toString方法:

public class Animal {
    private String name;

    @Override
    public String toString() {
        return "Animal{" +
                "name='" + name + '\'' +
                '}';
    }
}

equals

System.out.print(p1.equals(p2)); //false


//equals源码
public biilean equals(Object obj){
	return (this == obj); //this代表的是p1。
}

==:

  • 针对于引用数据类型:比较的是地址值
  • 针对于基本数据类型:比较的是数据值

总结:

  • 如果想直接输出对象名,不是地址值,重写toString方法。
  • 如果比较两个对象是否相等,重写equals方法。

重写equals的方法:

@Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Animal animal = (Animal) o;
        return Objects.equals(name, animal.name);
    }

二.Objects类

所在包:java.util.Objects
是一个工具类。

概念

特点:方法都是静态。
访问方式:类名直接调用。

Obejcts里面的equals方法和Object里面的equals方法的区别:

扫描二维码关注公众号,回复: 10577079 查看本文章
/**
	Obejcts里面的equals方法的源码,可以看到里面有判断null的条件
*/
public static boolean equals(Object a, Object b){
	return (a == b) || (a != null && a.equals(b));
}

/**
	测试
*/
String s = null;
String s1 = "abc";
System.out.println(s.equals(s1)); //报错
System.out.println(Objects.equals(s,s1)); //false

由上可见
Obejcts里面的equals方法可以容忍null值,不会报空指针异常!

三.Date类

所在包:java.util.Date
日期类

概述

表示特定的瞬间,精确到毫秒(1秒 == 1000毫秒)。

毫秒的作用:测试代码的效率。
System.currentTimeMillis() -->获取当前系统毫秒值。

时间原点(国际基准时间)
1970年1月1日 0时0分0秒。

构造方法:

  • public Date() -->将当前系统时间封装成Date对象
  • public Date(long date); -->将指定的毫秒值变成Date对象;代表的是距离国际标准时间毫秒值后的那个时间。(时差)

成员方法:

  • getTime();将日期对象转换为对应的毫秒值。

  • setTime();修改当前Date对象距离标准时间的毫秒值。

总结:

  • 直接利用空参Date对象:获取当前系统时间。

四.DateFormat类

所在的包:java.text.DateFormat
日期格式化类

概念

  • 我们直接输出Date对象可是看不太懂!于是java给出了这个类来初始化日期类。
  • DateFormat是抽象类不能new对象。
  • 使用的时候应该用它的子类SimpleDateFormat

构造方法:

SimpleDateFormat(String pattern)
pattern:格式;规则。
	年		y
	月		M
	日		d
	时		H
	分		m
	秒		s
	标准格式:yyyy-MM-dd HH:mm:ss

成员方法:

  • String format(Date date):传递的是日期对象,返回格式化后的字符串 -->格式化
  • Date parse(String str):传递的是字符串。返回的是 Date对象,将符合规则的 字符串 ,变成Date对象–>解析

使用方法演示

public static void main(String[] args) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        Date date = new Date();

        System.out.println(simpleDateFormat.format(date)); //2020-03-12 16:04:26打印出当前系统时间
    }

五.Calendar类

所在包:java.util
日历类

概念:

为什么会有这个类?
Date要想单独操作年,月,日等等比较麻烦。Calendar类却十分的简单!

  • 是一个抽象类
  • 方法都是静态的
  • 直接类名调用即可

方法:

Calendar getInstance() -->获取Calendar对象 。
int get(int field) -->获取日历字段的值。
void set(int field,int value):给指定的月份
void add(int field,int value):给指定的日历字段,加/减值。

参数field:日历的字段,都是静态常量,类名调用即可!
年:Year
月:MONTH
日:DAY_OF_MONTH …

使用方法

public static void main(String[] args) {
        //获取Calendar。
        Calendar instance = Calendar.getInstance();
        
        
        //调用Calendar中的get方法  参数:日历字段YEAR
        int YEAR= instance.get(Calendar.YEAR);
        System.out.println(YEAR);//2020

        //调用Calendar中的set方法
        instance.set(Calendar.YEAR,1);
        //再次获取
        int YEAR1= instance.get(Calendar.YEAR);
        System.out.println(YEAR1);//1

        //调用Calendar中的add方法
        instance.add(Calendar.YEAR,1);//正数+,负数-
        //再次获取
        int YEAR2= instance.get(Calendar.YEAR);
        System.out.println(YEAR2);//2
    }

六.Math

所在包:java.lang.Math
数学类

概念

  • 方法都是静态的,不能new对象 构造方法私有。

使用方法:

  • 类名直接调用。

常用方法:

  • int abs(int a) --> 求参数的绝对值返回int。
  • double ceil(double a) —>向上取整返回double。
  • double floor(double a) —>向下取整返回double。
  • int round(float a) —>四舍五入返回int值。
  • int max(int a,int b) —>返回两个参数的最大值。
  • int min(int a,int b) —>返回两个参数的最小值。

七.system

所在包:java.lang.system

概念

  • 方法都是静态的

使用方法:

  • 都是类名直接调用

常用方法:

  • void exit(int status) —>退出jvm 参数status -->写0就行
  • long currenTimeMillis() —>获取当前系统毫秒值 -->可以测试代码效率。
  • void arraycopy(Object src,int srcPos,dest,destPos,length)
    —>复制老数组到新数组 —> 参数 src:老数组,srcPos:从原数组的那个索引考试复制,dest:目标数组,destPos:从目标数组哪个索引开始粘贴,length:复制多少个。
发布了30 篇原创文章 · 获赞 39 · 访问量 2061

猜你喜欢

转载自blog.csdn.net/weixin_44564242/article/details/104812219