Obejct类有一个getClass()方法:
返回此 Object 的运行时类。
返回的 Class 对象是由所表示类的 static synchronized 方法锁定的对象。
public class Art {
Art() {
System.out.println("Art");
System.out.println(getClass().getName());
}
}
public class Drawing extends Art {
Drawing() {
System.out.println("Drawing");
System.out.println(getClass().getName());
}
}
public class Cartoon extends Drawing{
Cartoon(){
System.out.println("Cartoon");
System.out.println(getClass().getName());
}
public static void main(String[] args) {
Cartoon x = new Cartoon();
Drawing one = (Drawing)x;
Art two = (Art)x;
if(one == two){
System.out.println("==");
}else {
System.out.println("!=");
}
System.out.println(x.toString());
System.out.println(one.toString());
System.out.println(two.toString());
}
}
//输出
Art
com.cignacmc.knowledge.inheritance.Cartoon
Drawing
com.cignacmc.knowledge.inheritance.Cartoon
Cartoon
com.cignacmc.knowledge.inheritance.Cartoon
==
com.cignacmc.knowledge.inheritance.Cartoon@182f0db
com.cignacmc.knowledge.inheritance.Cartoon@182f0db
com.cignacmc.knowledge.inheritance.Cartoon@182f0db
结论: 当调用getClass()时,返回这个对象真实的Class对象。
从3个继承对象相等的情况和输出可知,这三个对象有相同的this指针,即内存地址一致。
而getClass()返回的就是this指针所代表的最真实的Class的对象,也即最上层的子类。
分享到:
相关推荐
"Java中通过Class类获取Class对象的方法详解" Java中获取Class对象是Java基础知识中的一个重要部分,通过Class类可以获取Class对象,Class对象是Java虚拟机在加载类时自动构造的。下面将详细介绍通过Class类获取...
Java中的`Object`类是所有类的根,这意味着无论你定义的任何自定义类,如果没有显式地声明继承自其他类,那么它们都会隐式地继承`Object`类。`Object`类提供了基本的方法,这些方法是所有Java对象共有的。下面我们将...
6. **反射机制**:Object类中的`getClass()`方法返回一个`Class`对象,代表了运行时的类信息。配合Java的反射API,我们可以动态地获取类的属性、方法等信息,实现动态调用和类型检查。 7. **线程同步**:`wait()`、...
### Java核心类库详解 #### 一、Object类常用方法 在Java中,`Object`类是最基础的类,所有其他类都直接或间接继承自它。因此了解并掌握`Object`类的方法对于深入理解Java编程至关重要。 1. **toString() 方法**...
Java 中的 getClass() 方法是 Object 类的一个方法,其原型为 `public final Class<?> getClass()`, 返回值为当前运行时类的 Class 对象。这个方法可以用来获取当前类的 Class 对象,从而可以进行反射操作。 在 ...
### Java中`hashCode()`与`equals()`方法详解 #### 前言 在Java编程语言中,`hashCode()`和`equals()`方法是非常重要的概念,它们不仅对于深入理解Java内存管理至关重要,也是实现自定义类的关键部分之一。本文将...
在上面的代码中,首先通过 `owner.getClass()` 获取对象的 Class,然后配置参数的 Class 数组,接着通过 `ownerClass.getMethod(methodName, argsClass)` 获取该对象的方法,最后通过 `method.invoke(owner, args)` ...
`Object`类提供了许多基本而强大的功能,包括`toString()`、`equals()`、`hashCode()`、`getClass()`以及`clone()`等方法。通过理解和适当重写这些方法,开发者可以更好地控制对象的行为,并提高代码的质量和可维护...
### Java.lang.Object 类详解 #### 一、概述 在Java编程语言中,`java.lang.Object`类是所有类的根类。这意味着每一个类都直接或间接地继承自`Object`类,并且所有的对象(包括数组)都实现了该类提供的方法。`...
这意味着所有Java类都自动继承了`Object`类中的方法和属性。 #### 关键方法 - `public String toString()`: 返回该对象的字符串表示。默认情况下,此方法返回的是对象的类名和哈希码的十六进制表示。然而,在实际...
2. 对于已知类的对象,通过`object.getClass()`方法,可以获取该对象所属类的Class对象。 3. 使用类的`class`关键字,如`Person.class`,这是一种更直接的方式,无需实例化对象就能获取Class对象。 利用Class对象,...
#### 一、Object类详解 **1.1 概述** 在Java语言中,`Object` 类是所有类的基础。它位于类层次结构的顶端,这意味着所有的类,无论显式还是隐式地,都直接或间接地继承自 `Object` 类。这种设计确保了所有类都共享...
### Java Object 类详解 #### 一、概述 `Object` 类是 Java 语言中最基础的类,位于 `java.lang` 包中。它是所有 Java 类的超类,即使程序员在定义一个新类时未明确指定该类继承自任何类,默认情况下,这个类也将...
首先,`equals()`方法是Object类中的一个基础方法,用于比较两个对象是否相等。默认情况下,`equals()`方法会比较对象的内存地址,也就是说,只有当两个引用指向同一个对象时,`equals()`才会返回`true`。然而,对于...
### JAVA反射机制详解 #### 一、Java反射机制概述 Java反射机制是在运行时动态获取类的信息,并且能够调用对象方法的一种强大的功能。通过Java反射机制,可以在运行时完成以下任务: - 判断任意一个对象所属的类...
### Java实训教程知识点总结 #### 一、课程概述与学习目标 本次实训教程旨在通过详细的...通过上述知识点的学习,我们可以更好地理解和应用Java中的`Object`类以及其相关方法,为进一步深入学习Java打下坚实的基础。
所以,要想在ObjectTest类中调用clone()方法,你需要创建一个继承自Object的类,并在子类中调用clone()。这是Java中关于权限修饰符的一个重要概念。 Java Object类是所有Java类的根,它定义了一些基本的方法,这些...
每个类在内存中都有一个唯一的`Class`实例,可以通过`Class.forName()`方法获取,或者通过`Object.getClass()`方法从对象中获取。 - `getConstructors()`:返回类的所有公共构造函数。 - `getDeclaredConstructors...