黑马程序员——Java基础---Object类和包装类
来源:互联网 发布:三毛淘宝小号网 编辑:程序博客网 时间:2024/06/06 03:55
-----<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
一.Object类
Object类是所有Java类的祖先。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。在不明确给出超类的情况下,Java会自动把Object作为要定义类的超类。可以使用类型为Object的变量指向任意类型的对象。Object类有一个默认构造方法pubilc Object(),在构造子类实例时,都会先调用这个默认构造方法。Object类的变量只能用作各种值的通用持有者。要对他们进行任何专门的操作,都需要知道它们的原始类型并进行类型转换。
下面对常用的类进行介绍:
<span style="white-space:pre"></span>public class Test<span style="white-space:pre"></span>{ <span style="white-space:pre"></span>public static void main(String[] args) <span style="white-space:pre"></span>{ /* * 字符串比较 * String类重写了Object父类的equals()方法 */ String str1 = "hello"; String str2 = "hello"; System.out.println("str1和str2值是否相等:" + str1.equals(str2)); System.out.println("str1和str2是否相同:" + (str1 == str2)); String str3 = new String("hello"); System.out.println("str1和str3值是否相等:" + str1.equals(str3)); System.out.println("str1和str3是否相同:" + (str1 == str3)); String str4 = new String("hello"); System.out.println("str3和str4值是否相等:" + str3.equals(str4)); System.out.println("str3和str4是否相同:" + (str3 == str4)); System.out.println("----------------------------"); // Object比较 Object obj1 = new Object(); Object obj2 = new Object(); // Object类的equals()方法实际上是使用==运算符进行判断 System.out.println("obj1和obj2值是否相等:" + obj1.equals(obj2)); System.out.println("obj1和obj2是否相同:" + (obj1 == obj2)); System.out.println(<span style="font-family: Arial;">"----------------------------"</span>); // equals方法 Animal a1 = new Animal("猫", 4); Animal a2 = new Animal("狗", 2); System.out.println("a1和a2值是否相等:" + a1.equals(a2)); System.out.println("a1和a2是否相同:" + (a1 == a2)); System.out.println("----------------------------"); // hashCode方法 System.out.println("第一次获取对象a1的hashCode值:" + a1.hashCode()); System.out.println("第二次获取对象a1的hashCode值:" + a1.hashCode()); System.out.println("第一次获取对象a2的hashCode值:" + a2.hashCode()); System.out.println("----------------------------------"); // toString方法 System.out.println(a1); System.out.println(a2); String[] names = { "tom", "jack", "alice" }; System.out.println(Arrays.toString(names)); // 使用包装类的toString方法将基本数据类型转换为字符串 String str = Integer.toString(13); System.out.println(str); System.out.println("------------------------------"); // finalize方法 Animal a3 = null; /* * for(int i=0;i<10000;i++){ * a3=new Animal("猫"+i, i); * } */ System.out.println("-----------------------------"); // clone方法 try { Animal a4 = (Animal) a1.clone(); System.out.println("原a1的名字:" + a1.name); System.out.println("原a4的名字:" + a4.name); a4.name = "猴"; System.out.println("现a1的名字:" + a1.name); System.out.println("现a4的名字:" + a4.name); } catch (CloneNotSupportedException e) { e.printStackTrace(); } <span style="white-space:pre"></span>}<span style="white-space:pre"></span>}<span style="white-space:pre"></span> <span style="white-space:pre"></span>//动物类Animal 要实现对象的克隆,必须实现Cloneable接口 <span style="white-space:pre"></span>class Animal extends Object implements Cloneable<span style="white-space:pre"></span>{<span style="white-space:pre"></span> <span style="white-space:pre"></span>String name; <span style="white-space:pre"></span>int age; <span style="white-space:pre"></span> public Animal(String name, int age) <span style="white-space:pre"></span>{ this.name = name; this.age = age; <span style="white-space:pre"></span>} //如果自定义类想比较对象的属性是否相等,需要重写父类的equals方法 <span style="white-space:pre"></span>public boolean equals(Object obj) <span style="white-space:pre"></span>{ Animal a = (Animal) obj;// 向下转型 if (this.name.equals(a.name) && this.age == a.age)// 判断属性值是否相等 { return true; } else { return false; } <span style="white-space:pre"></span>} //重写父类的toString方法,返回更易读的信息 //直接输出对象时,会自动调用toString()方法 <span style="white-space:pre"></span>public String toString() <span style="white-space:pre"></span>{ return "Animal[name=" + name + ",age=" + age + "]"; <span style="white-space:pre"></span>} //重写父类的finalize方法 <span style="white-space:pre"></span>protected void finalize() throws Throwable <span style="white-space:pre"></span>{ super.finalize(); System.out.println("回收资源。。。"); <span style="white-space:pre"></span>} //重写父类的clone方法 <span style="white-space:pre"></span>protected Object clone() throws CloneNotSupportedException <span style="white-space:pre"></span>{ return super.clone(); <span style="white-space:pre"></span>}<span style="white-space:pre"></span>}
0 0
- 黑马程序员——Java基础---Object类和包装类
- 黑马程序员—OC基础--基础数据类型和包装类
- 黑马程序员——Java基础---StringBuffer、Arrays、包装类
- 黑马程序员————Java基础之String类和基本数据类型包装类
- 黑马程序员——Java基础---String类和基本数据类型包装类
- 黑马程序员——Java基础---String类和基本数据类型包装类
- 黑马程序员——Java基础---String类和基本数据类型包装类
- 黑马程序员——Java基础---String类和基本数据类型包装类
- 黑马程序员——java基础知识之String类和基础数据类型对象包装类
- 黑马程序员——java基础学习--String类,StringBuffer和基本数据包装类
- 黑马程序员——java基础-String类和基本数据类型包装类
- 黑马程序员——Java基础---String类和基本数据类型包装类
- 黑马程序员——Java基础---String类和基本数据类型包装类
- 黑马程序员——java基础---String类和基本数据类型包装类
- 黑马程序员——Java基础---String类和对象包装类
- 黑马程序员——Java基础---String类和基本数据类型对象包装类
- 黑马程序员——Java基础---String类和基本数据类型包装类
- 黑马程序员—java基础学习--Object类,内部类
- spring mvc中访问静态文件两种方法设置
- 黑马程序员—OC之三大特性
- springmvc学习笔记(9)——ModelAndView
- java sax解析xml文件
- dp 斜率优化
- 黑马程序员——Java基础---Object类和包装类
- 简易C\C++内存池
- 正则表达式里字符串”不包含”匹配技巧
- iOS使用SSH通过USB直连 比WIFI快
- 页面报出uncaught exception: out of memory异常
- 扩大进口螺丝结顶,数量多考虑空间速度快决定书!
- 企鹅2015校招笔试之(三)C/S模型压力算法设计实现
- 小白的白盒测试之路——用例设计篇
- Linux终端神器tmux