日期类:
java.util.Date
Date中的getTime返回的是从1970年1月1日到当前时间的毫秒数
使用SimpleDateFormat类来更改Date的格式。
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(sdf.format(date));
Format方法的返回值是String类型。
通常Date类中的过期的方法不建议使用,例如要返回当前时间的年份,使用GregorianCalendar类。
GregorianCalendar类中的getTime方法返回的是一个表示当前日期的Date对象。
反射:
概念:通过类的长名字(包名.包名.类名),加载类,并创建对象。
创建对象的方式有两种:
//1.使用new关键字来创建对象
// Person person = new Person();
// person.show();
//2.程序执行的时候并不知道具体的类是哪一个
//String c1 = 从文本框获取的,从数据库读取的,从文件读取的
String c = "com.bluedot.reflect.Person";
try {
Object o = Class.forName(c).newInstance();
Person p = (Person)o;
p.show();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
工厂模式:
设计一个创建对象的接口,同子类来决定创建哪一个类的实例,对象的创建延迟到子类。
工厂模式主要就是应用到对象的创建,它的可扩展性非常好。
java 日期类、反射、工厂模式 使用教程
package com.bluedot.factory.factoryModel;
public abstract class AbstractFactory {
public abstract T factory(Class c);
}
package com.bluedot.factory.factoryModel;
public class Factory extends AbstractFactory {
@Override
public T factory(Class c) {
AbstractProduct product = null;
try {
product = (AbstractProduct)Class.forName(c.getName()).newInstance();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return (T)product;
}
}
package com.bluedot.factory.factoryModel;
public abstract class AbstractProduct {
//执行一些公共的业务逻辑的方法
public void function(){
}
//抽象方法
public abstract void function1();
}
package com.bluedot.factory.factoryModel;
public class Product1 extends AbstractProduct {
@Override
public void function1() {
// TODO Auto-generated method stub
}
}
package com.bluedot.factory.factoryModel;
public class Product2 extends AbstractProduct {
@Override
public void function1() {
// TODO Auto-generated method stub
}
}