Object简介
Object类是所有类的根类,这意味着在Java中创建的每一个类都直接或间接地继承自 Object 类(除了 Object 类本身以外,因为它没有父类)
看到这里你或许还是不明为什么要有Object类下面我就详细解释。首先这里就不得不提到Java这门语言让人熟知的特点:面向对象。这也是常人的思维模式,例如当我们看到一个手机时,我们可以立刻识别出它是一部手机,这就是一个对象。手机的外观、品牌、型号、功能等都可以看作是对象的属性或状态。而我们可以对手机进行的操作,如拨打电话、发送短信、拍照等,则是对象的方法或行为,而电子产品则是手机的父类。从这个简单的例子你或许明白了面向对象的思维。那么在生活中我们遇到一个不知道或者不清楚的东西我们把它统称为什么呢?那就是是物体,一个物体,对了这就是object的翻译。Object在Java中扮演着至关重要的角色,它是所有类的基础,为Java的面向对象编程和运行时环境提供了核心的支持。
设计Object类的优点
1、统一接口:
通过让所有的类都继承自 Object 类,Java 提供了一个统一的接口给所有的对象。这意味着,无论对象的实际类型是什么,你都可以调用一些基本的、共有的方法。这些方法为所有对象提供了基本的操作和行为。
2、多态性:
多态性是面向对象编程的一个重要特性,它允许我们以统一的接口处理不同类型的对象。由于所有的类都继承自 Object 类,我们可以编写能够处理任何类型对象的代码,只要这些对象都遵循 Object 类中定义的方法。
3、运行时类型信息:
通过 Object 类中的 getClass() 方法,我们可以在运行时获取对象的实际类型信息。这对于反射(Reflection)和动态类型检查等高级特性非常重要。
4、内存回收:
虽然 Object 类本身并不直接负责内存回收,但它是垃圾收集器(Garbage Collector, GC)在Java中工作的基础。由于所有的对象都继承自 Object 类,垃圾收集器可以统一地识别和回收那些不再被引用的对象,从而帮助管理内存。
5、简化设计:
通过将所有的类都设计为继承自一个共同的基类,Java的设计者简化了语言的设计和实现。这种简化的设计使得Java的编译器和运行时环境可以更加高效地处理对象,因为它不需要为每种类型的对象都实现一套独立的方法。
6、扩展性:
虽然大多数时候我们不会直接继承 Object 类(因为几乎所有的类都自动继承自它),但 Object 类提供了一个基础,使得我们可以创建自己的类层次结构,并在其中添加新的方法和行为。这种扩展性使得Java成为一种非常灵活和强大的编程语言。
Object类常用方法与代码实例
首先我们定义一个测试类point ,并且重写equals与toString方法
/**
* 使用当前类测试超类Object中经常被子类重写的方法:equals与toString
*/
public class Point {
private int x;
private int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Point point = (Point) o;
return x == point.x && y == point.y;
}
@Override
public int hashCode() {
return Objects.hash(x, y);
}
@Override
public String toString() {
return "Point{" +
"x=" + x +
", y=" + y +
'}';
}
public void setX(int x) {
this.x = x;
}
public void setY(int y) {
this.y = y;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
}
接着可以看到测试类中两个方法的实例
public class TestPoint {
public static void main(String[] args) {
Point p = new Point(3, 4);
System.out.println(p);
String line="当前字符串为:"+p;
System.out.println(line);
System.out.println(line.toString());//输出结果一致,默认调用toString
Point p2=new Point(3,4);
System.out.println(p==p2);//false
System.out.println(p2.equals(p));//true
}
}
标签:Java,Point,int,Object,API,return,public From: https://blog.csdn.net/qishuang6/article/details/140402344