面向对象-Object类
一.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类的更多相关文章
- Java面向对象 Object类 内部类
Java面向对象 Object类 内部类 知识概要: 一:Object类 二:内部类 匿名内部类的写法 1.Object O ...
- JS面向对象(3) -- Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...
- 面向对象编程(九)——面向对象三大特性之继承以及重写、Object类的介绍
面向对象三大特性 面向对象三大特征:继承 :封装/隐藏 :多态(为了适应需求的多种变化,使代码变得更加通用!) 封装:主要实现了隐藏细节,对用户提供访问接口,无需关心方法的具体实现. 继承:很好的实现 ...
- Java 面向对象概述原理: 多态、Object类,转型(8)
Java 面向对象概述原理: 多态.Object类,转型(8) http://docs.oracle.com/javase/tutorial/java/IandI/override.html Java ...
- JAVASE(十)面向对象:特性之多态性、Object类、代码块、关键字:static、final、父子类执行顺序
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 1.面向对象的特性之:多态性 多态性的理解:事物的多种形态 1.1 广义上多态性的体现:①方法的重写,重 ...
- 13_Python的面向对象编程-类class,对象object,实例instance
1.面向对象概述 1.类是用来描述对象的工具,把拥有相同属性和行为的对象分为一组 2.对象是由类实例化出来的一个具体的对象 属性: 对象拥有的名词,用变量表示 ...
- JavaSE基础知识(5)—面向对象(Object类)
一.包 java.lang包,属于java中的核心包,系统默认导入的,不用手动导入该包中的类:Object.System.String.Integer等 1.包的好处 ①分类管理java文件,查找和管 ...
- 面向对象高级——Object类、包装类以及匿名内部类
Object类 知识点:掌握Object类的作用.掌握Object类中toString().equal()方法的作用 ,掌握Object接收引用数据类型的操作. 假设一个类在定义时没有明白指明继承哪 ...
- 面向对象编程(四)继承,概念及super关键字,final关键字,Object类常见方法
继承 概念: ① 继承背后的思想就是基于已存在的类来构建新类; ② 当从已存在类继承时,就重用了它的方法和属性,还可以添加新的方法和属性来定制新类以应对需求; ③ 当从其它类导出的类叫作子 ...
随机推荐
- Hmailserver搭建邮件服务器
Hmailserver安装很简单不需要多说,自己去百度 Hmailserver配置: 输入安装时设置的密码登录Hmailserver 添加域名,如:域名是:mail.abc.com这里添加的时候应该填 ...
- Ubuntu16.10 +python3.5+Tensorflow 1.1
1.python版本检查 因为Ubuntu16.10已经默认安装了python2.7 和 3.5,检查python版本, 如果为python2.7,那么就需要我们设置python3.5为默认版本. 查 ...
- Python的程序结构[4] -> 函数/Function[2] -> 匿名函数
匿名函数 / Anonymous Function 匿名函数是一种不需要绑定函数名的函数 (i.e. functions that are not bound to a name).匿名函数通过 la ...
- manacher(马拉车)算法详解+例题一道【bzoj3790】【神奇项链】
[pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=39091399 (CSDN好像有bug,不知道为什 ...
- BZOJ 3864 Hero Meets Devil
题目大意 给定一个由AGCT组成的串\(t\), 求对于所有的\(L \in [1, |t|]\), 有多少个由AGCT组成的串\(s\)满足\(LCS(s, t) = L\). Solution 传 ...
- thinkphp3.0增加setInc、setDec方法
thinkphp3.0增加setInc.setDec方法 thinkphp3.0增加setInc.setDec方法,今天查看thinkphp2.0的方法setInc.setDec时是这样写的: 而对于 ...
- jtds链接SqlServer数据库(整合)
先前使用的时候没做汇总,现在结合遇到的问题总结下. 开始使用jdbc驱动配置调用SqlServer不合适,根据网上的资料修改成了jtds配置方式. 当时使用的maven配置,配置如下: <spa ...
- C#实现简单的字符串加密
最近用到一些字符串加密,而.net中提供的加密算法中用起来比较复杂,便简单的封装了一下,方便日后使用. public class Encrypt { static Enco ...
- pr_debug、dev_dbg等动态调试二
内核版本:Linux-3.14 作者:彭东林 邮箱:pengdonglin137@163.com 下面我们简要分析 1: echo -n "file demo.c +p" > ...
- 【Linux】CentOS7 添加常用源
CentOS 的官方源去掉了一些与版权有关的软件,因此想要安装这些软件或者手动下载安装,或者使用其他源. 下面是添加EPEL源和RPMforge源的步骤. 1.首先, 添加源之前要确定系统架构及版本 ...