Java基础Date类和对象克隆4月打卡day18
Java基础Date类和对象克隆4月打卡day18
关于作者
-
作者介绍
🍓 博客主页:
🍓 简介:JAVA领域优质创作者🥇、一名在校大三学生🎓、在校期间参加各种省赛、国赛,斩获一系列荣誉🏆。
🍓 关注我:关注我学习资料、文档下载统统都有,每日定时更新文章,励志做一名JAVA资深程序猿👨💻。
1、Date类
日期数据类型一定要重视,所有的开发必定要有日期。
1.1 日期处理类—Date类
java.util.data类是在整个程序处理之中唯一可以取得日期当前日期实例化对象的操作方法,也就是说我们要取出当前日期输出Date类对象即可。
package com.day13.demo;
import java.util.Date;
public class DateDemo1 {
public static void main(String[] args) {
Date date = new Date();
//Tue Aug 17 17:01:50 CST 2021
System.out.println(date);
}
}
在Date类中最需要关心的一个核心问题:long可以描述日期,看了一通过Date类中提供的方法来进行观察。
方法名称 | 类型 | 描述 |
---|---|---|
public Date(long date) | 普通 | 将long类型变为Date类型数据 |
public long getTime() | 普通 | 将Date类型变为long类型数据 |
观察转化
package com.day13.demo;
import java.util.Date;
public class DateDemo1 {
public static void main(String[] args) {
long num = System.currentTimeMillis();
System.out.println(new Date(num));
System.out.println(new Date(num).getTime());
}
}
这中简单的转换在以后的程序开发经常会使用。
1.2 日期格式化—SimpleDateFormat类(核心)
虽然Date可以取得当前的日期时间,但是取出的结构不是我们所喜欢的格式,这时候就需要我们进行格式的转化,使用的是java.text包
但是日期格式里面需要设置一些日期标记:年(YYYY)、月(MM)、日(dd)、时(HH)、分(mm)、秒(ss)、毫秒(SS);
实现日期格式化处理(日期格式化之后是字符串)
package com.day13.demo;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateDemo1 {
public static void main(String[] args) {
Date date = new Date();
String str = "YYYY-MM-dd HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(str);
String dateFromat = sdf.format(date);
System.out.println(dateFromat);
}
}
将字符串变为Date类型
package com.day13.demo;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateDemo2 {
public static void main(String[] args) throws ParseException{
Date date = new Date();
System.out.println(date);
String str = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(str);
//将Date类型转化为字符串类型
String newdateStirng = sdf.format(date);
System.out.println(newdateStirng);
//将字符串转化为Date类型
Date newdate = sdf.parse(newdateStirng);
System.out.println(newdate);
}
}
2、对象克隆
克隆就是对象复制的一个概念,不过这种概念一般使用的比较少,因为很少有人去复制已经存在的对象。Object类本身就支持对象克隆方法。可以发现protected Object clone() throws CloneNotSupportedException;我们要想实现克隆,那么我们并不是所有类的对象可以随便克隆,需要被克隆的对象所在类一定要实现Cloneable接口,而最关键的是该接口并没有任何的抽象方法,所以该接口只是一个标识接口,表示一种能力。
对象克隆实现
package com.day13.demo;
class Per implements Cloneable{//必须实现此接口
private String name;
private int age;
public Per(String name, int age) {
super();
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;
}
@Override
public String toString() {
return "Per [name=" + name + ", age=" + age + "]";
}
@Override
//覆写权限扩大 protected 扩大到 public
public Object clone() throws CloneNotSupportedException {
// TODO Auto-generated method stub
return super.clone();//父类负责克隆
}
}
public class CloneDemo {
public static void main(String[] args) throws Exception{
Per perA = new Per("kaco",12);
//perA.clone();不能在这写的原因是因为此方法是protected权限 只能在不同包的子类中实现此方法
Per perB = (Per) perA.clone();
perB.setAge(100);
System.out.println(perA);
System.out.println(perB);
}
}
- 点赞
- 收藏
- 关注作者
评论(0)