一.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. ws2s函数

    std::string ws2s(const std::wstring& str) { char* pElementText; int iTextLen; // wide char to mu ...

  2. appium+python自动化24-滑动方法封装(swipe)【转载】

    swipe介绍 1.查看源码语法,起点和终点四个坐标参数,duration是滑动屏幕持续的时间,时间越短速度越快.默认为None可不填,一般设置500-1000毫秒比较合适. swipe(self, ...

  3. postman的使用(转载)

    Postman介绍 Postman是google开发的一款功能强大的网页调试与发送网页HTTP请求,并能运行测试用例的的Chrome插件.其主要功能包括: 模拟各种HTTP requests 从常用的 ...

  4. springboot微服务的简单小结

    springboot微服务的简单小结 近来公司用springboot微服务,所以小结一下. 基础: 什么是SpingBoot微服务? 如何创建SpringBoot微服务? 如何管理和完善SpringB ...

  5. 数学【p1412】 经营与开发(秦九韶算法)

    顾z 你没有发现两个字里的blog都不一样嘛 qwq 题目描述-->P1412 经营与开发 分析 虽然看到\(Rank_1\)已经有了解释. 但我认为我能BB的更好 我还是决定来写一篇题解. q ...

  6. logstash filter plugin

    1. 基本语法%{NUMBER:duration} %{IP:client} 2. 支持的数据类型默认会把所有的匹配都当作字符串,比如0.043, 想要转成浮点数,可以%{NUMBER:num:flo ...

  7. Xamarin.Android真机测试提示[INSTALL_FAILED_UPDATE_INCOMPATIBLE]

    Xamarin.Android真机测试提示[INSTALL_FAILED_UPDATE_INCOMPATIBLE]   使用真机测试的时候,出现以下错误提示:   Deployment failed ...

  8. Codeforces Round #325 (Div. 2) Phillip and Trains dp

    原题连接:http://codeforces.com/contest/586/problem/D 题意: 就大家都玩过地铁奔跑这个游戏(我没玩过),然后给你个当前的地铁的状况,让你判断人是否能够出去. ...

  9. 队列 LinkedBlockingQueue

    1 api     java.util.concurrent包下的新类.LinkedBlockingQueue就是其中之一,是一个阻塞的线程安全的队列,底层采用链表实现.             Li ...

  10. linux之ssh无密码访问

    1. windows下用putty执行ssh连接vmware中的linux虚拟机 linux虚拟机的网络选择bridge模式,ifconfig 看到ip后与windows local machine之 ...