day17--Java常用类05
Java常用类
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 修饰的。可以直接通过枚举类型名使用它们
注意:
- 当你需要定义一组常量时,尽量枚举类型
- 另外尽量不要使用枚举的高级特性
例子:
- 定义枚举
- 变量定义为枚举类型
- 枚举变量的赋值
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);
}
}

例子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;
}
}
}

day17--Java常用类05的更多相关文章
- Java基础 —— Java常用类
Java常用类: java.lang包: java.lang.Object类: hashcode()方法:返回一段整型的哈希码,代表地址. toString()方法:返回父类名+"@&quo ...
- Java常用类之要点总结
Java常用类之要点总结
- Java常用类:包装类,String,日期类,Math,File,枚举类
Java常用类:包装类,String,日期类,Math,File,枚举类
- Java常用类学习笔记总结
Java常用类 java.lang.String类的使用 1.概述 String:字符串,使用一对""引起来表示. 1.String声明为final的,不可被继承 2.String ...
- Java 常用类总结(SE基础)
本篇博客对java常用类相关知识进行了归纳总结,比较详细,适用于学习和复习. 1. 字符串相关的类 1.1 String String是一个final类,代表不可变的字符序列.不可被继承. Strin ...
- Java常用类的使用
Java常用类 1. Optional 在我们的开发中,NullPointerException可谓是随时随处可见,为了避免空指针异常,我们常常需要进行 一 些防御式的检查,所以在代码中常常可见if( ...
- 第十四章 Java常用类
14.常用类 14.1 字符串相关的类 1课时 14.2 JDK 8之前时间日期API 1课时 14.3 JDK8中新时间日期API 1课时 14.4 JDK8中的Optional类 1课时 14.5 ...
- Java常用类详解
目录 1. String类 1.1 String的特性 1.2 String字面量赋值的内存理解 1.3 String new方式赋值的内存理解 1.4 String 拼接字面量和变量的方式赋值 1. ...
- Java常用类之String类、Stringbuffer和Random类练习
定义一个StringBuffer类对象, 1)使用append方法向对象中添加26个字母,并倒序遍历输入 2)删除前五个字符 package 第十一章常用类; /** * 定义一个StringBuff ...
- java常用类-上
一,常用类之一包装类 java开发中习惯把八大基本数据类型封装到一个类中,并提供属性和方法,更方便的操作基本数据类型. 包装类的出现并不是用于取代基本数据类型,也取代不了. 包装类位于java.lan ...
随机推荐
- 面向对象之trait
面向对象之trait 场景 一个web站点,它有很多不同的类:用户(User).页面(Page).联系表单(ContactFrom)等.我们可能需要在每个类中添加一个方法的定义,但是这样的话就会造成不 ...
- Vulkan学习苦旅02:看不见的窗口(创建VkInstance与VkSurfaceKHR)
在上一节中,我们搭建了学习Vulkan所需的环境.今天,我们将会初步了解"地图"顶层的内容. 如图所示,"地图"的顶层有两个模块: Instance和Surf ...
- C++对象之谜(封装篇)
这篇博客简要记录下C++对象的相关内容,以便回顾时使用. C++类的定义 我们使用C++定义一个矩形(Rectangle)类,它的基本属性有:长(width),宽(width), 对矩形的基本操作有: ...
- vue 导出多页pdf, window.print()实现
如果你对分页打印没思路,而网上的现成方案又不适合,不妨进来看看,也许会对你有帮助. 由于工作环境是局域网,对于插件的安装有限制,所以排除了jspdf + html2canvas的实现方式:采用wind ...
- 【Unity3D】绘制物体表面三角形网格
1 仅绘制三角形网格 1)创建游戏对象 创建一个空对象,重命名为 Grid,并在其下添加需要绘制网格的对象,如下: 场景显示如下: 2)添加脚本组件 GridController. ...
- Function与Object
Function与Object JavaScript中内置了两个顶级对象Function.Object,Object是所有对象的基类,而所有的构造函数同时又是Function对象的实例. Object ...
- Vue+SpringBoot+ElementUI实战学生管理系统-9.教师管理模块
1.章节介绍 前一篇介绍了班级管理模块,这一篇编写教师管理模块,需要的朋友可以拿去自己定制.:) 2.获取源码 源码是捐赠方式获取,详细请QQ联系我 :)! 3.实现效果 教师列表 修改教师 4.模块 ...
- Spring Boot图书管理系统项目实战-11.检索图书
导航: pre:10.借还统计 next: 只挑重点的讲,具体的请看项目源码. 1.项目源码 需要源码的朋友,请捐赠任意金额后留下邮箱发送:) 2.页面设计 2.1 index.html <!D ...
- cf796部分题解
C. Manipulating History 题意:给出一些字符串,有原始串(只含一个字符的串).被替换的串.替换串. 最终串(最后一行),求原始串. 2 a ab b cd acd Initial ...
- 编译静态库遇到的 LNK2019 报错
前文提到了 CMake 学习 文末基本涵盖了我遇到的编译问题,但是在得到一个编译好的 .lib 文件后,还需要放到项目中引用成功后才算真正的完成静态库的编译 嗯,我之所以说这些是因为我在项目中链接静态 ...