java学习之路---Object类
2013-11-19 13:19
176 查看
在java中所有的类都有一个父类就是Object类
这里只重写toString 和equals 方法
public class ToStringTest
{
public static void main(String[]
args) {
System. out.println("toString" .toString());
System. out.println("toString" );
}
}
结果:
toString
toString
结果发现,在字符串在调用toString之后没有变化,这说明类已经继承Object
所以下面的代码就是来重写ToString 方法
public class ToStringTest1
{
[align=left] private String name;[/align]
[align=left] private int age ;[/align]
[align=left] [/align]
public ToStringTest1(String
name, int age) {
this.name =
name;
this.age =
age;
[align=left] }[/align]
[align=left]
[/align]
public String
getName() {
[align=left] return name ;[/align]
[align=left] }[/align]
[align=left]
[/align]
public void setName(String
name) {
this.name =
name;
[align=left] }[/align]
[align=left]
[/align]
public int getAge()
{
[align=left] return age ;[/align]
[align=left] }[/align]
[align=left]
[/align]
public void setAge(int age)
{
this.age =
age;
[align=left] }[/align]
[align=left]
[/align]
public static void main(String[]
args) {
System. out.println(new ToStringTest1("like" ,
20));
[align=left] }[/align]
[align=left]
[/align]
[align=left] @Override[/align]
public String
toString() {
[align=left] [/align]
return "名字:" +this.name+"
年龄:"+ age;
[align=left] }[/align]
[align=left] [/align]
[align=left] [/align]
[align=left]}[/align]
[align=left]
[/align]
[align=left]结果:[/align]
[align=left]名字:like 年龄:20[/align]
[align=left]
[/align]
[align=left]重写 equals [/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]Object 类中原来的equals 是比较地址的[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]现在来重写这个方法[/align]
[align=left]
[/align]
[align=left]public class ToStringTest2 {[/align]
[align=left] [/align]
[align=left] private String userName;[/align]
[align=left] [/align]
public ToStringTest2(String
userName) {
this.userName =
userName;
[align=left] }[/align]
[align=left]
[/align]
[align=left] /*源码[/align]
[align=left] * public boolean equals(Object obj) {[/align]
[align=left] return (this == obj);[/align]
[align=left] }[/align]
[align=left] *[/align]
[align=left] * */[/align]
[align=left] @Override[/align]
public boolean equals(Object
obj) {
[align=left] [/align]
[align=left] if(this ==obj){[/align]
[align=left] return true ;[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] if(!(obj instanceof ToStringTest2 )){//判断传进来的是否是ToStringTest2的实例,如果不是,则直接返回false[/align]
[align=left] return false ;[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] ToStringTest2 per=(ToStringTest2 )obj;//向下转型[/align]
[align=left] [/align]
[align=left] if(per.userName .equals(this.userName)){[/align]
[align=left] return true ;[/align]
[align=left] } else{[/align]
[align=left] return false ;[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] }[/align]
[align=left]
[/align]
public static void main(String[]
args) {
[align=left] [/align]
[align=left] ToStringTest2 p1=new ToStringTest2 ("like" );[/align]
[align=left] ToStringTest2 p2=new ToStringTest2 ("li" );[/align]
[align=left] [/align]
[align=left] ToStringTest2 p11=new ToStringTest2 ("like" );[/align]
[align=left] [/align]
[align=left] ToStringTest2 p22=new ToStringTest2 ("like" );[/align]
[align=left] System. out.println("p1和p2是否相等:" +p1.equals(p2));[/align]
[align=left] System. out.println("p11和p22是否相等:" +p11.equals(p22));[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left]}[/align]
[align=left]
[/align]
[align=left]结果:[/align]
[align=left]p1和p2是否相等:false[/align]
[align=left]p11和p22是否相等:true[/align]
补充说明下:由于所有的类都是Object的类,所以Object可以用来接收所有的对象
这里只重写toString 和equals 方法
public class ToStringTest
{
public static void main(String[]
args) {
System. out.println("toString" .toString());
System. out.println("toString" );
}
}
结果:
toString
toString
结果发现,在字符串在调用toString之后没有变化,这说明类已经继承Object
所以下面的代码就是来重写ToString 方法
public class ToStringTest1
{
[align=left] private String name;[/align]
[align=left] private int age ;[/align]
[align=left] [/align]
public ToStringTest1(String
name, int age) {
this.name =
name;
this.age =
age;
[align=left] }[/align]
[align=left]
[/align]
public String
getName() {
[align=left] return name ;[/align]
[align=left] }[/align]
[align=left]
[/align]
public void setName(String
name) {
this.name =
name;
[align=left] }[/align]
[align=left]
[/align]
public int getAge()
{
[align=left] return age ;[/align]
[align=left] }[/align]
[align=left]
[/align]
public void setAge(int age)
{
this.age =
age;
[align=left] }[/align]
[align=left]
[/align]
public static void main(String[]
args) {
System. out.println(new ToStringTest1("like" ,
20));
[align=left] }[/align]
[align=left]
[/align]
[align=left] @Override[/align]
public String
toString() {
[align=left] [/align]
return "名字:" +this.name+"
年龄:"+ age;
[align=left] }[/align]
[align=left] [/align]
[align=left] [/align]
[align=left]}[/align]
[align=left]
[/align]
[align=left]结果:[/align]
[align=left]名字:like 年龄:20[/align]
[align=left]
[/align]
[align=left]重写 equals [/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]Object 类中原来的equals 是比较地址的[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]现在来重写这个方法[/align]
[align=left]
[/align]
[align=left]public class ToStringTest2 {[/align]
[align=left] [/align]
[align=left] private String userName;[/align]
[align=left] [/align]
public ToStringTest2(String
userName) {
this.userName =
userName;
[align=left] }[/align]
[align=left]
[/align]
[align=left] /*源码[/align]
[align=left] * public boolean equals(Object obj) {[/align]
[align=left] return (this == obj);[/align]
[align=left] }[/align]
[align=left] *[/align]
[align=left] * */[/align]
[align=left] @Override[/align]
public boolean equals(Object
obj) {
[align=left] [/align]
[align=left] if(this ==obj){[/align]
[align=left] return true ;[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] if(!(obj instanceof ToStringTest2 )){//判断传进来的是否是ToStringTest2的实例,如果不是,则直接返回false[/align]
[align=left] return false ;[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] ToStringTest2 per=(ToStringTest2 )obj;//向下转型[/align]
[align=left] [/align]
[align=left] if(per.userName .equals(this.userName)){[/align]
[align=left] return true ;[/align]
[align=left] } else{[/align]
[align=left] return false ;[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] }[/align]
[align=left]
[/align]
public static void main(String[]
args) {
[align=left] [/align]
[align=left] ToStringTest2 p1=new ToStringTest2 ("like" );[/align]
[align=left] ToStringTest2 p2=new ToStringTest2 ("li" );[/align]
[align=left] [/align]
[align=left] ToStringTest2 p11=new ToStringTest2 ("like" );[/align]
[align=left] [/align]
[align=left] ToStringTest2 p22=new ToStringTest2 ("like" );[/align]
[align=left] System. out.println("p1和p2是否相等:" +p1.equals(p2));[/align]
[align=left] System. out.println("p11和p22是否相等:" +p11.equals(p22));[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left]}[/align]
[align=left]
[/align]
[align=left]结果:[/align]
[align=left]p1和p2是否相等:false[/align]
[align=left]p11和p22是否相等:true[/align]
补充说明下:由于所有的类都是Object的类,所以Object可以用来接收所有的对象
相关文章推荐
- java学习之路 之 高级类特性1-Object类 及 练习题
- 菜鸟入门:Java程序员学习之路
- java学习之路--设计模式--适配器模式
- 我的java学习之路
- java学习之路----异常处理机制
- java学习之路- 程序打包成jar
- java学习之旅40--面向对象_13_继承_Object类用法_toString和equals方法_重写toString
- [置顶] JAVA学习之路--与JVM的亲密接触
- java学习之路之基本语法-运算符练习题
- ddpush 学习之路 4 PropertyUtil.java
- JAVA for mac 的学习之路
- 黑马程序员--Java基础学习笔记【Object类、String类】
- java学习之路 之 基本语法-程序流程控制-(if-else)语句练习题
- Java学习之路_0003多线程(1)
- Java学习之路:不走弯路,就是捷径
- Java学习之路:不走弯路,就是捷径[生活也是如此啊]
- java痛苦学习之路[十]--日常问题汇总
- JAVA学习之路与大家分享
- Java学习之路:不走弯路,就是捷径
- Hibernate的学习之路十九(一对多的JavaBean编写和映射的配置文件的编写)