VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Java教程 >
  • day17--Java常用类05

5.其他常用类

5.1Math类

java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double型。如果需要更加强大的数学运算能力,计算高等数学中相关内容,可以使用apache commons下面的Math类库。


 
package li.normalclass.other;
 
 
 
public class TestMath {
 
public static void main(String[] args) {
 
 
 
System.out.println(Math.PI);//PI
 
System.out.println(Math.random());//随机数
 
System.out.println(Math.abs(-5));//absolute 求绝对值
 
System.out.println(Math.floor(4.5));//向下取整 4.0
 
System.out.println(Math.ceil(4.5));//向上取整 5.0
 
System.out.println(Math.round(4.5));//四舍五入 5
 
System.out.println(Math.pow(2,5));//幂指数 2的5次方 32.0
 
System.out.println(Math.signum(-50.5));//判断符号-->负数返回-1.0
 
System.out.println(Math.signum(123));//整数返回1.0
 
System.out.println(Math.signum(0));//0返回0.0
 
System.out.println(Math.sqrt(25));//开方 5.0
 
 
 
}
 
}

5.2Random类

Math中虽然为我们提供了产生随机数的方法Math.random(),但是通常我们需要的随机数并不是[0,1)之间的double类型的数据,这就需要对其进行一些复杂的运算。如果使用Math.random()计算过于复杂的话,我们可以使用额外一种方式得到随机数,即Random类,这个类是专门用来生成随机数的,并且Math.random()底层调用的就是Random类的nextDouble()方法。

构造方法:

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

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

只要种子数和nextInt()中的参数一致的话,每次生成的随机数列都是一样的(伪随机数)

例子:


 
package li.normalclass.other;
 
 
 
import java.util.Random;
 
 
 
/*
 
Math.random()底层调用的就是Random类的nextDouble()方法
 
产生[0,1)之间的随机double数
 
*/
 
public class TestRandom {
 
public static void main(String[] args) {
 
//随机数的生成是从种子值开始。 如果反复使用同一个种子,就会生成相同的数字系列,
 
// 产生不同序列的一种方法是使种子值与时间相关
 
Random rand = new Random(System.nanoTime());
 
for (int i = 0; i < 10; i++) {
 
//System.out.println(rand.nextDouble());
 
System.out.println(rand.nextInt(20));//[0,20)
 
}
 
 
 
//生成一个从[10,20]的随机整数
 
//思路:即[10,21)----即[0,11)+10
 
for (int i = 0; i < 10; i++) {
 
System.out.println(rand.nextInt(11)+10);
 
}
 
 
 
}
 
}

5.3枚举

JDK1.5引入枚举类型。枚举类型的定义包括枚举声明和枚举体。枚举体就是放置一些常量。定义枚举要使用关键字enum关键字。对于性别、季节、星期几等内容,如果定义为字符串类型,是很难限制其取值的。采用枚举可以轻松解决该问题。

所有的枚举类型隐形地继承自java.lang.Enum。枚举类型实质上还是类!而每个被枚举的成员实质就是一个枚举类型的实例,它们默认都是pubilc static final 修饰的。可以直接通过枚举类型名使用它们

注意:

  • 当你需要定义一组常量时,尽量枚举类型
  • 另外尽量不要使用枚举的高级特性

例子:

  1. 定义枚举
  2. 变量定义为枚举类型
  3. 枚举变量的赋值

 
package li.normalclass.other;
 
 
 
//性别的枚举定义
 
public enum Gender {
 
男,女
 
}

 
package li.normalclass.other;
 
 
 
public class Person {
 
private String name ;
 
private Gender sex ;//变量定义为枚举类型
 
 
 
public Person() {
 
}
 
 
 
public Person(String name, Gender sex) {
 
this.name = name;
 
this.sex = sex;
 
}
 
 
 
public String getName() {
 
return name;
 
}
 
 
 
public void setName(String name) {
 
this.name = name;
 
}
 
 
 
public Gender getSex() {
 
return sex;
 
}
 
 
 
public void setSex(Gender sex) {
 
this.sex = sex;
 
}
 
 
 
@Override
 
public String toString() {
 
return "Person{" +
 
"name='" + name + '\'' +
 
", sex='" + sex + '\'' +
 
'}';
 
}
 
 
 
}

 
package li.normalclass.other;
 
 
 
public class Application {
 
public static void main(String[] args) {
 
// 使用枚举类来定义性别
 
Person person = new Person("张三",Gender.男);//枚举变量的赋值
 
System.out.println(person);
 
}
 
}
image-20220808173204518

例子2:


 
package li.normalclass.other;
 
 
 
public enum Season {
 
春,夏,秋,冬
 
}

 
package li.normalclass.other;
 
 
 
public class TestSeason {
 
public static void main(String[] args) {
 
//定义一个枚举变量
 
Season season ;
 
//给枚举变量赋值
 
season = Season.冬;
 
//switch
 
switch(season){
 
case 春:
 
System.out.println("踏青 放风筝 春意盎然");break;
 
case 夏:
 
System.out.println("吃西瓜 吃雪糕 夏日炎炎");break;
 
case 秋:
 
System.out.println("赏菊 登高 秋高气爽");break;
 
case 冬:
 
System.out.println("滑冰 打雪仗 寒冬腊月");break;
 
 
 
}
 
}
 
}
image-20220808174235379


出处:https://www.cnblogs.com/liyuelian/p/16563068.html

相关教程