zoukankan      html  css  js  c++  java
  • 12.JAVA-基本数据类型的包装类操作

    1.基本数据类型的包装类

    java是一个面向对象编程语言,也就是说一切操作都要用对象的形式进行.但是有个矛盾:

    • 基本数据类型(char,int,double等)不具备对象特性(不携带属性和方法)

    这样非面向对象的基本数据类型,由于没有附带对象方法,比如没有toString(),则会给用户带来非常不便.

    所以从JDK1.0开始,JAVA专门给出了8种基本数据类型的包装类,如下所示:

    类型

    基本数据类型名

    对应的包装类名

    布尔型

    boolean

    Boolean

    字符型

    char

    Character

    短整型

    short

    Short

    整型

    int

    Integer

    长整型

    long

    Long

    单精度浮点型

    float

    Float

    双精度浮点型

    double

    Double

     

    2.包装类之String转换操作

    在基本数据类型的8个包装类中,一共有7个类都定义了XXX(String s)构造方法和parseXxx(String s)方法,它们功能就是实现将字符串变为指定XXX类型的数据,只有Character类没有,因为它本身就是字符类,

    并且所有包装类,都实现了toString()方法

     

    3.包装类的装箱和拆箱操作

    • 装箱操作 : 将基本数据类型变为包装类
    • 拆箱操作 : 将包装类中的数据取出到基本数据中

    Ps: java包装类提供自动装箱和自动拆箱机制,能够直接对包装类对象进行数学计算

    示例-double与Double之间的操作

             //手动装箱
             Double obj1 = new Double("1.234");
             Double obj2 = new Double(1.234);
    
             System.out.println(obj1.equals(obj2));    //打印true
             System.out.println(obj1==obj2);           //打印false,因为obj1和obj2的地址不同
             System.out.println(obj1*2);               //直接进行数学计算, 打印2.468
    
             //自动装箱
             Double obj3 = 12.3;                         //等价于Double obj2 = new Double(12.3);
    
             //自动拆箱
             double d = obj3;                      //d = 12.3
    
             //手动拆箱
             d = obj3.doubleValue() ;         //d = 12.3

    4.利用Object类来接收所有包装类

    由于包装类的超类都是Object,所以我们可以通过Object参数,便能实现所有包装类的一致性

    示例如下:

    public class Test
    {
             public static void print(Object obj)  //打印所有包装类的信息
             {
                      System.out.println(obj.toString());
             }
    
             public static void main(String args[]){
                      Boolean obj1 = true;
                      Integer obj2 = 10;
                      Double  obj3 = 1.234;
               
                      print(obj1);
                      print(obj2);
                      print(obj3);
             }
    }

    未完待续

  • 相关阅读:
    loj#2049. 「HNOI2016」网络(set 树剖 暴力)
    创建多个Oracle数据库及相应的实例
    [置顶] lua 进阶3--lua文件中调用C++函数
    android 设置Button或者ImageButton的背景透明 半透明 透明
    struts2 18拦截器详解(七)
    《Linux命令行与shell脚本编程大全》 第二十三章 学习笔记
    ios7下不能录音问题解决
    360 2013校园招聘笔试题(含参考答案)
    【MFC三天一个游戏】之 局域网黑白棋
    Remove Nth Node From End of List
  • 原文地址:https://www.cnblogs.com/lifexy/p/10848445.html
Copyright © 2011-2022 走看看