应该尽可能减少相互依赖的类的存在,如果类A不知道B的存在,它就不会关心类B的任何改变(这意味着B的改变不会导致A产生任何bug).用软件工程术语来说,就是让类之间的耦合度最小.
new Date()
,这个表达式构造一个新对象,这个对象呗初始化为当前的日期和时间.System.out.println(new Date());
.toString()
方法,这个方法将返回日期的字符串描述,下面的语句可以说明如何将toString
方法应用于新构造的Date对象上.String s = new Date().toString();
,构造的对象仅适用了一次,通常,希望构造的对象可以多次使用时,需要将对象存放在一个变量中:Date birthday = new Date();
.Date deadline;
定义了一个对象变量deadline,它可以引用Date类型的对象.但是,一定要注意:变量deadline不是一个对象,实际上也没有引用对象.此时,不能将任何Date方法应用于这个变量上.注意,一个对象要想使用,必须初始化该对象,使用构造器去构造该对象.
一定要认识到:一个对象变量并没有包含一个对象,只是引用了一个对象.
Date deadline = new Date();
有两个部分,表达式new Date()
构造了一个Date类型的对象,并且它的值是对新创建对象的引用,这个引用存储在变量deadline中.birthday = null;
String s = birthday.toString(); //runtime error!
局部变量不会自动初始化为null,而必须通过调用new或设置为null进行初始化.
将时间与日历分开是一种很好的面向对象设计.
LocalDate.now()
会构造一个新对象,表示构造这个对象时的日期.可以提供年月日来构造特定的日期对象LocalDate.of(1999,12,31)
.使用对象变量接收这个对象:LocalDate newYearsEve = LocalDate.of(1999,12,31);
.int year = newYearsEve.getYear();
int month = newYearsEve.getMonthValue();
int day = newYearsEve.getDayOfMonth();
public class CalendarTest {
public static void main(String[] args) {
LocalDate data = LocalDate.now();
int month = data.getMonthValue();
int today = data.getDayOfMonth();
data = data.minusDays(today-1);
DayOfWeek weekday = data.getDayOfWeek();
int value = weekday.getValue();
System.out.println("Mon Tue Wed Thu Fri Sat Sun");
for (int i = 0; i < value; i++) {
System.out.print(" ");
while(data.getMonthValue()==month)
{
System.out.printf("%3d",data.getDayOfMonth());
if(data.getDayOfMonth()==today)
{
System.out.print("*");
}
else{
System.out.print(" ");
}
data=data.plusDays(1);
if(data.getDayOfWeek().getValue()==1) {
System.out.println();
}
}
if(data.getDayOfWeek().getValue()!=1)
{
System.out.println();
}
}
}
}
原文:https://www.cnblogs.com/acknowledge/p/12939949.html