Object(后续补)

# toString

在person类中覆盖重新toString方法

在这里插入图片描述

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

public class Person {
    private String name ;
    private int age;

    public Person(String name) {
    }
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    // 快捷键alt+insert
    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

对象

public class ToSTring {
    public static void main(String[] args) {
        Object person = new Person("wl",20);
        System.out.println(person);   //wl_类与对象.demo10_Object类.toString.Person@4554617c
        System.out.println("=============");
        String s = person.toString();
        System.out.println(s);  //wl_类与对象.demo10_Object类.toString.Person@4554617c
        //覆盖重写了Object类的toString方法,一旦覆盖重新,上面所有的输出值也跟着一起改变
        System.out.println(person);
        System.out.println(s);
   }
}

equals

在这里插入图片描述

优化思路

在这里插入图片描述

在这里插入图片描述

public class Person {
    private String name ;
    private int age;

    public Person(String name) {
    }
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

对象

public class Equals {
    public static void main(String[] args) {
        Object Person1 p1 = new Person1("wl",21);
        Object p2 = new Person1("lyc",18);
        System.out.println(p1); //wl_类与对象.demo10_Object类.equals.Person1@4554617c
        System.out.println(p2); //wl_类与对象.demo10_Object类.equals.Person1@74a14482
        System.out.println(p1.equals(p2));
    }
}

覆盖重写之后的类

import java.util.Objects;

public class Person1 {
    private String name ;
    private int age;

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

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        //getClass() != o.getClass()以后再学
        if (o == null || getClass() != o.getClass()) return false;
        Person1 person1 = (Person1) o;
        return age == person1.age && Objects.equals(name, person1.name);
    }

    @Override
    public int hashCode() {
    	//objects是一个工具类
        return Objects.hash(name, age);
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

覆盖重写之后的对象

public class Equals {
    public static void main(String[] args) {
//        Object p1 = new Person1("wl",21);
//        Object p2 = new Person1("lyc",18);
//        System.out.println(p1); //wl_类与对象.demo10_Object类.equals.Person1@4554617c
//        System.out.println(p2); //wl_类与对象.demo10_Object类.equals.Person1@74a14482
//        System.out.println(p1.equals(p2)); //false
        //上面是没有覆盖重写之前的代码,若要参考,需要删除覆盖重写
        Object p1 = new Person1("wl",21);
        Object p2 = new Person1("lyc",18);
        Object p3 = new Person1("lyc",18);
        System.out.println(p1.equals(p2)); //false
        System.out.println(p2.equals(p3));  //true
        System.out.println(p2.equals(p2));  //true
    }
}

objects下的equals方法

与对象object类,对象调用的equals形成对比

在这里插入图片描述

public class Objects_equals {
    public static void main(String[] args) {
        String s1 = "abc";
        String s2 = "abc";
        System.out.println(s1.equals(s2)); //true
//        String s3 = null;
//        String s4 = "abc";
//        System.out.println(s3.equals(s4));//.NullPointerException报错空指针异常,处理
        String s5 =  null ;
        String s6 = "abc";
        System.out.println(Objects.equals(s5,s6)); //false
    }
}

Object 与Objects总结

在这里插入图片描述

##############################################################
##############################################################

Date类

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

import java.util.Date;
public class Date1 {
    public static void main(String[] args) {
        Date d1 = new Date();
        System.out.println(d1); //Sun May 30 21:45:32 CST 2021
        Date d2 =new Date(0L);
        System.out.println(d2); //Thu Jan 01 08:00:00 CST 1970
        Date d3 =new Date(1293812327499L);
        System.out.println(d3);  //Sat Jan 01 00:18:47 CST 2011

        Date d4 = new Date();
        Long time = d4.getTime();
        System.out.println(time);
    }
}

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

第一种方法format

在这里插入图片描述

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

public class Date_format {
    public static void main(String[] args) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
        Date date = new Date();
        System.out.println(date);
        System.out.println(sdf.format(date));
        System.out.println(sdf1.format(date));
    }
}

在这里插入图片描述

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

public class Date_format {
    public static void main(String[] args) throws ParseException {
        // 把符合格式的日期转化为字符串
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
        Date date = new Date();
        System.out.println(date);  //Sun May 30 22:59:22 CST 2021
        System.out.println(sdf.format(date));  //2021-05-30 22-59-22
        System.out.println(sdf1.format(date)); //2021年05月30日22时59分22秒
        // 把符合格式的字符串转换为异常
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
        Date date1 = sdf2.parse("2021年05月30日22时49分18秒");
        System.out.println(date1); //Sun May 30 22:49:18 CST 2021
    }
}

一个小练习

在这里插入图片描述

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

public class 练习 {
    public static void main(String[] args) throws ParseException {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入出生年月日yyyy-MM-dd");
        String birthdayup = input.next();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date birthdaytime = sdf.parse(birthdayup);
        long birthdaytime_time = birthdaytime.getTime();
        Date now = new Date();
        long now_time = now.getTime();
        long result = now_time-birthdaytime_time;
        System.out.println(result/1000/60/60/24);
    }
}

calendar类的介绍

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

get方法

在这里插入图片描述

set方法

在这里插入图片描述

add方法

在这里插入图片描述

gettime

在这里插入图片描述

import java.util.Calendar;
import java.util.Date;

public class calendar {
    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        //set方法
        c.set(Calendar.YEAR,9999);
        c.set(Calendar.MONTH,9);
        c.set(Calendar.DATE,9);
        c.set(8888,8,8); //年月日一起设置
        //get方法
        int year = c.get(Calendar.YEAR);
        System.out.println(year);
        int mouth =c.get(Calendar.MONTH);
        System.out.println(mouth+1);
        int day = c.get(Calendar.DATE);
        System.out.println(day);
        //add方法
        c.add(Calendar.YEAR,2);
        c.add(Calendar.MONTH,2);
        c.add(Calendar.DATE,2);
        int year1 = c.get(Calendar.YEAR);
        System.out.println(year1);
        int mouth1 =c.get(Calendar.MONTH);
        System.out.println(mouth1+1);
        int day1 = c.get(Calendar.DATE);
        System.out.println(day1);
        //gettime方法
        Date date = c.getTime();
        System.out.println(date);
    }
}

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值