Object类是所有类的根父类, 也就是说如果一个类没有显式声明父类, 那么这个类的父类就是Object类, 所以, Object类中的属性和方法会被所有类继承, 都可以直接调用.,我来为大家科普一下关于面向对象程序四大特征?以下内容希望对你有帮助!

面向对象程序四大特征(面向对象高级特性Object类)

面向对象程序四大特征

Object类的特点

Object类是所有类的根父类, 也就是说如果一个类没有显式声明父类, 那么这个类的父类就是Object类, 所以, Object类中的属性和方法会被所有类继承, 都可以直接调用.

类中的典型方法

1. toString()

public String toString() 这个方法返回当前对象的一个字符串表示, 通常用于描述这个对象的内容.

这个方法也会在对象被打印和与字符串拼接时自动调用, 结果还是一个字符串.

2. equals()

表示两个对象内容是否相等, 通常情况下, 两个不同的对象是不相等的, 但是我们可以通过覆盖这个方法,实现两个内容相等, 但不同的对象之间具有等同性比较能力.

3. hashCode()

当两个对象的内容相等时, equals方法的结果就应该返回true, 但同时这两个对象调用hashCode方法返回的哈希码值也必须要相等, 相同的道理, 两个hashCode码值不同的对象, equals方法一定返回false.

public class Point { private int x; private int y; public Point() {} public Point(int x, int y) { this.x = x; this.y = y; } public void setX(int x) { this.x = x; } public int getX() { return x; } public void setY(int y) { this.y = y; } public int getY() { return y; } public String say() { return "X:" x ",Y:" y; } @Override // 可以完成真实的比较 public boolean equals(Object obj) { if (obj instanceof Point && this.x == ((Point)obj).x && this.y == ((Point)obj).y) { return true; } return false; } @Override public int hashCode() { return Integer.parseInt(x * 10 "" y * 10); } // 返回对象的字符串表示, 通常在打印对象时调用 @Override public String toString() { return "x:" x ",y:" y; } } public class PointTest { public static void main(String[] args) { Point p1 = new Point(10, 20); Point p2 = new Point(10, 20); System.out.println(p1 == p2); // 打印false, 因为比较两个对象的地址 boolean b = p1.equals(p2); // 返回true, 因为比较两个对象的内容 System.out.println(b); System.out.println(p1.hashCode()); // 两个对象的哈希码也都一样 System.out.println(p2.hashCode()); System.out.println(p1); // 打印对象时, 打印的其实是对象的toString()方法的结果 } }

Object的使用

Object类型通常用于表示任意对象的引用类型, 使用Object类型可以兼容任意对象, 很灵活方便, 也因为Object类是根父类, 所以其中的方法具有普遍性, 便于统一处理.

Object的注意点

因为Object类型是父类类型, 所以Object类型的对象究竟是什么类型的对象就变得非常复杂, 所以想要处理不同的子类对象, 比较麻烦, 需要配合instanceof操作符和类型转换。


了解更多内容:

面向对象基础类与对象

面向对象基本特征继承

面向对象基本特征多态

java面向对象基础方法

java面向对象基础属性

,