# 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);
}
}