`
perfect5085
  • 浏览: 271156 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Object中getClass()方法详解

 
阅读更多

 

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类获取Class对象的方法详解" Java中获取Class对象是Java基础知识中的一个重要部分,通过Class类可以获取Class对象,Class对象是Java虚拟机在加载类时自动构造的。下面将详细介绍通过Class类获取...

    java中关键字Object详解

    Java中的`Object`类是所有类的根,这意味着无论你定义的任何自定义类,如果没有显式地声明继承自其他类,那么它们都会隐式地继承`Object`类。`Object`类提供了基本的方法,这些方法是所有Java对象共有的。下面我们将...

    详解Java中Object 类的使用.rar

    6. **反射机制**:Object类中的`getClass()`方法返回一个`Class`对象,代表了运行时的类信息。配合Java的反射API,我们可以动态地获取类的属性、方法等信息,实现动态调用和类型检查。 7. **线程同步**:`wait()`、...

    Java -核心类库 Object类常方法 Math类常用方法 System类常用方法 基本类型包装类常用方法等

    ### Java核心类库详解 #### 一、Object类常用方法 在Java中,`Object`类是最基础的类,所有其他类都直接或间接继承自它。因此了解并掌握`Object`类的方法对于深入理解Java编程至关重要。 1. **toString() 方法**...

    详解java中this.getClass()和super.getClass()的实例

    Java 中的 getClass() 方法是 Object 类的一个方法,其原型为 `public final Class<?> getClass()`, 返回值为当前运行时类的 Class 对象。这个方法可以用来获取当前类的 Class 对象,从而可以进行反射操作。 在 ...

    java中hashcode()和equals()方法详解

    ### Java中`hashCode()`与`equals()`方法详解 #### 前言 在Java编程语言中,`hashCode()`和`equals()`方法是非常重要的概念,它们不仅对于深入理解Java内存管理至关重要,也是实现自定义类的关键部分之一。本文将...

    JAVA基础--JAVA中的反射机制详解

    在上面的代码中,首先通过 `owner.getClass()` 获取对象的 Class,然后配置参数的 Class 数组,接着通过 `ownerClass.getMethod(methodName, argsClass)` 获取该对象的方法,最后通过 `method.invoke(owner, args)` ...

    Java软件开发实战 Java基础与案例开发详解 6-2 object类 共7页.pdf

    `Object`类提供了许多基本而强大的功能,包括`toString()`、`equals()`、`hashCode()`、`getClass()`以及`clone()`等方法。通过理解和适当重写这些方法,开发者可以更好地控制对象的行为,并提高代码的质量和可维护...

    src01 Object

    ### Java.lang.Object 类详解 #### 一、概述 在Java编程语言中,`java.lang.Object`类是所有类的根类。这意味着每一个类都直接或间接地继承自`Object`类,并且所有的对象(包括数组)都实现了该类提供的方法。`...

    day01【Object类、常用API】-笔记.md

    这意味着所有Java类都自动继承了`Object`类中的方法和属性。 #### 关键方法 - `public String toString()`: 返回该对象的字符串表示。默认情况下,此方法返回的是对象的类名和哈希码的十六进制表示。然而,在实际...

    Java中Class对象详解共2页.pdf.zip

    2. 对于已知类的对象,通过`object.getClass()`方法,可以获取该对象所属类的Class对象。 3. 使用类的`class`关键字,如`Person.class`,这是一种更直接的方式,无需实例化对象就能获取Class对象。 利用Class对象,...

    Object类和Scanner类

    #### 一、Object类详解 **1.1 概述** 在Java语言中,`Object` 类是所有类的基础。它位于类层次结构的顶端,这意味着所有的类,无论显式还是隐式地,都直接或间接地继承自 `Object` 类。这种设计确保了所有类都共享...

    java-object类

    ### Java Object 类详解 #### 一、概述 `Object` 类是 Java 语言中最基础的类,位于 `java.lang` 包中。它是所有 Java 类的超类,即使程序员在定义一个新类时未明确指定该类继承自任何类,默认情况下,这个类也将...

    java中hashcode()和equals()的详解

    首先,`equals()`方法是Object类中的一个基础方法,用于比较两个对象是否相等。默认情况下,`equals()`方法会比较对象的内存地址,也就是说,只有当两个引用指向同一个对象时,`equals()`才会返回`true`。然而,对于...

    JAVA反射机制详解

    ### JAVA反射机制详解 #### 一、Java反射机制概述 Java反射机制是在运行时动态获取类的信息,并且能够调用对象方法的一种强大的功能。通过Java反射机制,可以在运行时完成以下任务: - 判断任意一个对象所属的类...

    Java实训教程 Java软件开发实战 Java类库 第1章 Object类 共29页.pptx

    ### Java实训教程知识点总结 #### 一、课程概述与学习目标 本次实训教程旨在通过详细的...通过上述知识点的学习,我们可以更好地理解和应用Java中的`Object`类以及其相关方法,为进一步深入学习Java打下坚实的基础。

    Java Object类详解_动力节点Java学院整理

    所以,要想在ObjectTest类中调用clone()方法,你需要创建一个继承自Object的类,并在子类中调用clone()。这是Java中关于权限修饰符的一个重要概念。 Java Object类是所有Java类的根,它定义了一些基本的方法,这些...

    Java.lang.reflect 包下常用的类及方法简介

    每个类在内存中都有一个唯一的`Class`实例,可以通过`Class.forName()`方法获取,或者通过`Object.getClass()`方法从对象中获取。 - `getConstructors()`:返回类的所有公共构造函数。 - `getDeclaredConstructors...

Global site tag (gtag.js) - Google Analytics