内部类- 定义在类的内部的类, 根据位置分为4类
1) 静态内部类:使用static修饰,声明在类体中.静态内部类中可以访问外部类的静态成员。
2) 成员内部类: 声明在类体中,不使用static,具有类的成员特征.也就是,必须有类的实例才能创建内部类实例。内部类实例可以访问共享外部类的成员变量。很常用。
如:链表的节点就可以定义为内部类
3) 局部内部类:把类声明在方法中,就是局部内部类,作用域类似局部变量。很少见。
4) 匿名内部类,匿名类:非常常见,可以写在任何地方,就像一般的语句。
语法更象是创建对象:Date d = new Date(){};
匿名类是对原类的一个继承,同时创建了实例,{} 就是继承以后的类体。类体中可使用所有类的语法。
匿名类不能写构造器。
匿名类可以从抽象类或者接口继承,必须提供抽象方法的实现。
5) 任何内部类都编译成独立的class文件
6) 最大的作用:封装!封装内部概念:情侣间的土豆和菜市场的土豆是不一样的
时间日期
时间类的本质: Date = long + 操作
Calendar = long + 操作
时间的标准: (1970)GMT long (0)UTC long
1) java 中基本的时间表示 GMT long
2) Java提供了Date类型表示时间和日期,Date 是long类型的包装
3) Calendar 是历法的的抽象.
历法: 公历, 农历, 太阳历, ...
GregorianCalendar 是历法的实现, 采用公历(太阳历) 算法实现的.
Calender cal = Calender.getInstance();
4) Date 和 Calendar 的默认值就是当前时间
5) 时间的计算
Calendar 提供丰富的时间计算方法 add() set() 等
6) 日期的输入与输出,
日期输出: 的本质是 Date 转换为格式化的String
日期输入: 的本质是 将格式化的String转换为Date
java.text.SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
构建SimpleDateFormat 一般提供日期的格式 "yyyy-MM-dd" 具体参看 javadoc
如: "yyyy-MM-dd HH:mm:ss"
"yyyyMMdd"
"dd/MM/yyyy"
"MM/dd/yyyy"
fmt.parse(String)可以实现将(合法)字符串解析为日期类型, 经常用于处理日期输入.
fmt.format(Date) 可以把日期格式化为字符串用于输出处理.
1) 静态内部类:使用static修饰,声明在类体中.静态内部类中可以访问外部类的静态成员。
2) 成员内部类: 声明在类体中,不使用static,具有类的成员特征.也就是,必须有类的实例才能创建内部类实例。内部类实例可以访问共享外部类的成员变量。很常用。
如:链表的节点就可以定义为内部类
3) 局部内部类:把类声明在方法中,就是局部内部类,作用域类似局部变量。很少见。
4) 匿名内部类,匿名类:非常常见,可以写在任何地方,就像一般的语句。
语法更象是创建对象:Date d = new Date(){};
匿名类是对原类的一个继承,同时创建了实例,{} 就是继承以后的类体。类体中可使用所有类的语法。
匿名类不能写构造器。
匿名类可以从抽象类或者接口继承,必须提供抽象方法的实现。
5) 任何内部类都编译成独立的class文件
6) 最大的作用:封装!封装内部概念:情侣间的土豆和菜市场的土豆是不一样的
时间日期
时间类的本质: Date = long + 操作
Calendar = long + 操作
时间的标准: (1970)GMT long (0)UTC long
1) java 中基本的时间表示 GMT long
2) Java提供了Date类型表示时间和日期,Date 是long类型的包装
3) Calendar 是历法的的抽象.
历法: 公历, 农历, 太阳历, ...
GregorianCalendar 是历法的实现, 采用公历(太阳历) 算法实现的.
Calender cal = Calender.getInstance();
4) Date 和 Calendar 的默认值就是当前时间
5) 时间的计算
Calendar 提供丰富的时间计算方法 add() set() 等
6) 日期的输入与输出,
日期输出: 的本质是 Date 转换为格式化的String
日期输入: 的本质是 将格式化的String转换为Date
java.text.SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
构建SimpleDateFormat 一般提供日期的格式 "yyyy-MM-dd" 具体参看 javadoc
如: "yyyy-MM-dd HH:mm:ss"
"yyyyMMdd"
"dd/MM/yyyy"
"MM/dd/yyyy"
fmt.parse(String)可以实现将(合法)字符串解析为日期类型, 经常用于处理日期输入.
fmt.format(Date) 可以把日期格式化为字符串用于输出处理.