[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()的使用则是,给我们以警告,注意基本数据的比较与对象比较的区别和联系,引以为戒,以免造成不必要的损失。

时间: 2024-12-29 17:50:12

[JAVA &#183; 初级]:9.Object类提供的常用方法的相关文章

[JAVA &amp;#183; 初级]:10.如何更好的理解多态

说道多态,一定离不开其它两大特性:封装和继承.而多态是在它们的基础之上表现而来的,息息相关.在记忆中,每一次学习面向对象的时候,都与这三大特性有扯不开的关系,其是面向对象的重点,当然也算是难点.但是,它们就像是一层窗户纸,只要有一个缝隙,你就完全可以搞懂什么是面向对象.下面来看看关于多态的一些介绍吧: 是什么? 文学角度:一千个读者就有一千零一个哈姆雷特: 公司主管角度:老板交代下来相同任务,每个人完成的情况不同: 专业角度:同种类的多个对象,在接收到同一个消息时却产生了不同反应和效果: 从代码

[JAVA &amp;#183; 初级]:11.终结者-final

关于final关键字的总结,是很容易学习和掌握的,大致分为用final修饰的符号常量.类.方法.属性四部分,而这四部分的内容也是我们必须掌握的,很实用,在项目中经常来利用final关键字来帮忙以完成我们特定的任务.下面就来看看最终的final: 符号常量     用 final 修饰的变量就称之为最终变量,也称之为符号常量. 例如:  double PI = 3.14; ===>>>  final double PI = 3.14;  //符号常量 Demo <span style

[JAVA &amp;#183; 初级]:2.变量 &amp;amp; Integer和int的区别

变量 定义:它是计算机内存中一个存储单元,用来存储制定类型的数据: 性质:变量的值(存储的内容)会随程序的运行而产生变化. 三要素:            1) 名称: 注意: 变量名必须符合标识符的定义.            2) 类型: 例如: int 表示整型数据.            3) 作用域:指变量起作用的范围. 声明:            在java中,变量必须先声明,后使用.            格式1:  类型名 变量名 ;           格式2:  类型名 变

[JAVA &amp;#183; 初级]:5.以我微观看变量

背景 本篇博文主要讨论的是:局部变量和实例变量在内存的分配情况?是继[JAVA · 初级]:2.变量之后的又一次关于JAVA中变量的一些深入的解析.之前,关于变量的一些简单的总结已经'打包'至链接中的博文中,欢迎交流学习. 由于最近做项目的过程中,遇到的变量的变化情况,不能够很清楚的进行过程化处理,整理资料,总结一下. Demo <span style="font-size:18px;"><span style="font-size:18px;"&

[JAVA &amp;#183; 初级]:12.内部类

Java语言允许在类中再定义类,这种在其它类内部定义的类就叫内部类.内部类又分为:常规内部类.局部内部类.匿名内部类和静态嵌套类四种. 常规/局部内部类 包含在一个类的类体中的类. 扩展:外部类的概念:包含了内部类的类. 问:在内部类的方法中,是否可以直接访问外部类的成员? 答: 肯定的. 问:在外部类的方法中,是否可以直接访问内部类的成员? 案: 否定的. 问: 那,如何访问? 答: 先创建内部类的对象,再通过对象去访问. Demo <span style="font-size:18px

[JAVA &amp;#183; 初级]:3.转义字符

定义 所有的ASCII码都可以用"\"加数字(一般是8进制数字)来表示.而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字字符,都不是它本来的ASCII字符意思了. 常见转移字符的含义表: 许多字符都有相应的转义字符序列,包括单引号(\').换行(\n).制表符(\t)和反斜线(\\).你可以在字符字面常量和字符串字面常量中使用转义字符序列.  运行机制 实际上,你可以通过使用被称为八进制转义字

[JAVA &amp;#183; 初级]:6.特殊关键字:this

基本用法 1) 它的使用方式有两种:            a) this.属性或 this.方法            b) this() 或  this(参数)         2) 它代表什么含义?            a) 当 this 以   " this. "方式出现时,它代表当前对象.            b)this() 代表默认构造器;  this(参数)代表具有相同参数的构造器.         3) this使用时,应注意什么?            a) 当

[JAVA &amp;#183; 初级]:4.深入理解自增&amp;amp;自减运算

定义 自增,自减运算符: ++   --                  它们是计算机专家自创的特有运算符.                  ++ 有两种身份                  a) 前加  ++a: 其规则是: a先增加,后使用.                  b) 后加  a++: 其规则是: a先使用,后增加.                  注意: 不论是前加 ++a;  还是后加 a++; 它们最终等价于  a = a + 1; --有两种身份:       

[JAVA &amp;#183; 初级]:1.环境变量的配置

起因 对于JAVA运行环境的配置,可以称之为"通向JAVA世界的一扇大门".而在途中的"颠沛流离",便当做是我们的成长的磨砺吧! 相信很多初学者也会因为JAVA运行环境的设置而操作多次,下面便是自己在最近时间内,关于环境变量的设置的总结,利人利己,做更好的自己. 设置 其实,设置环境变量有两种方法,打开环境变量的设置窗口,可以很清楚的看到有用户变量和系统变量两部分.而这两种方法便是设置用户变量和系统变量. 其区别:用户变量的设置,只是针对当前的用户使用,若是其他本电