java常用类09_Math_UUID和枚举类

1.Math类

java.lang.Math提供了一系列的方法用于科学计算,而且都是静态的。

  • Math类的静态属性:

Math.PI圆周长与其直径的比率,也就是圆周率。

【示例】计算圆周长

// 半径
double radius = 5.0;
// 计算圆周长
double circumference = 2*Math.PI*radius;
// 圆周长:3.141592653589793
System.out.println("园周长:" + circumference);
  • Math类的静态方法:

Math.ceil():返回大于参数的最小整数(天花板取整)。

Math.floor():返回小于参数的最大整数(地板取整)。

Math.round():返回四舍五入的整数。

【示例】小数取整案例

// 地板取整
System.out.println(Math.floor(12.56)); // 输出:12.0
// 天花板取整
System.out.println(Math.ceil(12.56));  // 输出:13.0
// 四舍五入取整
System.out.println(Math.round(12.56)); // 输出:13

Math.max(data1, data2):返回两个数的最大值。

Math.min(data1, data2):返回两个数的最小值。

【示例】获取两个数的最值案例

// 获取两个数的最大值
System.out.println(Math.max(12.0, 5.0)); // 输出:12.0
// 获取两个数的最小值
System.out.println(Math.min(12.0, 5.0)); // 输出:5.0

Math.abs(data):取绝对值。

Math.pow(a, b):a的b次方幂。

Math.sqrt(double a):开平方根。

【示例】abs、pow和sqrt案例

// 取绝对值
System.out.println(Math.abs(-11.2)); // 输出:11.2
// a的b次方幂
System.out.println(Math.pow(2, 3));  // 输出:8.0
// 开平方根
System.out.println(Math.sqrt(9.0));  // 输出:3.0

Math.random(): 返回 0.0(包含) 到 1.0(不包含) 的随机数。

【示例】获取1到10之间的随机数

// 获取区间为[1, 10]的随机整数(方式一)
double num1 = Math.ceil(Math.random() * 10);
// 获取区间为[1, 10]的随机整数(方式二)
int num2 = (int)(Math.random() * 10 + 1);

我们还可以通过java.util.Random类提供的成员方法来获取一个随机整数,例如rand.nextInt(10)产生的是[0, 1]的随机整数。。

【示例】获取1到10之间的随机数

// 创建一个Random对象
java.util.Random random = new java.util.Random();
// 获取区间为[1, 10]的随机整数
int num = random.nextInt(10) + 1;

2.UUID类

UUID是通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件构建的标准,其目的是让分布式系统中的所有元素,都能有唯一的辨识信息,不需要通过中央控制端来做辨识信息的指定。它由一组32位数的16进制数字所构成。

【示例】Java中生成UUID方式

import java.util.UUID;
public class Test {
	public static void main(String[] args) {
		// 生成一个随机的UUID对象
		UUID uuid = UUID.randomUUID();
		// 把UUID对象转化为字符串
		String code = uuid.toString();
		System.out.println(code);
	}
}

3.枚举类

枚举(enum)类型是JDK1.5新增的特性,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示。

枚举类型的定义包括枚举声明和枚举体。格式如下:

enum 枚举名 {
    枚举体(常量列表)
}

枚举体就是放置一些常量,多个常量用逗号分隔。

【示例】创建枚举类型

enum Season {
    SPRING, SUMMER, AUTUMN, WINDER; 
}

enum的语法结构尽管和class的语法不一样,但是经过编译器编译之后产生的是一个class文件,所有的枚举类型隐性地继承自java.lang.Enum,枚举实质上还是类。而每个被枚举的成员实质就是一个枚举类型的实例,他们默认都是public static final修饰的(可以通过反编译查看)。

【示例】枚举的简单使用

// 枚举
enum Gender {
	MAN, WOMAN;
}
// Person类
class Person {
	// 姓名属性
	String name;
	// 性别属性:男或女。保证数据的安全性,选用枚举
	Gender sex;
	// 构造方法
	public Person(String name, Gender sex) {
		this.name = name;
		this.sex = sex;
	}
}
// 测试类
public class Test {
	public static void main(String[] args) {
		// 创建Person对象,并对属性赋值
		Person p = new Person("小明", Gender.MAN);
		// 输出:"name: 小明 sex: MAN"
		System.out.println("name: " + p.name + " sex: " + Gender.MAN);
	}
}

【示例】枚举遍历

enum Week {
	星期一, 星期二, 星期三, 星期四, 星期五, 星期六, 星期日;
}
// 测试类
public class Test {
	public static void main(String[] args) {
		// 遍历所有的枚举
		for(Week week : Week.values()) {
			System.out.println("week: " + week);
		}
	}
}

【示例】枚举在switch中的使用

enum Season {
    SPRING, SUMMER, AUTUMN, WINDER;
}
// 测试类
public class EnumDemo {
	public static void main(String[] args) {
		// 获取0到3之间的随机数
		int num = new java.util.Random().nextInt(4);
		System.out.println(num);
		// 根据随机数,得到枚举值
		Season season = Season.values()[num];
		switch(season) {
			// 在switch中Season.SPRING可以简写为SPRING
			case SPRING: 
				System.out.println("春天");
				break;
			case SUMMER: 
				System.out.println("夏天");
				break;
			case AUTUMN: 
				System.out.println("秋天");
				break;
			case WINDER: 
				System.out.println("冬天");
				break;
		}
	}
}

ps:如需最新的免费文档资料和教学视频,请添加QQ群(627407545)领取。

发布了92 篇原创文章 · 获赞 0 · 访问量 2589

猜你喜欢

转载自blog.csdn.net/zhoujunfeng121/article/details/104784453