学习Java之day13

1. java.lang.Object类

  1. Object类是所有Java类的根父类

  2. 如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类

  3. Object类中的功能(属性、方法)就具有通用性。 属性:无 方法:equals() / toString() / getClass() /hashCode() / clone() / finalize() wait() 、 notify()、notifyAll()

  4. Object类只声明了一个空参的构造器

2.equals()方法的使用

面试题: == 和 equals() 区别 一、回顾 == 的使用: == :运算符 1. 可以使用在基本数据类型变量和引用数据类型变量中 2. 如果比较的是基本数据类型变量:比较两个变量保存的数据是否相等。(不一定类型要相同) 如果比较的是引用数据类型变量:比较两个对象的地址值是否相同.即两个引用是否指向同一个对象实体

补充: == 符号使用时,必须保证符号左右两边的变量类型一致。

二、equals()方法的使用:

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

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

  3. Object类中equals()的定义: public boolean equals(Object obj) { return (this == obj); } 说明:Object类中定义的equals()和==的作用是相同的:比较两个对象的地址值是否相同.即两个引用是否指向同一个对象实体

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

  5. 通常情况下,我们自定义的类如果使用equals()的话,也通常是比较两个对象的"实体内容"是否相同。那么,我们 就需要对Object类中的equals()进行重写. 重写的原则:比较两个对象的实体内容是否相同.

3. toString()方法的使用

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

  2. Object类中toString()的定义: public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }

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

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

4. 包装类的使用

1.java提供了8种基本数据类型对应的包装类,使得基本数据类型的变量具有类的特征 2.掌握的:基本数据类型、包装类、String三者之间的相互转换

public class WrapperTest {
   
   //String类型 --->基本数据类型、包装类:调用包装类的parseXxx(String s)
   @Test
   public void test5(){
       String str1 = "123";
       //错误的情况:
//     int num1 = (int)str1;
//     Integer in1 = (Integer)str1;
       //可能会报NumberFormatException
       int num2 = Integer.parseInt(str1);
       System.out.println(num2 + 1);
       
       String str2 = "true1";
       boolean b1 = Boolean.parseBoolean(str2);
       System.out.println(b1);
  }
   
   //基本数据类型、包装类--->String类型:调用String重载的valueOf(Xxx xxx)
   @Test
   public void test4(){
       
       int num1 = 10;
       //方式1:连接运算
       String str1 = num1 + "";
       //方式2:调用String的valueOf(Xxx xxx)
       float f1 = 12.3f;
       String str2 = String.valueOf(f1);//"12.3"
       
       Double d1 = new Double(12.4);
       String str3 = String.valueOf(d1);
       System.out.println(str2);
       System.out.println(str3);//"12.4"
       
  }
   
   /*
    * JDK 5.0 新特性:自动装箱 与自动拆箱
    */
   @Test
   public void test3(){
//     int num1 = 10;
//     //基本数据类型-->包装类的对象
//     method(num1);
       
       //自动装箱:基本数据类型 --->包装类
       int num2 = 10;
       Integer in1 = num2;//自动装箱
       
       boolean b1 = true;
       Boolean b2 = b1;//自动装箱
       
       //自动拆箱:包装类--->基本数据类型
       System.out.println(in1.toString());
       
       int num3 = in1;//自动拆箱
       
  }
   
   public void method(Object obj){
       System.out.println(obj);
  }
   
   //包装类--->基本数据类型:调用包装类Xxx的xxxValue()
   @Test
   public void test2(){
       Integer in1 = new Integer(12);
       
       int i1 = in1.intValue();
       System.out.println(i1 + 1);
       
       
       Float f1 = new Float(12.3);
       float f2 = f1.floatValue();
       System.out.println(f2 + 1);
  }
   
   //基本数据类型 --->包装类:调用包装类的构造器
   @Test
   public void test1(){
       
       int num1 = 10;
//     System.out.println(num1.toString());
       Integer in1 = new Integer(num1);
       System.out.println(in1.toString());
       
       Integer in2 = new Integer("123");
       System.out.println(in2.toString());
       
       //报异常
//     Integer in3 = new Integer("123abc");
//     System.out.println(in3.toString());
       
       Float f1 = new Float(12.3f);
       Float f2 = new Float("12.3");
       System.out.println(f1);
       System.out.println(f2);
       
       Boolean b1 = new Boolean(true);
       Boolean b2 = new Boolean("TrUe");
       System.out.println(b2);
       Boolean b3 = new Boolean("true123");
       System.out.println(b3);//false
       
       
       Order order = new Order();
       System.out.println(order.isMale);//false
       System.out.println(order.isFemale);//null
  }
   
}

class Order{
   
   boolean isMale;
   Boolean isFemale;
}

5. Java中的JUnit单元测试

步骤:

  1.选中当前工程 - 右键选择:build path - add libraries - JUnit 4 - 下一步

  2.创建Java类,进行单元测试。 此时的Java类要求:① 此类是public的 ②此类提供公共的无参的构造器

  3.此类中声明单元测试方法。 此时的单元测试方法:方法的权限是public,没有返回值,没有形参

  4.此单元测试方法上需要声明注解:@Test,并在单元测试类中导入:import org.junit.Test;

  5.声明好单元测试方法以后,就可以在方法体内测试相关的代码。

  6.写完代码以后,左键双击单元测试方法名,右键:run as - JUnit Test

 

说明:

   1.如果执行结果没有任何异常:绿条

   2.如果执行结果出现异常:红条

posted @ 2021-12-29 11:10  天覆者  阅读(110)  评论(0)    收藏  举报