20200730-实用类介绍(一)——枚举、包装类和Math类

枚举

枚举指由一组固定的常量组成的类型,可以认为是类的变种 使用enum关键字定义;Modifier是访问修饰符;枚举常量之间用逗号分隔;枚举常量列表以分号结尾。 里面的直接写的值都是该类的公共静态常量,可以用类型.值的方式调用,可以和普通类一样定义属性和方法。 valueOf方法常用来将该类的枚举类型与字符串类型比较 枚举的好处:类型安全、易于输入、代码清晰
枚举的使用

public enum Week{//定义枚举类的方法
	//分别表示星期几
	MON,TUE,WED,THU,FRI,SAT,SUN
}
public class WeekDo{
	public void doWhat(Week day){
		//对用户输入的星期几,做一个条件判断,防止不合理赋值
		if(day>7||day<1){
			System.out.println("参数错误,必须在1-7之间!")
			return;
		}
		switch(day){
			case MON:
			case TUE:
			case MED:
			case THU:
			case FRI:
				System.out.println("工作日,好好工作!");
				break;
				case SAT:
				case SUN:
				System.out.println("休息日,好好休息");
				break;
		}
	}
	//测试类
	public class void main(String[]args){
		WeekDo week =new WeekDo();
		week.doWhat(Week.THU);
	}
}

运行结果:

工作日,好好工作!

包装类

包装类:对应每个基本数据类型,都有一个包装类与之对应 目的: 可以把基本数据类型转成对象 也可以把字符串转成相应的基本数据类型 泛型是不可以放基本数据类型,存放数字时,要用包装类型 包装类和基本数据类型的对应关系: bety:Bety short:Short int:Integer long:Long float:Float double:Double char:Character boolean:Boolean
包装类的两个作用:
使用和相应的方法;如集合无法存放基本数据类型,基本数据类型->包装类,放进去

在这里插入图片描述
所有的包装类都可以将与之对应的基本数据类型作为参数,来构造他们的实例

Integer i=new Integer(1);

除Character类外,其他包装类可将一个字符串作为参数构造它们的实例

Integer i=new Integer("123");

包装类及其构造方法:

public class Test2{
	public class void main(String []args){
		int iNum=9;
		Integer i=new Integer(iNum);
		double dNum=9.8;
		Double d=new Double(DNum);
		char cNum='c';
		Character c=new Character(cNun);
		float fNum=9.8f;
		Float f=new Float(FNum);
		boolean bNum=true;
		Boolean b=new Boolean(bNum);
		//(2)除Character以外,以字符串作为参数
		integer i2=new Integer("123");
		System.out.println(i2+1);//124,并非1231
		
	}
}
以Integer为例:几种赋值方法
	new Integer(整形)
	new Integer(字符串)
	Integer.valueOf(整形\字符串)
	Integer.parseInt(字符串)包装类和基本数据类型的转换
(1)基本数据类型转换为包装类
 基于基本数据类型数据创建包装类对象的两种方式:
	1、使用包装类的构造方法
    	包装类的两种构造方法形式:
        	a)public Type(type value);
            如:Integer i=new Integer(1);
        	b)public Type(String value);
            如:Integer i=new Integer("123");
注:
    1、Boolean类构造方法参数为String类型时,若该字符串内容为true(不考虑大小写),则该Boolean对象表示true,否则表示false
    2、当Number包装类构造方法参数为String 类型时,字符串不能为null,且该字符串必须可解析为相应的基本数据类型的数据,否则编译不通过,运行时会抛出NumberFormatException异常
    3、不能使用第二种形式的构造方法创建Character类型的包装类对象。只能是Character charValue=new Character('x');这种形式。 2、使用包装类的valueOf()方法
     a)所有包装类都有如下方法(基本类型->包装类)    
         public static Type valueOf(type value)
         如:Integer intValue = Integer.valueOf(21);
     b)除Character类外,其他包装类都有如下方法(字符串->包装类)        			public static Type valueOf(String s)     
        	如:Integer intValue = Integer.valueOf("21");注:Character类的valueOf()方法只有一个版本的定义,即valueOf(char c),它返回一个表示指定char值的Character对象。(2)包装类转换成基本数据类型
	包装类转换成基本数据类型常用方法:
    	public type typeValue();其中type指的是基本数据类型
        如:Integer integerId=new Integer(25);
        	int intId=integerId.intValue();
        	//Boolean类型的构造方法参数为字符串时,除了"true"(不区分大小写)之外的其他字符串,结果都为false;当Number类型的包装类构造方法参数是字符串的时候,字符串必须是能转换为Number的字符串,否则会NumberFormatException
        	//且字符串不能为null;

包装类的常用方法:

  1. xxxValue() 包装类转换成基本类型
Integer integerId=new Integer(25);
int intId =integerId.intVable(); 
  1. toString() 以字符串形式返回包装对象表示的基本类型数据(基本类型->字符串)
String sex=Character.toString('男');
String id=Integer.toString(25);
int num=100;
String sNum=Integer.toString(num);
//常用的方法
String sNum2=100+"";
  1. parseXXX() 把字符串转换为相应的基本数据类型数据(Character除外)(字符串->基本类型)
String age="18";
int ageNum=Integer.parseInt(age);
String score="98.5";
double score2=Double.parseDouble(score);
  1. vauleOf() (基本数据类型做参数: 基本类型->包装类 ),(字符串:字符串->包装类,除Character除外)
int j=90;
Integer j1=Integer.valueOf(j);
Char c ='男';
Character cSex=Character.valueOf(c);
String m="13";
Integer mi=Integer.valueOf(m);

装箱和拆箱
基本类型和包装类的自动转换

Integer intObject =5;//装箱
int intValue=intObject;//拆箱

Math

Math常见方法:

	ceil();//向上取整
	floor();//向下取整
	round();//四舍五入    注:float类型返回int类型,double类型返回long类型
	sqrt();//开根号
	static double abs(double a)//返回double值的绝对值
    	Math.abs(-3.5); //返回3.5  
	static double max(double a,double b)//:返回两个double值中较大的一个
    	Math.max(2.5, 90.5);//返回90.5
	static double random()//:返回一个随机的double值,该值大于等于0.0且小于1.0
	static int random()//:返回一个随机的int值
    	int random = (int) (Math.random() * 10); //生成一个0-9之间的随机数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值