java中的object类
来源:互联网 发布:数据库关系模型设计 编辑:程序博客网 时间:2024/04/27 01:17
• Object类
1、位于java.lang包中。
2、类 Object 是类层次结构的根类,每个类都使用 Object 作为超类,所有对象(包括数组)都实现这个类的方法。
3、 因为Object是所有类的直接或间接父类,所以,Object中的所有方法,其子类都拥有。
3.1. toString()当直接打印对象时,默认输出的是该对象的toString方法的返回值。
默认输出的对象的格式为: 类名称@哈希值 如:com.jcxy.demo01.Student@15db9742
为什么会打印出这种形式呢?原因看下面例子
定义一个学生类
package com.jcxy.demo01;public class Student {private int age;private String name;}定义一个Test类
package com.jcxy.demo01;public class Test {/**测试 toString()的输出结果 * @param args */public static void main(String[] args) {// TODO Auto-generated method stubStudent s = new Student();System.out.println(s.toString());//打印s就相当于s.toString()}}打印结果为:com.jcxy.demo01.Student@15db9742
调用的toString()在父类的源码为
public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }所以打印出来的结果是类名+@+16进制的哈希值
3.1.2如果想按照自己的格式打印出学生的信息,则需要覆盖父类中的toString()方法。
重新定义学生类
package com.jcxy.demo01;public class Student {private int age;private String name;//提供无参数的构造函数。eclipse快捷键:alt + shift + s 出现界面后按 cpublic Student() {super();// TODO Auto-generated constructor stub}//提供有参数的构造函数。eclipse快捷键: alt + shift + s 出现界面后按 opublic Student(int age, String name) {super();this.age = age;this.name = name;}
<span style="white-space:pre"></span>//重新定以后的父类方法public String toString() {return "age = "+age+"\tname = "+name;}//封装属性。eclipse快捷键: alt + shift + s 出现界面后按 rpublic int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}}
Test中测试
package com.jcxy.demo01;public class Test {/**测试 toString()的输出结果 * @param args */public static void main(String[] args) {// TODO Auto-generated method stubStudent s = new Student(21,"Rose");System.out.println(s.toString());}}
打印结果:age = 21 name = Rose
3.2 equals()通过类比toString的复写形式,我们也可以重写自定义类的equals方法。
如比较两个学生是否相等,当年龄和姓名都相同时,我们认为是同一个学生。
学生类:
package com.jcxy.demo01;public class Student {private int age;private String name;//提供无参数的构造函数。eclipse快捷键:alt + shift + s 出现界面后按 cpublic Student() {super();// TODO Auto-generated constructor stub}//提供有参数的构造函数。eclipse快捷键: alt + shift + s 出现界面后按 opublic Student(int age, String name) {super();this.age = age;this.name = name;}public String toString() {return "age = "+age+"\tname = "+name;}//封装属性。eclipse快捷键: alt + shift + s 出现界面后按 rpublic int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}//复写父类Object中的equals方法public boolean equals(Object obj) {//如果两个对象在栈中的地址值相等,则一定是同一个对象。if(this == obj){return true;}//判断obj是否是学生类对象if(obj instanceof Student){//如果是则向下转型,downcaseing obj转换为student类Student s = (Student)obj;return (this.age == s.age && this.name == s.name) ? true : false;}return false;}}Test类
package com.jcxy.demo01;public class Test {/**测试 equals()的输出结果 * @param args */public static void main(String[] args) {Student s1 = new Student(21,"Rose");Student s2 = new Student(21,"Rose");Student s3 = new Student(22,"Rose");Student s4 = new Student(21,"Jack");System.out.println(s1.equals(s2));System.out.println(s1.equals(s3));System.out.println(s1.equals(s4));}}打印结果:true
false
false
– 注意:关于Object与数组的关系:
1、对于数组元素类型为引用类型的数组来说
– Object obj = strs;//子类转换成父类。将数组整个对象转换成Object对象
– Object[] objs = strs;//将数组中的每个元素转换成对应的Object数组
2、对于数组元素类型为基本数据类型的数组来说
– Object obj2 = arrs;//子类转换成父类对象。将数组整个对象转换成Object对象
– Object[] objs2 = arrs;因为int类型没有父类。
package com.jcxy.demo01;public class Test {/**关于Object与数组的关系 * @param args */public static void main(String[] args) {int[] arrs = {1,2,3,4,5};String[] strs = {"aaa","bbb","ccc","ddd"};//子类转换成父类。将数组整个对象转换成Object对象Object obj = strs;//将数组中的每个元素转换成对应的Object数组Object[] objs = strs;//子类转换成父类对象。将数组整个对象转换成Object对象Object obj2 = arrs;//因为int类型没有父类。Object[] objs2 = arrs;//报错}}<span style="color:#800000;"></span>
- Java中的Object类
- java中的object类
- Java中的Object类
- Java中的Object类
- java中的object类
- java中的Object类
- Java中的Object类
- java中的Object类
- Java中的Object类
- Java中的Object类
- Java中的Object类
- java中的object类
- JAVA中的Object类
- java中的Object类
- Java中的 Object类
- Java中的Object类
- Java Object类中的方法
- Java中的Object类介绍
- WIN 10 IIS 服务或万维网发布服务,或者依赖这两种服务的某个服务未能启动。该服务或所依赖的服务可能在启动期间发生错误或者已禁用。
- 机器学习(7)——支持向量机(一):从感知机到线性可分支持向量机
- javax.servlet.jsp.JspException cannot be resolved to a type
- String类型变量为空值时的正确写法
- 常用算法题
- java中的object类
- POJ 3258 River Hopscotch(二分搜索,最大化最小值)
- select语句一些要点(一)
- “优秀IT工程师”是什么样的?
- leetcode Implement Trie (Prefix Tree)
- theano.tensor模块安排
- 从头认识java-12.2 Class对象(4)-泛化
- php代码注释
- Visual Studio单元测试命令行方式之二