java day6【科研半天】

Object类

toString() 
          返回该对象的字符串表示。

直接打印对象的名字其实就是调用toString方法

equals(Object obj) 
          指示其他某个对象是否与此对象“相等”。【boolean】。 

基本数据类型:比较值

引用数据类型:地址值

默认比较地址,没有意义,所以重写,以比较对象属性

问题: 隐藏多态【无法使用子类特有的内容】 

          Object obj = new Person(“name”, 19)

    所有,使用向下转型将OBJECT转型为person类(记得加上instanceof判断)

Objects类

提供了一些静态的使用方法,是null-save(空指针安全的)或者null-tolerant(容忍空指针的)

拥有与计算对象的hashcode,返回对象的字符串表示形式,比较两个对象

因为在比较两个对象时,object类容易抛出空指针异常

public static boolean equals(object a, object b)

Date类

Date() 
          表示分配它的时间(精确到毫秒)。

Date(long date) 
          表示自从标准基准时间即 1970 年 1 月 1 日 00:00:00 GMT以来的指定毫秒数。

getTime() 
          返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

private static void demo1() {

  Date date = new Date();
  ong time = date.getTime();
  System.out.println(time);
}

 DateFormat类

是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间

java.text.DateFormat
public abstract class DateFormatextends Format

使用子类SimpleDateFormat

format(Date date) 
          将一个 Date 格式化为日期/时间字符串。

parse(String source) 
          从给定字符串的开始解析文本,以生成一个日期。

private static void demo1() {
SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
Date date = new Date();
String dString = simpleDateFormat.format(date);
System.out.println(date);
System.out.println(dString);
//Tue Apr 14 20:10:36 CST 2020

//2020-04-14 20-10-36




}
private static void demo2() throws ParseException {
SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
Date date = simpleDateFormat.parse("2020-04-14 19-57-56");
System.out.println(date);

//Tue Apr 14 19:57:56 CST 2020


}

 练习,计算一个人出生了多少天

      1.获取当前时间的毫秒值

  2.获取自己出生日期对应的毫秒值

  3.相减

private static void demo1() throws ParseException {
  System.out.println("input your birthday yyyy-MM-dd");
  Scanner sc = new Scanner(System.in);
  String birth_dateString = sc.next();

  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  Date d = sdf.parse(birth_dateString);
  long dd = d.getTime();
  
  Date date = new Date();
  long d_ = date.getTime();

  long ans = d_ - dd;
  long day = ans/(1000*60*60*24);
  System.out.println("you have born " + day + " days");
}

Calender类 【抽象类】

   无法直接创建对象使用,但有一个getInstance方法,返回子类对象

   Calendar calendar = Calendar.getInstance();

 常用方法

  int get(int filed):返回给定日历字段的值

   void set(int filed , int value):将给定的日历字段值设置为给定值

   abstract void add(int filed, int amout:添加或减去指定时间量)

  Date getTime() :返回一个表示此calender时间值的date对象

public class DemoCalender {

public static void main(String[] args) {

  Calendar calendar = Calendar.getInstance();
  int DAY_OF_MONTH = calendar.get(Calendar.DAY_OF_MONTH);
  System.out.println(DAY_OF_MONTH);

  calendar.set(calendar.YEAR, 9999);


  calendar.add(calendar.YEAR, 2);
  int year = calendar.get(calendar.YEAR);
  calendar.add(calendar.DAY_OF_MONTH, -12);
  int day = calendar.get(Calendar.DAY_OF_MONTH);
  System.out.println(year);
  System.out.println(day);

  Date date = calendar.getTime();
  System.out.println(date);

}

}

输出 

14
10001
2
Mon Apr 02 20:52:10 CST 10001

system 类

currentTimeMillis()
          返回以毫秒为单位的当前时间。

arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
          从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。

练习:将【1,2,3,4,5】前三个数字复制到【6,7,8,9,10】,结果【1,2,3,9,10】


public class SystemDemo {

  public static void main(String[] args) {
  int[] src = {1,2,3,4,5};
  int[] det = {6,7,8,9,10};
  System.arraycopy(src, 0, det, 0, 3);
  System.out.println(Arrays.toString(det));

}

}

原文地址:https://www.cnblogs.com/njuwyx/p/12701110.html