一.Object类中的equals()方法
equals(Object obj) :指示其它某个对象是否与此对象“相等”。 返回值类型是boolean
Oblect类中的equals方法
public boolean equals(Object obj)
姓名和年龄都同样,为同一个人
假设要比較两个人是否为同一个人,Person类就要复写equals方法
class Person
{
private String name; private int age;
public Person(){}
public Person(String name,int age)
{this.name = name;this.age = age;}
	public void setName(String name)
{this.name = name;}
public String getName()
{return name;}
public void setAge(int age)
{this.age = age;}
public int getAge()
{return age;}
public boolean equals(Object obj)
{
if(this == obj)
{return true;}
if(obj instanceof Person)
{
Person p1 = (Person)obj;
return (this.getName()== p1.getName())&& (this.getAge()== p1.getAge()); }
return false;
}
}
class PersonDemo
{
public static void main(String[] args)
{ Person p1 = new Person("张三",25);
Person p2 = new Person("张三",25);
System.out.println( p1.equals(p2));
}
} 二.Object类中的toString方法
public String toString()
返回该对象的字符串表示。通常。toString 方法会返回一个
“以文本方式表示”此对象的字符串。结果应是一个简明但易
于读懂的信息表达式。建议全部子类都重写此方法。 class Person
{
private String name;
private int age;
public Person(){}
public Person(String name,int age)
{this.name = name; this.age = age;}
public void setName(String name)
{this.name = name;}
public String getName()
{return name;}
public void setAge(int age)
{this.age = age;}
public int getAge()
{return age;}
public String toString()
{
return name;
}
}
class Day02
{
public static void main(String[] args)
{
Person p1 = new Person("张三",25);
Person p2 = new Person("张三",24);
System.out.println( p1.toString());//
//没有toString()方法输出的是Person@1db9742
//返回的是一个字符串,由“@”和此对象哈希码的
//无符号十六进制表示组成,比較难懂,建议定义toString()
//方法,复写父类Object的toString方法,自己定义字符串表现形式
//有了toString方法后,覆写了object类中的toString方法
//自己定义了返回的字符串表现形式,输出结果就是:张三
}
} 三.Object类中的getClass
返回的的是当前对象所属类的字节码文件对象(Class) 一个字节码文件对象能够相应好几个对象
所以 System.out.println(cls1 == cls2);//true 而Class类中有getName()方法,getField()方法,getMethod()方法等等 public final Class<?> getClass()
class Person
{
private String name;
private int age;
public Person(){}
public Person(String name,int age)
{this.name = name; this.age = age;}
public void setName(String name)
{this.name = name;}
public String getName()
{return name;}
public void setAge(int age)
{this.age = age;}
public int getAge()
{return age;}
}
class Day02
{
public static void main(String[] args)
{
Person p1 = new Person("zhangsan",24);
Person p2 = new Person("lisi",25);
  Class cls1 = p1.getClass();
Class cls2 = p2.getClass();
System.out.println(cls1);//class Person
System.out.println(cls2);//class Person
System.out.println(cls1 == cls2);//true
System.out.println(cls1.getName());//Person
}
}

面向对象-Object类的更多相关文章

  1. Java面向对象 Object类 内部类

     Java面向对象 Object类    内部类 知识概要:                 一:Object类                 二:内部类 匿名内部类的写法 1.Object O ...

  2. JS面向对象(3) -- Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法

    相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...

  3. 面向对象编程(九)——面向对象三大特性之继承以及重写、Object类的介绍

    面向对象三大特性 面向对象三大特征:继承 :封装/隐藏 :多态(为了适应需求的多种变化,使代码变得更加通用!) 封装:主要实现了隐藏细节,对用户提供访问接口,无需关心方法的具体实现. 继承:很好的实现 ...

  4. Java 面向对象概述原理: 多态、Object类,转型(8)

    Java 面向对象概述原理: 多态.Object类,转型(8) http://docs.oracle.com/javase/tutorial/java/IandI/override.html Java ...

  5. JAVASE(十)面向对象:特性之多态性、Object类、代码块、关键字:static、final、父子类执行顺序

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.面向对象的特性之:多态性 多态性的理解:事物的多种形态 1.1 广义上多态性的体现:①方法的重写,重 ...

  6. 13_Python的面向对象编程-类class,对象object,实例instance

    1.面向对象概述 1.类是用来描述对象的工具,把拥有相同属性和行为的对象分为一组     2.对象是由类实例化出来的一个具体的对象         属性: 对象拥有的名词,用变量表示         ...

  7. JavaSE基础知识(5)—面向对象(Object类)

    一.包 java.lang包,属于java中的核心包,系统默认导入的,不用手动导入该包中的类:Object.System.String.Integer等 1.包的好处 ①分类管理java文件,查找和管 ...

  8. 面向对象高级——Object类、包装类以及匿名内部类

    Object类  知识点:掌握Object类的作用.掌握Object类中toString().equal()方法的作用 ,掌握Object接收引用数据类型的操作. 假设一个类在定义时没有明白指明继承哪 ...

  9. 面向对象编程(四)继承,概念及super关键字,final关键字,Object类常见方法

    继承 概念: ①   继承背后的思想就是基于已存在的类来构建新类; ②   当从已存在类继承时,就重用了它的方法和属性,还可以添加新的方法和属性来定制新类以应对需求; ③   当从其它类导出的类叫作子 ...

随机推荐

  1. c++ 堆、栈、自由存储区、全局/静态存储区和常量存储区

    在C++中,内存分成5个区,他们分别是堆.栈.自由存储区.全局/静态存储区和常量存储区. 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区.里面的变量通常是局部变量.函数参数 ...

  2. laravel中建立公共视图的方法

    1.用法概要 @include('common.header') 包含子视图 @extends('article.common.base') 继承基础模板 @yield('content') 视图占位 ...

  3. Android从相册选取视频

    1. /** * 从相册中选择视频 */ private void choiceVideo() { Intent i = new Intent(Intent.ACTION_PICK, android. ...

  4. (1)oracle安装、卸载、启动、关闭、登陆以及同时遇到的问题

    数据库概念 在oracle里数据库是一个静态的概念,数据库的资料保存在硬盘上,一个数据库可以有多个实例 数据库实例 数据库实例是一个动态的概念,它是进程+这个进程的内存块.就把它当成个指针吧,这个指针 ...

  5. System.getProperty("os.name")

    Here is a handy Java class that useSystem.getProperty("os.name") to detect which type of o ...

  6. 解魔方的机器人攻略17 – 魔方CFOP算法

    由 动力老男孩 发表于 2010/01/03 17:38:09 本来我想把这个攻略做成一个NXT开发的教程,把传感器,电机,发声等部分都介绍一遍.不过现在看来有些同学很心急,希望早点看到“核心代码”, ...

  7. 6.NFC之非NDEF格式

    先看流程图 使用步骤: 第一步:声明权限 <!-- 允许应用程序使用NFC功能 --> <uses-permission android:name="android.per ...

  8. SQL Server 2005 系统数据介绍:dm_exec_connections

    原文:SQL Server 2005 系统数据介绍:dm_exec_connections 转载:http://msdn.microsoft.com/zh-cn/library/ms181509(SQ ...

  9. 【spring Boot】Spring中@Controller和@RestController之间的区别

    spring Boot入手的第一天,看到例子中的@RestController ............. 相同点:都是用来表示Spring某个类的是否可以接收HTTP请求 不同点:@Controll ...

  10. 十步完全理解 SQL

    很多程序员视 SQL 为洪水猛兽.SQL 是一种为数不多的声明性语言,它的运行方式完全不同于我们所熟知的命令行语言.面向对象的程序语言.甚至是函数语言(尽管有些人认为 SQL 语言也是一种函数式语言) ...