皮皮安学习Java第十七天

写在前面

马上小程序作品就要交了,到现在还没动,不知道为什么,就不是很想动,加上今天宿舍断网,也没办法…(这借口也太不像话了)。这几天一直忙着学Java,想着快点把基本的全部学完,然后去找一下小项目练练手。今天总结的是这几天学的,可能有点多,也不是多,因为每天都学,加上没有总结,一直积累到现在…好了,不水了,看总结吧。

多日所学

六、其他类
1.Date
1.1简介
java.uitl.Date 表示日期
Java底层使用lang类型表示日期。
long类型的值表示当前日期的毫秒值。
这个毫秒值是基于“1970年0时0分0秒”的差值。(计算机纪元时间)

				Date类中有多个构造方法都是过时的,不建议使用。

1.2常用方法
		getTime()  获取毫秒值
		setTime()	  设置毫秒值
		after()		 判断某个日期在指定日期的之后
		before()     判断某个日期在指定日期的之前
		compareTo(b)    对两个日期的进行比较

1.3Date和String的转换
		使用java.text.SimpleDateFormat类,继承自DateFormat。
		格式化字符串,参考API文档中的SimpleDateFormat

		将日期转换为字符串
		//创建SimpleDateFormat对象,指定目标格式
		DateFormat df = new SimpleDateFormat(yyyy-MM-dd")
		//调用format()进行格式化
		String str = new df.format(date);

		将字符串转换为日期
		1.创建SimpleDateFormat对象,指定字符串的日期格式。
		2.调用parse()解析日期。

2.Calendar类
2.1简介
java.uitl.Calendar表示日历,用于日期的运算和取值。
Calendar是抽象类,不能new,使用静态方法getInstance()获取一个实例。

					创建一个Calendar实例
					Calendar c = new Calendar.getInstance();

				常用方法:
				getTime()   将Calendar转换为Date对象
				Date d = c.getTime();
				setTime()   设置时间指定的Date
				get()   获取日期指定的字段   c.get(Calendar .YEAR)
				set()    设置日期时间     c.set(2020.7.29)
				add()    添加时间   c.add(Calendar .YEAR,2)        //+2年
				clear()   清除时间
				getTimeInMillis()   获取对应时间的毫秒值。

3.Math类
java.lang.Math用于执行数学相关的运算。
round() 四舍五入
floor() 返回小于参数的最大整数.
ceil() 返回大于参数的最小整数.
pow() 求次方
abs() 取绝对值
random() 产生一个[0,1)的随机数.

4.Random类
nextInt 生成一个随机的整数。


枚举、泛型、内部类

1.简介
本质是一个类,是自定义的数据类型。
作用
用来限制可能取值个数。
降低出错几率。
提高代码的可读性,可扩展性。
应用场景:适用于有限个数的取值。

2.用法
使用envm关键字。
定义方式:
枚举类型中可以包含属性、方法、构造方法
构造方法必须是私有的,不允许在外部创建对象。
在内部创建枚举对象时必须位于类的第一行。
在内部创建枚举对象时本质是就是调用构造方法,如果调用的是无参构造方法,可以省略()
可以创建多个枚举对象,多个对象再见以逗号隔开。
枚举对象也称为枚举项,通过“枚举类型名.枚举项”的方式访问,同时不命名上所有字母大写。

二、泛型
1.简介
Generic Type泛型本质是参数化类型,所有操作的数据类型被指定为一个参数,在使用时确定此类型。
通俗的说:在定义时不知道具体的类型,在使用时要指定具体的类型,类似于参数,所以称为参数化类型。
分类:
泛型类
泛型接口
泛型方法

2.泛型类
表示类中有一个未知的类型
定义方式: public calss 类名 {}
T表示一种类型参数,是泛型的类型参数,可以使用任意标识,一般使用T、E、K、V等
可以在类内部使用下,表示一个对象的类型。
在使用类时需要在类后面通过<类型>指定具体的类型
类名<类型> 对象名 = new 类名<>()

3.泛型接口
表示接口中有一个未知的类型。
定义方式 public interface 接口名{ }
在使用接口时需要在接口后面通过<类型>指定具体的类型

4.泛型方法
表示方法中有一个未知的类型
定义方式 public 修饰符 返回值类型 方法名(){ }

	同泛型类
	在调用方法时指定具体的类型
	应用场景:如果和接口没有定义泛型,但是想在方法中使用泛型,此时可以该方法定义为泛型方法。

特性:
		泛型的类型参数必须是引用数据类型,不能是基本数据类型。
		泛型的类型参数可以有多个,即多个泛型参数。
		可以使用泛型通配符
				<?  extends  T>限定类型的上限,参数类型必须是T或T的子类。
				<?  super  T>限定类型下限,参考类型必须是T或T的下限。

三、内部类
1.简介
定义在另一个类里面的类,称为内部类 Inner Class
包含内部类的类称为外部类Outer Class

	分类:
			1.成员内部类
			2.局部内部类
			3.静态内部类
			匿名内部类(最常用)

2.用法
2.1成员内部类
1.在外部类中访问内部类,可以直接访问内部类所有成员,包含private修饰的变量。
在外部类的外面创建内部类对象语法:外部类.内部类 对象名= 外部类.new 内部类();
例如:Outer out = new Outer();
Outer.Inner in = out.new Inner();
根据外部类的对象创建内部类对象。

		2.在外部类外访问内部类,不能访问内部的private修饰的成员

		3.在内部类中访问外部变量,直接访问。

猜你喜欢

转载自blog.csdn.net/qq_46178251/article/details/106627136