首先上来先唠叨几句,java之所以强大,不但是因为它的安全措施做的很好,而且更重要的是它拥有一个强大的类库,java是一门面向对象的语言,所以类可谓java的命根子,下面就通过典型的两个类Date和LocalDate来演示一下java类的特征
Date类:
首先说明一下,在java程序设计语言中,使用构造器构造新的实例,构造器的定义方法在博主我的文章中有一篇专门说明,这里主要关注怎么使用,而不是定义。所以就不深入讨论了。
构造一个对象使用new关键字,例如new Date()
使用其中的方法使用"."运算符
下面一段代码演示了如何构造和使用Date类(部分):
示例代码:
CreatAndUseDate.java:
package DateTest;
import java.util.Date;
public class CreatAndUseDate {
public static void main(String[] args) {
//输出系统时间:
System.out.println(new Date());
//或者将时间变为一个字符串
String s=new Date().toString();
System.out.println(s);
//或者使用对象的一个引用来引用对象,以便多次使用这个对象
Date birthday=new Date();
//空引用,值为null,不能使用Date类中的方法
Date deadline=null;
//重新赋值
deadline=new Date();
if(deadline!=null) {
System.out.println(deadline.toString()+" "+birthday.toString());
}
}
}
运行结果:
CreatAndUseLocalDate.java
package DateTest;
import java.time.LocalDate;
public class CreatAndUseLocalDate {
public static void main(String[] args) {
//LocalDate与Date的区别就是,一个是日历,一个是时间点...
LocalDate now=LocalDate.now();
System.out.println(now);//不难发现,只精确到了日期
LocalDate newYearEve=LocalDate.of(1999, 12, 31);
//以日月年的顺序输出
System.out.println(newYearEve.getDayOfMonth()+"-"+newYearEve.getMonthValue()+"-"+newYearEve.getYear());
//对newYearEve重新赋值之延后1000天
LocalDate aThousandDaysLater=newYearEve.plusDays(1000);
System.out.println(aThousandDaysLater.getDayOfMonth()+"-"+aThousandDaysLater.getMonthValue()+"-"+aThousandDaysLater.getYear());
}
}
运行结果:
另外Java的类中的方法总的来说可以分为两种方法,即更改器方法和访问器方法,所谓更改器方法顾名思义也就是执行此方法会使类内数据发生变化,而访问器方法则不会使类内数据发生变化。
下面演示两个例子
ModifyAndAccessMethod.java
package DateTest;
import java.time.LocalDate;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class ModifyAndAccessMethod {
public static void main(String[] args) {
//LocalDate中的plusDays是访问器方法
LocalDate newYearEve=LocalDate.of(1999, 12, 31);
System.out.println("newYearEve:"+newYearEve);
//对newYearEve重新赋值之延后1000天
LocalDate aThousandDaysLater=newYearEve.plusDays(1000);
System.out.println("\nnewYearEve:"+newYearEve);
System.out.println("aThousandDaysLater:"+aThousandDaysLater);
//GregorianCalendar类中有一个add方法则是更改器方法
GregorianCalendar someDay=new GregorianCalendar(1999,11,31);
System.out.println("\nNow someDay:"+someDay.getTime());
someDay.add(Calendar.DAY_OF_MONTH, 1000);
System.out.println("1000 days later:"+someDay.getTime());
}
}
运行结果: