包装类

包装类:

1、在进行类型转换的范畴内,有一种特殊的转换,需要将int这样的基本数据类型转换为对象;

2、所有基本类型都有一个与之对应的类,即包装类(wrapper)。

3、包装类是不可变类,在构造了包装类对象后,不允许更改包装在其中的值。

4、包装类是final的,不能定义他们的子类。

Number及其主要方法:

1、抽象类Number是Byte、Double、Float、Integer、Long和Short类的父类;

2、Number的子类必须提供将表示的数值转换为byte、double、float、int、long和short的方法:-doubleValue()以double形式返回指定的数值、-intValue()以int形式返回指定的数值。

3、Number是数值包装类的父类型,Number包含类型之间相互转换的方法。

public void testNumber() {
		Number d=123.45;
		Number n=123;
		//输出d和n对象所属的类型
		System.out.println(d.getClass().getName());//java.lang.Double
		System.out.println(n.getClass().getName());//java.lang.Integer
		
		//Number包含类型之间相互转换的方法。
		int intValue=d.intValue();//输出d的整数部分
		double doubleValue=d.doubleValue();//输出d的double类型的数据
		System.out.println(intValue+","+doubleValue);//123,123.45
		
		intValue=n.intValue();//输出n的int类型的数据
		doubleValue=n.doubleValue();//输出n的double类型的数据
		System.out.println(intValue+","+doubleValue);//123,123.0
	}

Integer常用功能:

1、该类提供了多个方法,能在int类型和string类型之间相互转换,还提供了一些常量,例如:

--static intMAX_VALUE:值为 -1的常量,表示int类型能表示的最大值

--static int MIN_VALUE:值为 的常量,表示int类型能表示的最小值

public void testInteger() {
		int max=Integer.MAX_VALUE;//static int MAX_VALUE:值为2^31-1的常量,表示int类型能表示的最大值
		int min=Integer.MIN_VALUE;//static int MIN_VALUE:值为-2^31的常量,表示int类型能表示的最小值
		System.out.println(max);
		System.out.println(min);
		
		//int不能进行越界计算,会出现溢出现象
		int n=max+1;//会出现溢出
		System.out.println(n);
	}

2、Integer的静态方法parseInt用于将字符串转换为int。

注意字符串的格式如果不是整数形式,将无法转换,例如:”abc”就无法使用parseInt方法,会抛出NumberFormatException异常

public void testParseInt() {
		String str="123";
		int value=Integer.parseInt(str);
		System.out.println(value);//123
		str="abc";
		value=Integer.parseInt(str);//抛出NumberFormatException异常,因为字符串的格式不是整数形式,将无法转换
		System.out.println(str);
	}
import java.util.Scanner;

public class DemoparseInt {

	public static void main(String[] args) {
		//从控制台输入一个假发表达式,要求验算是否正确
		//如:"100+200=200",需要符合输入的这个规则,使用正则表达式:\d+\+\d+=\d+
		//算法:
		//1、先拆分为["100","200","300"]
		//2、转换"100"->int n,"200"->int m
		//3、计算n+m与"300"->int k比较
		//  int k=Integer.parseInt("300");Integer的parseInt方法将字符串转换为int数值
		//4、如果一样就OK
		Scanner in=new Scanner(System.in);
		String rule="^\\d+\\+\\d+=\\d+$";//^表示以\d开头,$表示以\d结尾
		String str;
		
		do {
			System.out.println("输入表达式");
			str=in.nextLine();//输入字符串
		}while(!str.matches(rule));//如果输入的字符串不符合rule则重新输入
		
		String[] data=str.split("[\\+=]");//将字符串拆分存放在数组中["100","200","300"]
		
		int m=Integer.parseInt(data[0]);//将字符串转换为int类型
		int n=Integer.parseInt(data[1]);
		int k=Integer.parseInt(data[2]);
		
		if(m+n==k) {
			System.out.println("OK");
		}else {
			System.out.println("FALSE");
		}
	}
}

Double常用功能:

1、在Double类的对象中包装一个基本类型double的值

2、构造方法:

--Double(doublevalue)

--Double(Strings)

方法:

--doubledoubleValue():返回此Double对象的double值

--staticdouble parseDouble(String s):返回一个新的double值,该值被初始化为用指定的String表示的值。

3、parseDouble将String类型转换为Double类型。

public void testParseDouble() {
		String str="12345.00";
		double value=Double.parseDouble(str);//12345.0
		System.out.println(value);
	}

包装类总结:

1、提供了字符串的数据向基本类型转换的算法,这些算法是人类的输入与计算机处理的二进制之间的重要桥梁!

    比如:输入”123”转换为int 123就是利用Integer.parseInt()转换来的

    “3.14” ->double3.14    需要用Double.parseDouble()

    “true”->true           需要用Boolean.parseBoolean()

    …

    如果输入数据(字符串)格式有误,转换不会成功,还会抛出运行异常:NumberFormatException

2、还提供了将基本类型转换为String的方法,这个方法是用于输出基本类型的数据;

    如:inti=5340;

    String s=Integer.toString(i);//结果为”5340”,将整型转换为字符型

       再如:

           System.out.println(i);//就用到了Integer.toString(i)

3、其余的类型跟Integer都一样。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值