黑马程序员--基本数据类型包装类

http://edu.csdn.net/heima android培训 http://edu.csdn.net/heima ; java培训期待与您交流!

1、 基本数据类型对象包装类。有8

为什么要将基本数据类型封装成对象:

想要对基本数据类型数据进行更多的操作,最方便的方式就是将其封装成对象。因为在描述对象中就可以定义更多的属性和行为读基本数据类型进行操作。

       除了整形和字符型对象不同名,其他基本数据类型对象,跟基本数据类型同名。

       int     Integer

       char    Character

2、包装类好处:可以将基本数据类和字符串之间进行转换,同时提供了更多对基本数据类型操作的方法。

3Integer

       字段:

              static int MAX_VALUE 表示int类型最大取值范围。

              static int MIN_VALUE 表示int类型最小取值范围。

该类提供了多个方法,能在int类型和String类型之间转换。

4、基本数据类型转成--字符串。(有三种方式)

       1、包装类中的方法:static String toString(基本类型):将传入的数据变成字符串。

       2String类中的方法:static valueOf(基本类型)

       3、基本类型数据+""

5、字符串-->基本类型(重点掌握)

       方法格式:

              基本类型 parse基本类型名(是基本类型格式的字符串)

              Integer parseInt("是基本类型格式的字符串"); //参数只能是指定格式的字符串,如果不是,会抛NnmberFormatExeption 数据格式异常。         

              注意:八个包装类中只有Character没有这个方法。

6Integer对象,进制转换。

       注意:除了十进制,其他进制的表现形式为String

       十进制-->其他进制。

              二进制:static String toBinaryString(int);

              十六进制:static String toOctalString(int);

              八进制:static String toOctalString(int);

 

              Integer.toString(6,2);将6转成2进制数。

       其他进制-->十进制。

              int parseInt(intString,radix);

              例:Integer.parseInt("110",10));表示11010进制数。

7、基本数据类型值和基本数据类型对象之间的转换。

基本数据类型值-->基本类型对象。

       1、使用构造方法,即可接收基本数值,也可以接收基本数值型的字符串形式

              Integer(int value);

              Integer(String s);

       2、也可以使用基本类型对象中的方法。

                     static Integer valueOf(int);

基本类型的对象-->基本类型数值。

       int intValue();

       long longValue();等。

8、判断相同和比较大小:

1、判断相同:

       equals()方法:Integer覆盖了Object类中的equals方法。结果:falseture

       建立了自己的比较方式,对象中的整数相等极为对象相同。

2、比较大小:

       compareTo() 结果:-1,0,1

              当比较的结果有三种情况时:大(-1),小(1),相等(0)。那么返回值类型为int

              Comparable接口。

                     Comparable接口中的compaeTo方法。

              对象想要进行比较功能,只要实现Comparable接口即可。  

              基本数据类型用运算符进行比较。

              引用数据类型用ComparaTo方法进行比较。

9、包装类JDK1.5后的新特性。

1、包装类对象创建的简化写法:

       Integer i = 5;自动装箱。自动玩成对象创建。

       i = i + 5;=右边的i会先转成基本数据值(自动拆箱),然后再和5进行加法运算。

              =号右边运算完的结果,再自动装箱变成Integer对象赋给i

              自动调用intValue方法自动拆箱

       简化的弊端:多具备一个null值,要使用自动拆箱装箱时,建议进行null值健壮性判断(Integer x = null)。

       注意:Boolean b = ture; boolean b = ture;的区别?

2、在jdk1.5后自动转向中。

       如果数值在byte类型范围内。如果该对象数值重复出现,多个引用指向同一个对象Integewr对象。

       但如果超出byte范围,都会生成新的Integer对象。

3、参数传递Object可以接收所有数据类型,只不过基本数据类型值,在传递前会先转成基本数据包装类对象。自动装箱。

综合练习:

       "34 9-7 12 67 25"要求对这个字符串中的数值进行从小到大的排序。

       然后生成一个数值有序的字符串。

publicclass WrapperTest2 {

    privatestaticfinal String SPACE = " ";

    publicstaticvoid main(String[] args) {

       /*

        * 思路:

        *      1、看到排序,就想到了数组。

        *      2、数组中的元素怎么获取?数值都在字符串中。

        *      3、先从这个字符串中获取到这些具体的数值,怎么获取?

        *      4、发现这个字符串居然有规律,数值之间都是有空格隔开的。

        *         可以对字符串进行切割。

        *      5、将获取的数据存到数组中并排序,再将数组转成字符串就可以了。

        * 步骤:

        *      1、将字符串切割成的字符串数组。split

        *      2、定义一个int数组将字符串数组中的元素转成整数存到int数组中。

        *      3、对int数组排序。

        *      4、将int数组排序后转成一个字符串。

        */

       String str = "34 9 -7 12 67 225";

       str = sortStringNumber(str);

       System.out.println(str);

    }

    publicstatic String sortStringNumber(String str){

       //1、将字符串中的数值通过制定的规则进行切割获取字符串数组。

       String[] str_nums = toStringArray(str);

       //2、将字符串数组转成int数组。

       int[] nums = toIntArray(str_nums);

       //3、对int数组排序。

       sortIntArray(nums);

       //4、将int变成字符串。

       return arrayToString(nums);

    }

    /*

     * int数组变成字符串。

     */

    privatestatic String arrayToString(int[] nums){

       //1、创建字符串缓冲区。

       StringBuilder sb = new StringBuilder();

       for(int i=0;i<nums.length;i++){

           if(i!=nums.length-1){

              //SPACE是一个空格,用一个常量表示。

              sb.append(nums[i]+SPACE);

           }else{

              sb.append(nums[i]);

           }

       }

       return sb.toString();

    }

   

    /*

     * 将字符串数组转成int数组。

     */

    privatestaticint[] toIntArray(String[] str_nums){

       //1、先定义一个int数组。

       int[] arr = newint[str_nums.length];

       //2、对字符串数组进行遍历。

       for(int i=0;i<str_nums.length;i++){

           arr[i] = Integer.parseInt(str_nums[i]);

       }

       return arr;

    }

    privatestaticvoid sortIntArray(int[] nums){

       Arrays.sort(nums);

    }

    privatestatic String[] toStringArray(String str) {

       return str.split(SPACE);

    }

 

}


http://edu.csdn.net/heima android培训 http://edu.csdn.net/heima ; java培训期待与您交流!详细请查看http://edu.csdn.net/heima

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想飞的鱼20

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值