第十七篇(实用类(一)) :《据说是:“当今社会最有前途!最值得学习的语言!”》让我们来了解一下这是什么样的一种语言!

实用类(一)

前言:

枚举:
枚举是JDK5引入的新特性。在某些情况下,一个类的对象是固定的,就可以定义为枚举。在实际使用中,枚举类型也可以作为一种规范,保障程序参数安全。枚举有以下特点:

  • Java中枚举和类、接口的级别相同。
  • 枚举和类一样,都有自己的属性、方法、构造方法,不同点是:枚举的构造方法只能是private修饰,也就无法从外部构造对象。构造方法只在构造枚举值时调用。
  • 使用enum关键字声明一个枚举类型时,就默认继承自Java中的 java.lang.Enum类,并实现了java.lang.Seriablizable和 java.lang.Comparable两个接口。
  • 所有的枚举值都是 public static final 的,且非抽象的枚举类不能再派生子类。
  • 枚举类的所有实例(枚举值)必须在枚举类的第一行显式地列出,否则这个枚举类将永远不能产生实例。
  • 判断枚举是否相同时,使用 == 和 equals 是一样的。

1. 掌握枚举的使用

常见的用法

1.常量:
把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。(enum)枚举类

在这里插入图片描述
2.向枚举中添加新方法
如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且 Java 要求必须先定义 enum 实例。

在这里插入图片描述

3.覆盖枚举的方法
下面给出一个toString()方法覆盖的例子。

在这里插入图片描述
4.创建测试类,直接创建对象、赋值,并输出打印结果
在这里插入图片描述

2. 掌握包装类的使用

  1. 基本数据类型没有函数,所以在当你需要对基本数据类型进行函数操作时,那么可以使用对应的包装类型。
  2. 集合泛型要求数据类型必须是包装类型。

包装类都是在java.lang包中。
在这里插入图片描述
包装类型如下(首字母大写,就有两个不太相同):
byte Byte

short Short

int Integer

long Long

float Float

double Double

boolean Boolean

char Character

包装类型的常用API

  1. 包装类型的创建
	// 给构造传输一个对应的基本数据类型值
	Integer integer = new Integer(10);
	// 给构造传输一个字符串类型的值  但是字符串中的内容必须能够转换为对应的包装类
	Integer integer2 = new Integer("10");
	System.out.println(integer);
	System.out.println(integer2);
  1. 包装类型的转换(直接利用函数将基本数据类型值 转换为 包装类型)
	// 可以通过静态函数  valueOf 将基本数据类型值转换为包装类型
	Integer valueOf = Integer.valueOf(10);
	Character valueOf2 = Character.valueOf('h');
  1. 包装类型转换 -> 基本数据类型
	Integer integer = Integer.valueOf(10);
	// 利用xxxValue() 可以将包装类型转换为对应的基本数据类型
	int intValue = integer.intValue();
  1. 字符串 -> 基本数据类型/包装类型 (我们在网络数据传输中,你的数据表层会转换为字符串,服务器在接收时就是一些字符串而已,但是你也知道字符串对于有些数据的操控并不是太方便,所以需要进行转换)
		String value = "10";
		// 可以将字符串转换为对应的基本数据类型
		int parseInt = Integer.parseInt(value); // 【常用】
		// 可以将字符串转换为对应的包装类型
		Integer valueOf = Integer.valueOf(value); // 【常用】
  1. 基本/包装类型 -> 字符串
	int a = 10;
	// 凡是与字符串用+号拼接的都成为了字符串
	String b = a +"";
	// 将基本数据类型转换为字符串
	String string = Integer.toString(a);
		
	// 将包装类型转换为字符串
	Integer c = Integer.valueOf(a);
	String string2 = c.toString();  // 【常用】

拆箱和装箱

“拆箱”:包装类型转换为基本数据类型

“装箱”:基本数据类型转换为包装类型

JDK5之后,Java支持了自动拆箱和装箱。

	Integer a = 10; // 装箱
	int b = a; // 拆箱

包装类和基本数据类型的使用注意事项

1.包装类是引用数据类型 所以它可以接收null值,而基本数据类型不可以。

		public class Student{
		    // private Integer id;
		    private Long id;
		}
  1. 包装类型不是用来替代基本数据类型的,而是用来弥补基本数据类型无法使用函数的问题。

    基本数据类型可以用==比较值内容。
    
    包装类型默认值为null,而基本数据类型默认值为0 false等等。
    
  2. 但是在数据参数传递时,大多数情况基本和包装可以混淆使用。

3. Math和Random类

Math数学类

在这里插入图片描述
在这里插入图片描述

	// 圆周率  自然底数
	// 求两者中的最小值
	int min = Math.min(10, 9);
	System.out.println(min); // 结果为:9
	
	int max = Math.max(10, 9);
	System.out.println(max); // 结果为:10
	
	// 求绝对值
	int abs = Math.abs(-10);
	System.out.println(abs); // 结果为:10
	
	// 求幂运算  2的3次方
	double pow = Math.pow(2, 3);
	System.out.println(pow); // 结果为:8
	
	// 四舍五入
	long round = Math.round(10.5);
	System.out.println(round); // 结果为:11
	
	// 向上取整
	double ceil = Math.ceil(10.2);
	System.out.println(ceil); // 结果为:11
	// 向下取整
	double floor = Math.floor(10.8);
	System.out.println(floor); // 结果为:10
	
	// 开平方
	double sqrt = Math.sqrt(4);
	System.out.println(sqrt); // 结果为:2
	
	// 求随机数 [0.0,1.0)
	double random = Math.random();
	// 求范围内的随机整数[min,max)
	// (int)(Math.random() * (max - min)) + min

Random随机数类

例如:随机生成1~100之间的一个整数

   int randomNumber = (int)(Math.random() * 100) + 1;
   System.out.println(randomNumber);

这是直接使用Math.random()方法生成随机数的方法。

还有使用Random类的方法。

Random():创建一个新的随机数生成器。

Random(long seed):使用单个 long 种子创建一个新的随机数生成器。

  1. 第一种构造方法是使用默认当前系统时间的毫秒数作为种子数:Random r1 = new Random();
	Random random = new Random();
	int randomNumber1= random.nextInt(100);
  1. 第二种方法是使用自己指定的种子数
	Random random1 = new Random(100);
	for(int i = 0; i < 10; i++){
	System.out.print(random1.nextInt(10) + " ");
	}

发现只要种子数和nextInt()中的参数一致的话,每次生成的随机数都是一样的(所以这是伪随机数)。

	System.out.println("\n使用同一种子生成的随机数如下:");
	Random random2 = new Random(100);
	for(int i = 0; i < 10; i++){
	System.out.print(random2.nextInt(10) + " ");
	}

截图如下:
在这里插入图片描述
Random随机数类引用于:https://www.cnblogs.com/liaoxiaolao/p/7894664.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值