1.对象与对象变量:
1.1构造器:
在的Java程序设计语言中,使用构造器构造新实例。
构造器是一种特殊的方法,用来构造并初始化对象
构造器的名字应该与类名相同
1.2对象和对象变量的区别:
变量不是个对象,实际上对象变量的初始化只是对对象的引用
的Java中,任何对象变量的值都是对存储在另外一个地方的一个对象的引用
新的操作符的返回值也是一个引用
C ++中没有空引用
日期b; // Java的
实际上,等同于
日期* b; // C ++
的Java中的空引用对应于C ++中的空指针
所有的Java的对象都存储在堆中
克隆方法获得对象的完整拷贝
2.LocalDate类:
Java的类库分别包含了两个类:一个是用来表示时间点的日期类;另一个是用来表示大家熟悉的日历表示法的LOCALDATE的类
不要使用构造器来构造LOCALDATE的类的对象,应当使用静态工厂方法代表你调用构造器,如下:
LocalDate.now()会构造一个新对象,表示构造这个对象时的日期
可以提供年,月和日来构造对应一个特定日期的对象:LocalDate.of(1999,12,31)
2.1getYeat,getMonthValue和getDayOfMonth得到年,月和日:
LocalDate newYearEve = LocalDate.of(1999,12,31);
int year = newYearEve.getYear(); // 1999年
int month = newYearEve.getMonthValue(); // 12
int day = newYearEve.getDayOfMonth(); // 31
2.2plusDays方法:
LocalDate aThousandDayLater = newYearEve.plusDays(1000);
year = aThousandDayLater.getYear();
month = aThousandDayLater.getMonthValue();
day = aThousandDayLater.getDayOfMonth();
LOCALDATE的类封装了实例域来维护所设置的日期
plusDays方法会生成一个新的LOCALDATE的对象,然后把这个新对象赋给aThousandDaysLater变量,原来的对象不会做任何变动
2.3更改器方法与访问器方法:
的Java库的一个较早版本曾经有另一个类来处理日历,名为GregorianCalendar的,例如:
GregorianCalendar someDay = new GregorianCalendar(1999,11,31);
someDay.add(Calendar.DAY_OF_MONTH,1000);
GregorianCalendar.add方法是一个更改器方法,调用这个方法后某天对象的状态改变
year = someDay.get(Calendar.YEAR); // 2002
month = someDay.get(Calendar.MONTH)+1; // 09
week = someDay.get(Calendar.DAY_OF_MONTH); // 26
只访问对象而不修改对象的方法有时称为访问器方法
2.4java.time.LocalDate 8:
静态LocalTime now()
构造一个表示当前日期的对象
(int year,int month,int day)的静态LocalTime
构造一个表示给定日期的对象
int getYear()
int getMonthValue()
int getDayOfMonth()
得到当前日期的年,月和日
DayOfWeek getDayOfWeek
得到当前日期是星期几,作为DAYOFWEEK类的一个实例返回。调用的getValue来得到1〜7之间的一个数,表示这是星期几,1表示星期一,7表示星期日
LocalDate plusDays(int n)
LocalDate minusDays(int n)
生成当前日期之后或之前ň天的日期