1 package com.lv.study.pm; 2 3 public class TestObject { 4 5 public static void main(String[] args) { 6 7 // Object obj; 8 // obj=10; 9 // 10 // int number=(int) obj; 11 // 12 // System.out.println(obj); 13 // System.out.println(number); 14 15 16 test1(new Integer(20)); 17 test1('a'); 18 test1("abc"); 19 test1(new Person()); 20 } 21 22 //我们object作为形参,但是我们大家一定要在必要的场景才使用这种 23 //因为我们这样用的话,对于参数的处理非常麻烦 24 public static void test1(Object obj){ 25 26 //obj的参数囊括了我们java里面的所有对象 27 //你只能进行通用的操作 28 Integer it =(Integer) obj; 29 30 System.out.println(obj); 31 } 32 33 //object 作为返回值 可以返回任意的值 34 //也是要在特定的场景下 不然处理返回值也特别的麻烦 35 public static Object test2(int number){ 36 37 if(number%5==0){ 38 return 333; 39 }else if(number%5==2){ 40 return "abc"; 41 }else if(number%5==6){ 42 return new Object(); 43 }else if(number%5==1){ 44 return new Object(){}; 45 }else{ 46 return new Integer(20); 47 } 48 } 49 }
重写一下tostring equals方法
1 package com.lv.study.pm; 2 3 public class TestObjectFunToString { 4 5 public static void main(String[] args) { 6 7 Object obj1=new Person(); 8 9 int[] nums =new int[5]; 10 String []strs=new String[5]; 11 12 System.out.println(nums); 13 System.out.println(strs); 14 15 //结果一模一样 16 System.out.println(obj1.toString()); 17 //打印的时候会默认调用,就是用来输出的 18 System.out.println(obj1);//对对象进行打印输出的时候会默认调用 to String 方法 19 20 //只不过 我们object 默认的tostring方法 21 22 //都是字符串 23 //1 当前这个对象的类全名 24 // 2 @ 符号 25 // 3 当前这个对象在堆里面的地址 进行hash以后的数字 26 27 } 28 29 }
hashcode算法
1 package com.lv.study.pm; 2 3 public class TestObjectFunHashCode { 4 5 public static void main(String[] args) { 6 7 Object obj1=new Person(); 8 Object obj2="abc"; 9 Object objabc="abc"; 10 Object obj3=200; 11 Object obj4=new Person(); 12 13 //返回的就是一串整形的数字 14 System.out.println(obj1.hashCode()); 15 System.out.println(obj2.hashCode()); 16 System.out.println(objabc.hashCode()); 17 System.out.println(obj3.hashCode()); 18 System.out.println(obj4.hashCode()); 19 //来判断两个物件是不是同一个 20 21 //什么是hash 22 //就是把一个物件 经过一系列的算法 得到一串整形的数字 23 24 //你把同一个物件 进行hash 一定得到的是同一串数字 25 //我们hash 只要有一个bit 不一致 得到的结果一定是和上一次不一样 26 //不能保证不同的物件 hash值一定不一样 27 } 28 29 }