[JAVA · 初级]:9.Object类提供的常用方法

简介:

String toString() 

含义

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

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

Demo

<span style="font-size:18px;"><span style="font-size:18px;"><span style="font-size:18px;"><span style="font-size:18px;">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() ;
	}
}
</span></span></span></span>

boolean equals() 

含义

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

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

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

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

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

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

Demo

<span style="font-size:18px;"><span style="font-size:18px;"><span style="font-size:18px;"><span style="font-size:18px;">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不是同一个对象");
      }
}
</span></span></span></span>

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

结论

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

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

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

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

 业务思想

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





目录
相关文章
|
1月前
|
Java
【Java基础面试二十】、介绍一下Object类中的方法
这篇文章介绍了Java中Object类的常用方法,包括`getClass()`、`equals()`、`hashCode()`、`toString()`、`wait()`、`notify()`、`notifyAll()`和`clone()`,并提到了不推荐使用的`finalize()`方法。
【Java基础面试二十】、介绍一下Object类中的方法
|
30天前
|
JSON 前端开发 Java
java系列之 页面打印出 [object Object],[object Object]
文章解释了在前端页面打印JSON对象时出现`[object Object]`的原因,并提供了使用`JSON.stringify(json对象)`方法将对象转换为可读字符串的解决方案。
java系列之 页面打印出 [object Object],[object Object]
|
1月前
|
前端开发 Java 编译器
【前端学java】java中的Object类和前端中的Object有什么区别(9)
【8月更文挑战第10天】java中的Object类和前端中的Object有什么区别
31 0
【前端学java】java中的Object类和前端中的Object有什么区别(9)
|
20天前
|
UED 开发工具 iOS开发
Uno Platform大揭秘:如何在你的跨平台应用中,巧妙融入第三方库与服务,一键解锁无限可能,让应用功能飙升,用户体验爆棚!
【8月更文挑战第31天】Uno Platform 让开发者能用同一代码库打造 Windows、iOS、Android、macOS 甚至 Web 的多彩应用。本文介绍如何在 Uno Platform 中集成第三方库和服务,如 Mapbox 或 Google Maps 的 .NET SDK,以增强应用功能并提升用户体验。通过 NuGet 安装所需库,并在 XAML 页面中添加相应控件,即可实现地图等功能。尽管 Uno 平台减少了平台差异,但仍需关注版本兼容性和性能问题,确保应用在多平台上表现一致。掌握正确方法,让跨平台应用更出色。
26 0
|
27天前
【Azure Developer】使用PowerShell Where-Object方法过滤多维ArrayList时候,遇见的诡异问题 -- 当查找结果只有一个对象时,返回结果修改了对象结构,把多维变为一维
【Azure Developer】使用PowerShell Where-Object方法过滤多维ArrayList时候,遇见的诡异问题 -- 当查找结果只有一个对象时,返回结果修改了对象结构,把多维变为一维
|
1月前
|
Java API
【Java】Object、Objects、包装类、StringBuilder、StringJoiner
【Java】Object、Objects、包装类、StringBuilder、StringJoiner
|
4月前
|
Java
Java Object 类
5月更文挑战第16天
|
1月前
|
算法 Java
12 Java常用类(一)(内部类+object类+包装类)
12 Java常用类(一)(内部类+object类+包装类)
28 5
|
2月前
|
Java
Java中的Object类 ( 详解toString方法 | equals方法 )
Java中的Object类 ( 详解toString方法 | equals方法 )
|
4月前
|
存储 算法 Java
滚雪球学Java(42):探索对象的奥秘:解析Java中的Object类
【5月更文挑战第17天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
43 2
滚雪球学Java(42):探索对象的奥秘:解析Java中的Object类