• 面向对象(2)


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

    引言:Java提倡的万物皆对象,但是数据类型的划分出现了基本数据类型和引用数据类型,那么我们怎么能把基本数据类型称为对象呢?

    除了Integer和Character定义的名称和对应的基本类型差异大,其他六种都是将首字母大写就可以了。

    Integer,Byte,Float,Double,Short,Long都是Number类的子类

    Character和Boolean都是Object直接子类

    8个类都是final修饰的(不可被继承)。

    2.基本数据类型和包装类相互转换

     

    把基本数据类型 → 包装类:

    通过对应包装类的构造方法实现

    除了Character外,其他包装类都可以传入一个字符串参数构建包装类对象。

    包装类 → 基本数据类型

    包装类的实例方法xxxValue();    // xxx表示包装类对应的基本数据类型

     

    Eg:

    boolean bool = false;
    Boolean b2 = new Boolean(bool);
    Integer i = new Integer(3);
    int i2 = i.intValue();
    Boolean b1 = new Boolean("TRue");//true
    boolean b2 = b1.booleanValue();
    Float f = new Float("3.14");//3.14
    Integer i2 = new Integer("123s");//NumberFormatException

    备注:

    自动装箱&自动拆箱

     

    jdk1.5开始出现的特性:

    自动装箱:可把一个基本类型变量直接赋给对应的包装类对象或则Object对象

    自动拆箱:允许把 包装类对象直接赋给对应的基本数据类型

     

    Eg:

    Integer i = 3;//装箱
    int i2 = i;//拆箱
    Object flag = new Boolean(false);
    if(flag instanceof Boolean){
        Boolean b = (Boolean)flag;
        boolean b2 = b;
    }

    我的总结:对于基本数据类型和包装类之间的装换,我们可以直接的用,相互转换,因为java5之后的自动拆箱、装箱功能!即便不知道这个,其实使用中也不影响!

    3.基本类型和String之间的转换

    String → 基本类型,除了Character外所有的包装类提供parseXxx(String s)静态方法,用于把一个特定的字符串转换成基本类型变量;

    基本类型 → String,String 类有静态方法valueOf(),用于将基本类型的变量转换成String类型。

    String str = "17";

    int i = Integer.parseInt(str);//String  --> 基本类型

    String s1 = String.valueOf(i);//基本类型 --> String

    4.Object

    所有类的公共父类,一旦一个类没有显示地继承一个类则其直接父类一定是Object。

    一切数据类型都可用Object接收

    class OOXX  extends Object{}等价于class ooXX {}

     

    常见方法

    public boolean equals(Object obj):对象比较

    public int hashCode():取得该对象的Hash码

    public String toString():对象描述

     

    Object类的 toString()方法:“对象的描述”

    建议所有类都覆写此方法

    直接打印输出对象时,会调用该对象的toString()方法。//可以不写出来

    打印对象的时候,实际调用的对象实际指向的类的自我描述;

    全限定类名+@+十六进制的hashCode值,等价于

    全限定类名+@+IntegertoHexString(该对象.hashCode)

     

    equals也是判断是否指向同一个对象

    没有实际意义,有必要可以重写

    public boolean equals(Object obj) {}

    String 覆写了 Object的equals方法:只比较字符的序列是否相同

    ==用于判断两个变量是否相等

    基本类型:

    引用类型:必须指向同一个对象,才true

    只能比较有父子或平级关系的两个对象

    new String("1") == new String("1"); ?

  • 相关阅读:
    迭代器生成器
    elasticsearch系列(五)score
    数据结构(五)串
    数据结构系列(四)栈与队列
    数据结构系列(三)线性表
    数据结构系列(二)算法
    数据结构系列(一)入门
    elasticsearch系列(四)部署
    SpringBoot系列(一)RestTemplate
    基于python的爬虫(一)
  • 原文地址:https://www.cnblogs.com/whu-2017/p/9227671.html
Copyright © 2020-2023  润新知