面向对象-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类常见方法
继承 概念: ① 继承背后的思想就是基于已存在的类来构建新类; ② 当从已存在类继承时,就重用了它的方法和属性,还可以添加新的方法和属性来定制新类以应对需求; ③ 当从其它类导出的类叫作子 ...
随机推荐
- [BZOJ1821][JSOI2010]Group 部落划分 Group 最小生成树 贪心
1821: [JSOI2010]Group 部落划分 Group Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 2943 Solved: 1390[S ...
- 手机估值计算的jquery代码
<script type="text/javascript"> $('#inquiry').click(function(){ var total=0; var cou ...
- #424 Div2 E
#424 Div2 E 题意 给出一个 n 个数的数列,从前往后取数,如果第一个数是当前数列的最小值,则取出,否则将它放到数列尾端,问使数列为空需要多少步操作. 分析 用数据结构去模拟. 线段树维护区 ...
- luogu P1284 三角形牧场
题目描述 和所有人一样,奶牛喜欢变化.它们正在设想新造型的牧场.奶牛建筑师Hei想建造围有漂亮白色栅栏的三角形牧场.她拥有N(3≤N≤40)块木板,每块的长度Li(1≤Li≤40)都是整数,她想用所有 ...
- POJ 2739:Sum of Consecutive Prime Numbers(Two pointers)
[题目链接] http://poj.org/problem?id=2739 [题目大意] 求出一个数能被拆分为相邻素数相加的种类 [题解] 将素数筛出到一个数组,题目转化为求区段和等于某数的次数,尺取 ...
- ssh框架整合shiro权限
关于整合shiro,首先在ssh整合的基础上进行组合 1.首先,要导入几个依赖(整合ssh与shiro的依赖): <properties><shiro.version>1.3. ...
- Systems Performance: Enterprise and the Cloud 读书笔记系列
http://blog.csdn.net/xiaonanAndroid/article/category/2557735
- HTTP抓包工具Fiddler
http://blog.csdn.net/kobejayandy/article/details/16908261
- linux之ls指令的关键字过滤显示
假设~/admin的文件夹下面有几个文件: a.pm b.pm c.pl d.pl e.pml 想只显示.pm结尾的可以用: ls *.pm 或者 ls | grep .pm,两者等价. 想显示b.开 ...
- JAVA常见算法题(八)
package com.xiaowu.demo; /** * 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字.例如2+22+222+2222+22222(此时共有5个数相加), ...