当前位置: 首页 > news >正文

【JavaSE】实用类——枚举类型、包装类、数学类

目录

  • Java API
  • 枚举
    • 优势
    • 代码示例
  • 包装类
    • 作用
    • 包装类和基本数据类型的对应关系
      • 包装类的构造方法
      • 包装类的常用方法
      • 装箱和拆箱
    • 留一个问题大家猜猜看
    • 包装类的特点
  • Math类
  • Random类
    • 代码示例

Java API

  • Java API(Java Application Programming Interface)
    即Java应用程序编程接口,它是运行库的集合,预先定义了一些接口和类,程序员可以直接使用已经打包的接口和类做具体的应用。
  • 除了“应用程序编程接口”的意思外,API也称为帮助文档
    Java语言的强大之处在于它提供了多种多样的类库,从而大大提高了程序编程的效率和质量。
    在这里插入图片描述

枚举

优势

  • 枚举可以使代码易于维护,保证类型安全
  • 枚举易于输入,使用枚举赋值,只需要输入枚举名,然后输入点操作符就能将所有的值显示出来。
  • 枚举使代码更清晰,允许使用描述性的名称表示数据,使用时直观方便

相当于给了你固定几个选项,从中选择一个,而不让你随意给变量赋值,随意给方法传参,这样保证数据的安全性、准确性和合法性

代码示例

一周的索引、名称、状态

public enum WeekEnum {Mon(1,"星期一","忙Day"),Tue(2,"星期二","求死Day"),Wed(3,"星期三","未死Day"),Thur(4,"星期四","社死Day"),Fri(5,"星期五","福来Day"),Sat(6,"星期六","塞车Day"),Sun(7,"星期日","丧Day");private int index;private String name;private String value;WeekEnum(int index, String name, String value) {this.index = index;this.name = name;this.value = value;}public int getIndex() {return index;}public String getName() {return name;}public String getValue() {return value;}
}

根据传入的星期几获取当天的状态

public class WeekDemo {private String day;private String status;public WeekDemo(WeekEnum weekEnum) {this.day = weekEnum.getName();this.status = weekEnum.getValue();}public void showStatus(){System.out.println(day+":"+status);}
}

测试

 		WeekDemo weekDemo = new WeekDemo(WeekEnum.Sun);weekDemo.showStatus();

包装类

  • Java语言是面向对象的,但是Java中的基本数据类型却不是面向对象的,这在实际开发中存在很多的不便。为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类,称为包装类。
  • 每个基本类型在java.lang包中都有一个相应的包装类

作用

  • 提供了一系列实用的属性和方法,方便对象的操作。
  • 集合不允许存放基本数据类型数据,存放数字时,要用包装类型。

包装类和基本数据类型的对应关系

在这里插入图片描述

包装类的构造方法

  • 所有包装类都可将与之对应的基本数据类型作为参数,来构造它们的实例
  • 包装类的构造方法有两种形式
    1.public Type(type value),Type表示包装类,参数type为基本数据类型。Integer i=new Integer(520);
    2.public Type(String value),除Character类外其他包装类可将一个字符串作为参数构造它们的实例,Type表示包装类,参数type为基本数据类型。Integer i=new Integer(“520”);
  • Boolean类构造方法参数为String类型时,若该字符串内容为true(不考虑大小写),则该Boolean对象表示true,否则表示false
  • 当包装类构造方法参数为String 类型时,字符串不能为null,且该字符串必须可解析为相应的基本数据类型的数据,否则编译通过,运行时NumberFormatException异常

包装类的常用方法

  1. 所有包装类都有如下方法:public static Type valueOf(type value)
Integer i=Integer.valueOf(520);
  1. 除Character类外,其他包装类都有如下方法:public static Type valueOf(String value)
Integer i=Integer.valueOf(“520”);
  1. XXXValue()方法:包装类转换成基本类型
	Integer num=new Integer(20);int age=num.intValue();

在这里插入图片描述

  1. 所有包装类都有如下方法(Character类除外!)
    public static 基本数据类型 parseXXX(String value)
byte b=Byte.parseByte("125");
short s=Short.parseShort("3256");
int num=Integer.parseInt("36");
long l=Long.parseLong("123456789");
float f=Float.parseFloat("3.14");
final double PI=Double.parseDouble("3.14159");
boolean bool=Boolean.parseBoolean("false");

parseXXX()方法的作用:把字符串转换为相应的基本数据类型数据

  1. toString()方法:以字符串形式返回包装对象表示的基本类型数据
byte bt=12;
String b=Byte.toString(bt);
short sh=25;
String s=Short.toString(sh);
String num=Integer.toString(520);
String l=Long.toString(123456789l);
String f=Float.toString(3.14f);
String PI=Double.toString(3.1415926d);
String bool=Boolean.toString(false);

装箱和拆箱

Java 5.0版本以后,程序员不需要编码实现基本数据类型和包装类之间的转换,编译器会自动完成

  • 装箱:基本类型转换为包装类的对象
  • 拆箱:包装类对象转换为基本类型
Integer intObj=5;       //装箱
int intValue=intObj;    //拆箱

留一个问题大家猜猜看

		Integer c = 100;Integer d = 100;System.out.println(c == d);Integer a = 128;Integer b = 128;System.out.println(a == b);

输出结果是什么呢?

包装类的特点

  • 所有包装类都是final类型,不能创建它们的子类
  • Java 5.0版本以后,程序员不需要编码实现基本数据类型和包装类之间的转换,编译器会自动完成。
  • JDK1.5后,允许基本数据类型和包装类型进行混合数学运算。
  • 包装类并不是用来取代基本数据类型的,在基本数据类型需要用对象表示时使用

Math类

Math类提供了常用的数学运算方法和两个静态常量E(自然对数的底数)和PI

在这里插入图片描述

Random类

Random类:用于生成伪随机数流
在这里插入图片描述

代码示例

public class Lucky {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String numStr = null;String patten = "[0-9]+";Random random = new Random();int randomNum = random.nextInt(10);do {System.out.println("请输入四位会员号:");numStr = sc.nextLine();if (!Pattern.matches(patten, numStr) || numStr.length() != 4) {System.out.println("您输入的字符不合法,请重新输入:");}} while (!Pattern.matches(patten, numStr) || numStr.length() != 4);int num = Integer.parseInt(numStr);int centenary = (num / 100) % 10;System.out.println("您" + ((centenary == randomNum) ? "是" : "不是") + "幸运会员,随机数字为:" + randomNum + ",您的会员号百位为:" + centenary);}
http://www.lryc.cn/news/306963.html

相关文章:

  • Qt中常见的JS类和函数(二): 全局对象
  • mysql 安装 与 使用
  • 2月26日做题总结(C/C++真题)
  • 创作纪念日:记录我的成长与收获
  • 全志H713/H618方案:调焦电机(相励磁法步进电机)的驱动原理、适配方法
  • excel数据导入到数据库的方法
  • Runaway Queries 管理:提升 TiDB 稳定性的智能引擎
  • K8S部署Java项目(Gitlab CI/CD自动化部署终极版)
  • 对Redis锁延期的一些讨论与思考
  • 【高德地图】Android高德地图初始化定位并显示小蓝点
  • 继电器测试中需要注意的安全事项有哪些?
  • Java向ES库中插入数据报错:I/O reactor status: STOPPED
  • vue3实现页面跳转
  • 【Linux运维系列】vim操作
  • Centos服务器部署前后端项目
  • 【初始RabbitMQ】延迟队列的实现
  • spark为什么比mapreduce快?
  • Unity通过XXpermission插件获取MANAGE_EXTERNAL_STORAGE权限
  • 「连载」边缘计算(二十一)02-26:边缘部分源码(源码分析篇)
  • Unity(第四部)新手组件
  • 【JS】【Vue3】【React】获取鼠标位置的方法:JavaScript、Vue 3和React示例
  • [Docker 教学] 常用的Docker 命令
  • 小程序应用、页面、组件生命周期
  • Springboot中如何记录好日志
  • vm 虚拟机中ubuntu环境配置共享文件夹的方式
  • EMQX Enterprise 5.5 发布:新增 Elasticsearch 数据集成
  • 安全架构设计理论与实践
  • SQL注入漏洞解析--less-46
  • 【算法与数据结构】回溯算法、贪心算法、动态规划、图论(笔记三)
  • 【pytorch】常用代码