Object类的用法(一)

简介:
using System;
using System.Collections.Generic;
using System.Text;
namespace Object.ReferenceEquals_方法
{
    class Program
    {
        static void Main(string[] args)
        {
            A x = new A();
            A y = new A();
            //A x = null;
            //A y = null;
            //A x; //与上面加null的不等价  提示错误是:使用了未赋值的局部变量“x"
            //A y; //与上面加null的不等价

            //public static bool ReferenceEquals 
            //  (
            //    Object objA,
            //    Object objB
            //  )
            //确定指定的 Object 实例是否是相同的实例。 
            //如果 objA 是与 objB 相同的实例,或者如果二者都为空引用,则为 true;否则为 false。
            bool m =object.ReferenceEquals(x, y); //等价于bool m =A.ReferenceEquals(x, y);同下面的Equals方法
            Console.WriteLine(m);           //还等价于 bool m = B.ReferenceEquals(x, y); 

            bool n = Program.Equals(x, y);   //这里有点奇怪可以把Program换成A,也可以把Program去掉,等价于n =x.Equals(y);
            Console.WriteLine(n);
           
           
           
            x = y;
            n =object.Equals(x, y);  //等价于n =A.Equals(x, y); 还等价于n =x.Equals(y);
            Console.WriteLine(n);
            
            Console.ReadKey();
        }
    }
    class A{}
      
    class B{}
    
}
//对于类的实例的比较,这三种方法是作用是一样的,都是比较引用
//所有的类和结构(包裹自定义的)都具有Equals(带一个参数的,Equals(带两个参数的),GetHashCode,GetType,ReferenceEquals,ToString 六个方法
//所有的类和结构(包裹自定义的)的Equals(带两个参数的),ReferenceEquals和GetType方法都是从Object类继承的,因为他们不是虚拟方法
//所以这3个方法一定不是重写的,而其他三个方法都是虚拟的,可以重写。其中Equals(带两个参数的)和ReferenceEquals是静态方法,而GetType方法是实例方法
//Equals(带一个参数的,Equals(带两个参数的)和ReferenceEquals方法的返回值类型为bool
//GetType方法返回值类型为System.Type
//GetHashCode方法返回值类型为int















本文转自terryli51CTO博客,原文链接: http://blog.51cto.com/terryli/519423,如需转载请自行联系原作者



相关文章
|
11月前
|
安全 IDE Java
重学Java基础篇—Java Object类常用方法深度解析
Java中,Object类作为所有类的超类,提供了多个核心方法以支持对象的基本行为。其中,`toString()`用于对象的字符串表示,重写时应包含关键信息;`equals()`与`hashCode()`需成对重写,确保对象等价判断的一致性;`getClass()`用于运行时类型识别;`clone()`实现对象复制,需区分浅拷贝与深拷贝;`wait()/notify()`支持线程协作。此外,`finalize()`已过时,建议使用更安全的资源管理方式。合理运用这些方法,并遵循最佳实践,可提升代码质量与健壮性。
334 1
|
11月前
|
前端开发 数据处理
对象数据的读取,看这一篇就够了!Object.keys()、Object.values()和Object.entries()用法详解;如何获取对象原型链上的属性
Object.keys()、Object.values()和Object.entries()都是利于对象操作的便捷方法,能有效提升数据处理的效率。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
11月前
|
Java
课时78:Object类的基本概念
Object类的主要特点是可以解决参数的统一问题,使用object类可以接受所有的数据类型。 1. Object类简介 2. 观察Object类接收所有子类对象 3. 使用Object类接收数组
210 0
|
JSON Java Apache
Java基础-常用API-Object类
继承是面向对象编程的重要特性,允许从已有类派生新类。Java采用单继承机制,默认所有类继承自Object类。Object类提供了多个常用方法,如`clone()`用于复制对象,`equals()`判断对象是否相等,`hashCode()`计算哈希码,`toString()`返回对象的字符串表示,`wait()`、`notify()`和`notifyAll()`用于线程同步,`finalize()`在对象被垃圾回收时调用。掌握这些方法有助于更好地理解和使用Java中的对象行为。
179 8
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
538 4
|
Java
Java Object 类详解
在 Java 中,`Object` 类是所有类的根类,每个 Java 类都直接或间接继承自 `Object`。作为所有类的超类,`Object` 定义了若干基本方法,如 `equals`、`hashCode`、`toString` 等,这些方法在所有对象中均可使用。通过重写这些方法,可以实现基于内容的比较、生成有意义的字符串表示以及确保哈希码的一致性。此外,`Object` 还提供了 `clone`、`getClass`、`notify`、`notifyAll` 和 `wait` 等方法,支持对象克隆、反射机制及线程同步。理解和重写这些方法有助于提升 Java 代码的可读性和可维护性。
503 20
Object.defineProperty用法详解,简单易懂!学起来嘎嘎快!
【10月更文挑战第20天】Object.defineProperty用法详解,简单易懂!学起来嘎嘎快!
Object.defineProperty用法详解,简单易懂!学起来嘎嘎快!
【Java基础面试二十】、介绍一下Object类中的方法
这篇文章介绍了Java中Object类的常用方法,包括`getClass()`、`equals()`、`hashCode()`、`toString()`、`wait()`、`notify()`、`notifyAll()`和`clone()`,并提到了不推荐使用的`finalize()`方法。
【Java基础面试二十】、介绍一下Object类中的方法
|
Python
类与面向对象编程(Object-Oriented Programming, OOP)
类与面向对象编程(Object-Oriented Programming, OOP)
128 1
|
算法 Java
12 Java常用类(一)(内部类+object类+包装类)
12 Java常用类(一)(内部类+object类+包装类)
165 5