JAVA equals() 方法 toString()方法 和 instanceof 关键字详解
发布日期:2021-06-30 15:37:20
浏览次数:2
分类:技术文章
本文共 3051 字,大约阅读时间需要 10 分钟。
//几何类
package com.day23.test;
//几何类
public class GeometricObject { protected String colorString; protected double weight; public GeometricObject(String colorString, double weight) { super(); this.colorString = colorString; this.weight = weight; } public GeometricObject() { colorString="white"; weight=1.0; } public String getColorString() { return colorString; } public void setColorString(String colorString) { this.colorString = colorString; } public double getWeight() { return weight; } public void setWeight(double weight) { this.weight = weight; } }
//圆类
package com.day23.test;
//圆的类 public class Circle extends GeometricObject{protected double radius;
public Circle() { super(); this.radius = 1.0; } public Circle(String colorString, double weight, double radius) { super(colorString, weight); this.radius = radius; } public double getRadius() { return radius; } public void setRadius(double radius) { this.radius = radius; } //求圆的面积 public double findArea() { return 3.14*radius*radius; } //重写equals 方法 对比两个圆的半径是否相等 @Override public boolean equals(Object obj) { // System.out.println("====================="); // System.out.println(this.toString()); // System.out.println(obj.toString()); // System.out.println("====================="); // TODO Auto-generated method stub // return super.equals(obj); if(this ==obj) { System.out.println("3333333333333333"); return true; } //判断是否是一个实例 //instanceof 说明 // 在面向对象 多态的概念中 // 如果声明是父类 实例化是子类的时候 // 这时候声明的父类想使用子类的特有的方法 // 就要先使用 instanceof 判断 声明的对象 是否是这个类的实例 // 如果 返回true 就可以使用向下强转 来调用子类特有的方法 //例: // 声明 父类 = new 子类 //Person p2=new Man(); // 多态的表现形式 // 这时候 判断 声明的对象是否是子类的实例化 //if(p2 instanceof Man) { // 如果是 强转这个类型 调用相对应的方法 // Man m2= (Man)p2; // m2.earnMoney(); // System.out.println("22222"); // } if(obj instanceof Circle) { Circle circle= (Circle)obj; return this.radius==circle.radius; } return false; } public Circle(double radius) { this.radius = radius; } //重写 toString @Override public String toString() { return "Circle [radius=" + radius + "]"; } }
测试类
package com.day23.test;
import java.util.Date;
public class Test {
public static void main(String[] args) { System.out.println("Object类 他在java.lang包下面"); Order order = new Order(); System.out.println(order.getClass().getSuperclass()); //equals() 方法 比较两个对象是否相同 String str1=new String("Json"); String str2=new String("Json"); System.out.println(str1.equals(str2)); //true // == 与 equals方法区别 //如果自定义的类 使用equals() 方法 比较的是内存地址 虽然内容一样 // 但是内存地址不同 所有返回false // 如果使用的是内置的类 比如 String \ Date \ File 等这些类 // 比较的是 内容 因为这些内置的类 对 obj中的equals方法进行了重写 // toString 方法 System.out.println(str1.toString()); //练习题 //创建两个circle类 判断其颜色是否相等 //利用 equals 判断两个半径是否相当 //利用重写的 toString 方法 输出半径 Circle circle1=new Circle(2.3); Circle circle2=new Circle("white",2.3,2.3); System.out.println("颜色是否相等:"+circle1.getColorString().equals(circle2.getColorString())); //true System.out.println(circle1.equals(circle1)); //直接输出 circle1 对象 会直接调用重写的 toString() 方法 //如果没有重写 则会放回 地址值和类名 //System.out.println(circle1); //System.out.println(circle2.toString()); }}
class Order{
}转载地址:https://jsonll.blog.csdn.net/article/details/107924886 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年05月01日 11时35分48秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Mysql 入门
2019-04-30
linux 查看文件夹权限
2019-04-30
ubuntu 快捷键
2019-04-30
linux 根目录下文件夹分析
2019-04-30
linux 查看分区和文件大小
2019-04-30
Not using PCAP_FRAMES 解释(snort中)
2019-04-30
技术转管理?这些“坑”你要绕道走
2019-04-30
领域驱动设计(DDD)前夜:面向对象思想
2019-04-30
Camera驱动调试小记
2019-04-30
对于中断函数返回值的分析
2019-04-30
四线触摸屏原理
2019-04-30
C/C++如何返回一个数组/指针
2019-04-30
腾讯AI语音识别API踩坑记录
2019-04-30
YbtOJ——递推算法【例题4】传球游戏
2019-04-30
YbtOJ——字符串处理【例题1】数字反转
2019-04-30
MatConvNet安装
2019-05-01
ROS安装与卸载
2019-05-01
安装openrave 0.9的各种依赖包
2019-05-01
trajopt代码使用
2019-05-01
kpm代码使用细节
2019-05-01