zoukankan      html  css  js  c++  java
  • Object类和包装类的一些方法

    一、instanceof关键字的使用:

    a instanceof A:判断对象a是否是类A的实例。如果是,返回true;如果不是,返回false。

    • 使用场景:为了避免在向下转型时出现ClassCastException的异常,我们在向下转型前,先进行instanceof的判断,一旦返回true,就进行向下转型。如果返回false,不进行向下转型。
    • 如果a instanceof A返回true,则a instanceof B也返回true。其中类B是类A的父类。

    二、equals()方法的使用:

      1.是一个方法,而非运算符

      2.只适用于引用数据类型

      3.Object类中的equals()的定义:

    public boolean equals(Object obj){
            return (this == obj);
    }

    说明:Object类中定义的equals()和==的作用是相同的:比较两个对象的地址值是否相同,即两个引用是否指向同一个地址。

      4.像String、Date、File、包装类等都重写了object类中的equals()方法。重写以后,比较的不是两个引用的地址是否相同,而是比较两个对象的“实体内容”是否相同。

      5.通常情况下,我们自定义的类如果使用equals()的话,也通常是比较两个对象的“实体内容”是否相同,所以我们也需要对object类中的equals()进行重写。

    三、toString()的使用:

      1.当我们输出一个对象的引用时,实际上就是调用当前对象的toString()

      2.Object类中的toString()的定义:

    public String toString(){
        return getClass().getName()+"@"+Integer.toHexString(hashCode());
    }

      3.像String、Date、File、包装类等都重写了Object类中的toString()方法。使得在调用对象的toString()时,返回“实体内容”信息。

      4.自定义类也可以重写toString()方法,当调用此方法时,返回对象的“实体内容”。

    四、单元测试JUnit用法:

    在Eclipce中步骤:

    1. 选中当前工程—>右键:build path——>add libraries——>JUnit4——>下一步
    2. 创建java类,进行单元测试,此时的java类要求:1.此类是public的。2.此类提供公共的无参的构造器。
    3. 此时的单元测试方法:权限是public,没有返回值,没有形参
    4. 此单元测试方法上需要声明注解:@Test,并在单元测试类中导入:import org.junit.Test;
    5. 声明好单元测试方法后,就可以在方法体内测试相关代码。
    6. 写完代码后,左键双击单元测试方法名,右键:run as——>JUnit Test

    代码例子如下:

    public class JUnitTest{
    @Test
    public void testthis(){//双击testthis执行
    ...                //被测试的内容
    }    
    }    

    五、包装类的使用:

    • 针对八中基本数据类型定义相应的引用类型-包装类(封装类)
    • 有了类的特点,就可以调用类中的方法,java才是真正的面向对象

    1.java提供了8中基本数据类型对应的包装类,是的基本数据类型的变量具有类的特征。

    2.基本数据类型、包装类、String三者之间的相互转换:

     3.自动装箱和自动拆箱:

     自动装箱:基本数据类型——>包装类的对象

    代码举例:

    int num = 10;
    Integer in = num;//自动装箱
    Integer in = new Integer(num);//手动装箱

    自动拆箱:包装类——>基本数据类型

    代码举例:

    int num1 = num;//自动装箱

    4.基本数据类型、包装类——>String类型:调用String重载的valueOf(XXX xxx)或者直接+

    举例子:

    int num = 10;
    String str = num + "";//直接+方式
    String str2 = String.valueOf(num);//方法

    5.String类型——>基本数据类型、包装类:调用包装类的parseXxx(String s)

    举例子:

    String str = "123"int num = Integer.parseInt(str);//String转化为int

    特别的:Integer内部定义了IntegerCache结构,IntegerCache中定义了Integer【】,保存了从-128~127范围的整数。如果我们使用自动装箱的方式,给Integer赋值的范围在-128~128范围内时,可以直接使用数组中的元素,不再去new了。目的:提高效率。

    代码举例说明:

    public void test(){
            Integer i = new Integer(1);
            Integer j = new Integer(1);
    System.out,println(i == j);//false ,因为比较的是地址,new了就是地址不同了
    
    
          Integer i = 1;
          Integer j = 1;
    System.out,println(i == j);//turn,因为是直接使用Integer中定义的数,地址一样
    
          Integer i = 128;
          Integer j = 128
    System.out,println(i == j);//false,因为128超过了127,相当于重新new了,而不是用的方法定义的数,所有地址不同  
  • 相关阅读:
    MySQL字符串中数字排序的问题
    Jquery 实现跨域处理
    mysql中insert into select from的使用
    Mysql索引会失效的几种情况分析(转)
    ASP.Net Web API 输出缓存(转)
    8 种提升 ASP.NET Web API 性能的方法 (转)
    C#进阶系列——WebApi 异常处理解决方案(转)
    C#使用Log4Net记录日志(转)
    前端传递对象列表到WebApi
    忏悔录
  • 原文地址:https://www.cnblogs.com/liuhuan425/p/10775696.html
Copyright © 2011-2022 走看看