1.类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法

2.hashCode()方法

  返回该对象的哈希值。一般情况下,该方法会根据对象的地址值来计算。

  不同的对象hashCode()一般来说不会相同,但同一个对象的hashCode值肯定一样。

  不是对象的实际地址值,可以理解为逻辑地址值。

package demo1;

public class Demo1 {
public static void main(String[] args) {
Student s1 = new Student("张三", 23);
int hashcode = s1.hashCode();
System.out.println(hashcode);
}
}

3getClass()方法

  返回Object的运行时类

  可以通过Class的一个getName()方法来获得类的全名。

package cn.smx.demo1;

public class Demo1 {
public static void main(String[] args) {
Student s1 = new Student("张三", 23);
Class clazz = s1.getClass();
String str = clazz.getName();
System.out.println(str);
}
}

4.toString()方法

package cn.smx.demo1;

public class Demo1 {
public static void main(String[] args) {
Student s1 = new Student("张三", 23);
String s = s1.toString();
System.out.println(s);
}
}

 

为了更好的获得属性值,我们会重写toString()方法。在eclipse中有快捷键生成toString()方法。右击-->source-->generate toString()..-->select all.

  

    public static void main(String[] args) {
Student s1 = new Student("张三", 23);
System.out.println(s1);
}

5.equals()方法

  比较对象的地址值

package demo1;

public class Demo1 {
public static void main(String[] args) {
Student s1 = new Student("张三", 23);
Student s2 = new Student("张三", 23);
boolean b = s1.equals(s2);
System.out.println(b);
}
}

  没有什么意义,一般来比较对象中的属性值。属性值相同,我们认为是同一个对象。

  重写equals方法。

    public boolean equals(Object obj) {
if(this==obj) {
return true;
}
if(obj==null) {
return false;
}
if(obj instanceof Person) {
Person p = (Person)obj;
if(this.age==age&&this.name==name)
return true;
}
return false;
}

主函数:

    public static void main(String[] args) {
Person p = new Person("zhangsan",23);
Person p1 = new Person("zhangsan",23);
boolean b = p.equals(p1);
System.out.println(b);
System.out.println(p);
System.out.println(p1);

  ==和equals都可以作比较

  区别是:1.==号是比较运算符,既可以比较基本数据类型(比较值),又可以比较引用数据类型(比较地址值)。

      2.equals方法在没重写之前比较的是地址值,底层依赖==号。我们需要重写equals方法,比较对象中的属性值。只能比较引用数据类型。

java_13.2 Object的更多相关文章

  1. CoreCLR源码探索(一) Object是什么

    .Net程序员们每天都在和Object在打交道 如果你问一个.Net程序员什么是Object,他可能会信誓旦旦的告诉你"Object还不简单吗,就是所有类型的基类" 这个答案是对的 ...

  2. JavaScript Object对象

    目录 1. 介绍:阐述 Object 对象. 2. 构造函数:介绍 Object 对象的构造函数. 3. 实例属性:介绍 Object 对象的实例属性:prototype.constructor等等. ...

  3. javascript之Object.defineProperty的奥妙

    直切主题 今天遇到一个这样的功能: 写一个函数,该函数传递两个参数,第一个参数为返回对象的总数据量,第二个参数为初始化对象的数据.如: var o = obj (4, {name: 'xu', age ...

  4. c# 基础 object ,new操作符,类型转换

    参考页面: http://www.yuanjiaocheng.net/webapi/config-webapi.html http://www.yuanjiaocheng.net/webapi/web ...

  5. APEX:对object中数据进行简单处理?

    在Salesforce中,常常要对各种数据进行处理,已满足业务逻辑.本篇文章会介绍如何实现从object获取数据,然后将取得的数据进行一系列简单处理. 第一步:SongName__c 是一个新建的ob ...

  6. 笔记:Memory Notification: Library Cache Object loaded into SGA

    笔记:Memory Notification: Library Cache Object loaded into SGA在警告日志中发现一些这样的警告信息:Mon Nov 21 14:24:22 20 ...

  7. Selenium的PO模式(Page Object Model)[python版]

     Page Object Model 简称POM  普通的测试用例代码: .... #测试用例 def test_login_mail(self): driver = self.driver driv ...

  8. Object是什么

    Object是什么 .Net程序员们每天都在和Object在打交道如果你问一个.Net程序员什么是Object,他可能会信誓旦旦的告诉你"Object还不简单吗,就是所有类型的基类" ...

  9. a different object with the same identifier value was already associated with the session:

    hibernate操作: 实例化两个model类,更新时会提示  a different object with the same identifier value was already assoc ...

随机推荐

  1. js -history.back(-1)和history.go(-1) 区别

    既然history.back(-1)和history.go(-1)都是返回之前页面,   history.back(-1)//直接返回当前页的上一页,,是个新页面   history.go(-1)// ...

  2. Warning:Configuration 'compile' is obsolete and has been replaced with 'implementation'. It will be

    1.替换 compile为implementation. 2.file->invalidate caches 或者build中的clear

  3. python 可迭代对象与迭代器

    生成器函数的工作原理只要 Python 函数的定义体中有 yield 关键字, 该函数就是生成器函数. 调用生成器函数时, 会返回一个生成器对象. 也就是说, 生成器函数是生成器工厂. 调用生成器函数 ...

  4. shell编程:基本语法

    要掌握一门语言,就要先掌握它的语法.如同C语言一般,shell也有自己的语法. 变量 按照惯例,Shell变量通常由字母加下划线开头,由任意长度的字母.数字.下划线组成.有两种类型的Shell变量: ...

  5. openvpn 批量生成用户脚本

    #/bin/bash for user in "$@" do echo "新增用户:$user" if [ -d "/etc/openvpn/clie ...

  6. P、NP、NPC和NP-Hard相关概念的图形和解释

    P.NP.NPC和NP-Hard相关概念的图形和解释 http://blog.csdn.net/huang1024rui/article/details/49154507 一.相关概念 P: 能在多项 ...

  7. 一个有趣的nginx问题引发的小问题

    最近处理一个nginx问题,故障现象是:所有的work进程,都在等锁.调用的是sem_wait 根据对应的堆栈,查看一下大家等的锁都一样,看看这把锁被谁拿了: 锁的结构是: typedef struc ...

  8. linux 2.6.32文件系统 fd与file*之间的关系

    给定如下一定情况: crash> files PID: TASK: ffff8817facd2100 CPU: COMMAND: "slabtop" ROOT: / CWD: ...

  9. PS常用快捷键(收藏)

    一.工具箱(多种工具共用一个快捷键的可同时按[Shift]加此快捷键选取) 矩形.椭圆选框工具 [M] 移动工具 [V] 套索.多边形套索.磁性套索 [L] 魔棒工具 [W] 裁剪工具 [C] 切片工 ...

  10. C++ MFC 改变控件大小和位置

    用CWnd类的函数MoveWindow()或SetWindowPos()可以改变控件的大小和位置. void MoveWindow(int x,int y,int nWidth,int nHeight ...