Java --常用类:Object类、System类、Date类、SimpleDateFormat类、Calendar类

一、Obeject 类:

1.toString() 方法
在这里插入图片描述

public class Object {
    public static void main(String[] args) {
        Student s=new Student();
        s.name="张三";
        s.age=29;
        //输出结果相同,说明我们输出一个对象就是输出它的toString()方法
        System.out.println(s.toString());
        System.out.println(s);
    }
}
class Student{
    String name;
    int age;
//重写父类Object 的方法
    @Override
    public String toString() {
       // return super.toString();
        return "学生"+name+"年龄为"+age;
    }
}

2.equals()方法

在这里插入图片描述

用于比较两个对象是否相同,是使用两个对象的内存地址在进行比较。

Object类中equals方法内部使用的就是==比较运算符

public boolean equals(Object obj) {
return (this == obj); }

要比较两个对象的属性值是否相同,需要重写父类的equals()方法进行比较

public class Object {
    public static void main(String[] args) {
        Student student = new Student("张三",13);
        Student student1 = new Student("李四",26);
        boolean flag=student.equals(student1);
        System.out.println(flag);
    }
}
class Student extends Object {
    String name;
    int age;

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public boolean equals(java.lang.Object obj) {
        //提高效率,如果比较的对象一样,则直接返回true
        if (this == obj)
            return true;
        //提高健壮性,比较类型是否相同
        if (obj == null && obj.getClass() != getClass())
            return false;
        //向下转型
        Student o = (Student) obj;
        return o.name.equals(this.name) && o.age == this.age;//boolean类型
    }
}

二、System类

System:包含一些有用的类字段和方法。它不能被实例化

static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

static long currentTimeMillis()

static void exit(int status)

static void gc()

public class SystemDemo {
    public static void main(String[] args) {
    //method1();
    //method2();
   // method3();
        new Demo();
        System.gc();
    }
   private static void method1(){
       for (int i = 0; i < 1000; i++) {
           System.out.println(i);
           if(i==100){
               System.exit(0);
           }
       }
}
    private static void method2() {
        long start=System.currentTimeMillis();
        for(int i=0;i<1000;i++){
            System.out.println(i);
        }
        long end=System.currentTimeMillis();
        System.out.println(end-start);
    }
    private static void method3(){
        int[]arr={1,2,3,4,5};
        int[]dest=new int[5];
        System.arraycopy(arr,2,dest,0,3);
        //从arr数组的索引为2的元素开始复制,复制到dest数组中,目标数组索引为4,复制3个元素
        for (int i = 0; i < dest.length; i++) {
            System.out.println(dest[i]);
        }
    }
}
class Demo{
    @Override
    protected void finalize() throws Throwable {
        System.out.println("我被回收了");
    }
}

三、Date类

Date类的概述:
类 Date 表示特定的瞬间,精确到毫秒。

构造方法:

Date() :创建的是一个表示当前系统时间的Date对象

Date(long date) :根据"指定时间"创建Date对象

成员方法:

​ public long getTime(): 获取一个日期对象对象毫秒值
​ public void setTime(long time): 给一个日期对象设置上指定的毫秒值 例:date.setTime(1000 * 60 * 60) ;

public class DateDemo{
    public static void main(String[] args) {
        //返回系统当前时间
       /* Date date = new Date();
        System.out.println(date);//Wed Oct 23 21:23:41 CST 2019
        Date date1 = new Date(1000 * 60 * 60 * 24);
        System.out.println(date1);*///时区有时差 Fri Jan 02 08:00:00 CST 1970
        Date d = new Date();
        d.setTime(1000 * 60 * 60 * 24);
        System.out.println(d.getTime());//86400000
        System.out.println(d.toLocaleString());//1970年1月2日 上午8:00:00
        System.out.println(d);//Fri Jan 02 08:00:00 CST 1970
    }
}

四、SimpleDateFormat类

要格式化一个当前语言环境下的日期也就是日期 -> 文本),要通过下面的方法来完成。DateFormat是抽象类,我们需要使用其子类SimpleDateFormat来创建对象。

SimpleDateFormat:

SimpleDateFormat: 可以把一个日期对象格式化成一个文本(字符串) , 也可以把一个日期字符串解析成一个日期对象

  • 构造方法:
  • public SimpleDateFormat():使用默认的模式来创建一个SimpleDateFormat对象
  • public SimpleDateFormat(String pattern):使用指定的模式(规则比如yyyy:MM:dd HH:mm:ss)来创建一个SimpleDateFormat对象
  • 规则的定义
  • y 年
  • M 月
  • d 天
  • H 时
  • m 分
  • s 秒
  • 成员方法:
  • public String format(Date date): 把一个日期对象格式化成一个字符串
  • public Date parse(String dateStr): 把一个日期字符串解析成一个日期对象 注意要以指定格式解析

* 格式化:

* Date — String

* 2049-8-26 2049年8月26日

* String format(Date date)

* 解析:

* String — Date

* “2049-8-26”

* Date parse(String source)

*

注意:Exception in thread “main” java.text.ParseException: Unparseable date: “49年9月26日 下午1:29” 解析的字符串,模式必须和构建对象的模式一样

package lianxi.date.demo;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateDemo {
    public static void main(String[] args) throws ParseException {
        method11();//默认模式
        //method22();指定模式
    }

    private static void method22() throws ParseException {
        //使用指定模式进行对象的创建
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        //创建日期对象
        Date date= new Date();
        //格式化:String-->Date
        String s=sdf.format(date);
        System.out.println(s);//2019年10月23日 22:17:15
        //解析  Date-->String 要抛出异常
        Date d =sdf.parse("2049年08月24日 13:08:33");
        System.out.println(d);//Tue Aug 24 13:08:33 CST 2049

    }

    private  static void method11() throws ParseException {
    //默认格式进行对象的创建
        SimpleDateFormat sdf = new SimpleDateFormat();
        //创建日期对象
        Date date = new Date();
        //格式化
        String s=sdf.format(date);
        System.out.println(s);//2019/10/23 下午10:23
        //解析
        Date d=sdf.parse("2019/10/23 下午10:23");
        System.out.println(d);

    }
}

五、Calendar类

Calendar类的概述
Calendar 类是一个抽象类,不能直接new对象,可以通过他的一个静态成员方法getInstance()来获取他的对象
它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR
等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

在这里插入图片描述
在这里插入图片描述

注意:month是从0开始的,而月份是从1开始的,所以month需要加一

public class CalendarTest {
    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        int year=c.get(Calendar.YEAR);
        int month=c.get(Calendar.MONTH)+1;
        int day=c.get(Calendar.DAY_OF_MONTH);
        System.out.println(year+"年"+month+"月"+day+"日");
       //在指定的字段上加上指定的值
        c.add(Calendar.DAY_OF_MONTH,2);
        int day1=c.get(Calendar.DAY_OF_MONTH);
        System.out.println(year+"年"+month+"月"+day1+"日");
        //把指定的字段修改为指定的值
        c.set(Calendar.YEAR,2000);
        int year1=c.get(Calendar.YEAR);
        System.out.println(year1+"年"+month+"月"+day+"日");

    }
}
发布了46 篇原创文章 · 获赞 1 · 访问量 1016

猜你喜欢

转载自blog.csdn.net/qq_42022411/article/details/102716095