一.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. [BZOJ4756][Usaco2017 Jan]Promotion Counting 树状数组

    4756: [Usaco2017 Jan]Promotion Counting Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 305  Solved: ...

  2. Flask插件系列之flask_celery

    现在继续学习在集成的框架中如何使用celery. 在Flask中使用celery 在Flask中集成celery需要做到两点: 创建celery的实例对象的名字必须是flask应用程序app的名字,否 ...

  3. 洛谷——P2067 Cytus-Holyknight

    P2067 Cytus-Holyknight 题目背景 本人最初作 以此纪念伟大的ios.安卓.PSV平台音乐游戏<cytus> 后续将不断更新. -------------Chapter ...

  4. 新博客:11101001.com

    开了一个新blog 但还是会用这个写博客 新博客地址11101001.com

  5. [Lydsy1710月赛] 小B的数字

    神TM 又又又又是构造题..... 很简单的化简就是,把2^k[i]都换成k[i] ,然后就可以得出 对于任意的i,k[i] * a[i] >= ∑k[]. 最优的构造肯定是使  k[i] = ...

  6. 【bzoj1977】【严格次小生成树】倍增维护链上最大次大值

    (上不了p站我要死了,侵权度娘背锅) Description 小 C 最近学了很多最小生成树的算法,Prim 算法.Kurskal 算法.消圈算法等等. 正当小 C 洋洋得意之时,小 P 又来泼小 C ...

  7. [CP1804]组合数问题2

    题目大意: 给定两个数$n(n\le10^6)$和$k(k\le10^5)$,找到$k$个不同的满足$0\le b\le a\le n$的组合数$\binom a b$,求这$k$个组合数的最大值. ...

  8. Node应用的Systemd启动(转)

    作者: 阮一峰 日期: 2016年3月12日 前面的文章介绍了 Systemd 的操作命令和基本用法,今天给出一个实例,如何使用 Systemd 启动一个 Node 应用. 本文是独立的,不需要前面的 ...

  9. tiny4412 串口驱动分析一 --- u-boot中的串口驱动

    作者:彭东林 邮箱:pengdonglin137@163.com 开发板:tiny4412ADK+S700 4GB Flash 主机:Wind7 64位 虚拟机:Vmware+Ubuntu12_04 ...

  10. init_machine 在Kernel中被调用的过程

    以tiny4412为例: arch/arm/mach-exynos/mach-tiny4412.c MACHINE_START(TINY4412, "TINY4412") /* M ...