二)抽象类:所谓抽象类就是不能被实例化的类,如果要创建抽象类的实例就必须实现方法的重写eg: public abstract class Elployee{}声明一个抽象类。声明一个抽象方法eg: public abstract double computepay();将一个方法声明为抽象方法有两个结果:一是如果一个类包含了抽象方法,那么该类也必须是抽象的;二是任何子类必须重写抽象方法,除非子类本身也是抽象的。
三)接口:eg:public interface 接口名{任意数量的成员变量和抽象方法声明} 接口默认是抽象的、接口中的每一个方法默认也是抽象的、接口中的方法默认访问级别是public。类实现接口时有两个选择:实现接口中定义的所有方法;声明自己为抽象类。Eg: public class 类名 extends 父类名 implements 接口名,接口名{}(类用关键字implements来实现接口,接口可实现多继承,一个类可以实现多个接口,接口之间用逗号隔开)。
四)异常(检查异常、运行时异常、错误):对于异常的处理,有三种选择:捕获这个异常,不让它沿着调用栈继续向下抛出;捕获这个异常,并继续向下抛出;不捕获这个异常。捕获异常方法:try{被保护的代码}catch(异常的名称){捕获块}。声明一个异常:public void deposit (double amout) throws RemoteException。抛出一个异常:throw new ArrayIndexOutOfBoundsException(数组索引越界)。
使用java.util.Calendar的get(int Field) 很容易知道哪天是周几
java.text.SimpleDateFormat fm = new java.text.SimpleDateFormat("yyyy-MM-dd")java.util.Calendar cal=java.util.Calendar.getInstance()
cal.setTime(fm.parse("2014-10-01"))
int m=cal.get(java.util.Calendar.MONTH)
while(true){
System.out.println(cal.getTime()+"是 "+cal.get(java.util.Calendar.DAY_OF_WEEK))
cal.add(java.util.Calendar.DAY_OF_MONTH, 1)
if(cal.get(java.util.Calendar.MONTH)!=m){
break
}
}
//7是星期日、6是星期6、。。。。。。。
获取月第一个周一、从当月第一天开始找第一个周一时间与sourceTime[传入时间对比],sourceTime在第一个周一时间之前表示属于上月的
sourceTime与第一个周一时间差,在以7天计算