博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[JAVA · 初级]:9.Object类提供的常用方法
阅读量:6264 次
发布时间:2019-06-22

本文共 2519 字,大约阅读时间需要 8 分钟。

String toString() 

含义

此方法用来将对象的信息以字符串方式反馈出去。 规定: 此方法是默认调用的(自动调用).

因此,子类的对象要想通过toString()方法来反馈信息,则必须重写它。

Demo

package com.hqg.oop.d34;import com.hqg.oop.d33.a1.MyRectangle;//部分代码展示public class MyCube {	//属性	private MyRectangle  mr;  //将长方形作为当前长方体的底面	private int d;  //长方体的高		//构造器	public MyCube() {	}	public MyCube( MyRectangle  mr, int d ){		this.d = d;		this.mr = mr;	}		//设定器	public void setMr( MyRectangle  mr ){		this.mr = mr;	}	public void setD(int d) {		this.d = d;	}		//访问器	public MyRectangle getMr() {		return mr;	}	public int getD() {		return d;	}		//求体积	public int volume(){		return  mr.area() * d ;	}		//求表面积	public int areas(){		return 2 * mr.area() + 2 * mr.getH() * d + 2 * mr.getW() * d ;  	}		//将所有信息以字符串反馈 	public String toString(){		return "已知长方体的底面信息如下:\n" + mr + "\n同时,已知长方体的高度d = " + d 		+ "\n则,这个长方体的体积volume = " + this.volume() + ",其表面积 ares = " + this.areas();	}}class LittleCube extends MyCube{private String name ;		public LittleCube() {		super(); //自动的,是隐藏的.	}	public Little( String name) {		super();		this.name = name;	}	public void setName(String name) {		this.name = name;	}	public String getName() {		return name;	}	//子类的对象要想通过toString()方法来反馈信息,则必须重写它。	public String toString(){		return MyCube.toString() + "它的名字是" + this.name() ;	}}

boolean equals() 

含义

此方法用来比较两个对象是否相等。

使用方式: boolean flag = obj1.equals( obj2 ); 

即: 比较 obj1和obj2对应的对象是否相等。

规则: 祖先规定,当obj1和obj2引用的是同一个对象时,则结果为true; 反之,则结果为false。

结论: 在自定义类中,若要判断两个对象内容是否一样(相等),则必须重写 equals()方法。

目的: 为对象判断相等提供依据。

Demo

packagecom.hqg.oop.d34.a1;public classStringTest {      public static void main(String[] args) {           int x = 10;           int y = 20;                     boolean flag1 = x == y;                     String st1 = new String("中国北京") ;           String st2 = new String("中国北京");                     boolean flag = st1 == st2 ;  //判断对象地址是否一样。           System.out.println("flag =" + flag  );                     flag = st1.equals( st2 ); //判断对象的内容是否完全一样。           System.out.println("flag =" + flag  );                     String s1 = "中国北京";           String s2 = "中国北京";                     flag = s1 == s2 ;           System.out.println( flag ? "s1和s2是同一个对象" : "s1和s2不是同一个对象");      }}

由上面的demo判断equals()和==的区别及联系,下面看内存分析图,理解动态处理机制:

结论

1.凡是对象比较相等,使用 equals()方法;

1.   凡是基本类型的数据判断相等,则使用 == ;

2.   ==用来判断对象地址是否一样;

3.   Equals()判断对象内容是否完全一样。

 业务思想

关于String toString()方法是对于项目中输出时的一个变更计划,无论是对于将对象的信息以字符串方式反馈出去,方便客户的理解和使用,还是在子类中输出方法的重写,都能够加强用户对于本应用程序的喜爱程度,此项必须加强使用。而对于boolean equals()的使用则是,给我们以警告,注意基本数据的比较与对象比较的区别和联系,引以为戒,以免造成不必要的损失。

你可能感兴趣的文章
杭电2048--神、上帝以及老天爷
查看>>
CSS选择器
查看>>
excel
查看>>
echarts 通过ajax实现动态数据加载
查看>>
python-web-server-tcp1
查看>>
shell脚本入门
查看>>
Management
查看>>
URAL 2048 Histroy(打表+模拟)
查看>>
深入理解String, StringBuffer, StringBuilder的区别(基于JDK1.8)
查看>>
【转】oracle in与exists语句的区别
查看>>
RPC 使用中的一些注意点
查看>>
Django_rest framework 框架介绍
查看>>
Hello world,Hello 2014,Bye 2013
查看>>
python之正则表达式模块
查看>>
BFC和清除浮动
查看>>
笔记:2016-06-04
查看>>
ECSHOP 布局参考图
查看>>
Entity Framework 延伸系列目录
查看>>
Java 代码安全(一) —— 避免用String储存敏感数据
查看>>
制作一个最小Linux系统
查看>>