toString&&equals方法

先来看看这个题该怎样做?

分析:

1.java里的三大特性,有封装,继承,多态(方法的重载),super,this等关键字

2.常用的方法,equals方法,toString方法

3. double向字符串类型转换。

代码:

import java.util.*;
class GeometricObject
{
    protected  String  color ;
    protected  double  weight;
    
    protected GeometricObject() {
        color="red";
        weight=1.0;
        
    }
    protected GeometricObject(String color, double weight) {
        
        this.color = color;
        this.weight = weight;
    }

public String getColor() {
        return color;
    }
    public void setColor(String color) {
        this.color = color;
    }
    public double getWeight() {
        return weight;
    }
    public void setWeight(double weight) {
        this.weight = weight;
    }
    }

class Circle1 extends GeometricObject
{
    private double radius;

public Circle1() {
         super("res",1.0);
         radius=1.0;
    }

public Circle1(double radius) {
         super("res",1.0);
        
        this.radius = radius;
    }
    public Circle1(String color, double weight,double radius) {
         super(color, weight);
         this.radius=radius;
    
    }

//getter setter字段
    public double getRadius() {
        return radius;
    }

public void setRadius(double radius) {
        this.radius = radius;
    }
  //计算圆的面积
    public double findArea()
    {
        return Math.PI*radius*radius;
    }
    //布尔方法
    public boolean equals(Circle1 c)
    {
        if(c.radius==this.radius)
            return true;
        else
            return false;
    }
    public String toString()
    {   
        System.out.println("圆的半径为:"+radius);
        return String.valueOf(radius);
    }

}

public class TestCicle {
    public static void main(String[] args)
    {
        Circle1 c1=new Circle1("red",1.0,2.0);
        
        Circle1 c2=new Circle1("red",1.0,2.0);
        
        if(c1.color==c2.color)
        {
            System.out.println("颜色相同");
        }
        else
        {
            System.out.println("颜色不相同");
        }
        
        if(c1.equals(c1)==c2.equals(c2))
        {
            System.out.println("半径相同");
        }
        else
        {
            System.out.println("半径不相同");
        }
            System.out.println(c1.equals(c2));
            c1.toString();
    }

}

运行结果:

颜色相同
   半径相同
     true
  圆的半径为:2.0

其中equals方法时用来比较当前对象的类容是否与参数指点的字符串的内容相同。

本题中比较c1和c2两个对象的半径是否相同。

String s1=new String("hello");

String s2=new String("hello");

s1.equals(s2);

结果是: true ,s1和s2的内容都是hello

注意:比较字符串是不能用"==" ,当用"==",实际是判断两个字符串是否为同一个对象,即使类容相同,但它们是不同的对象

s1==s2 ,这样比较是错误的。

需要说明的是本题中

public String toString()
    {   
        System.out.println("圆的半径为:"+radius);
        return String.valueOf(radius);
    }

定义的是一个字符串方法,则返回值必须String类型的。其中radius是double类型的,需要将double类型的radius转换为String类型 ,方法有多种 String.valueOf(radius);这是其中的一种方法

还可以有其他的方法。

希望这篇小小的博客对大家有帮助,如果帖子中有错误之处还希望大家批评,指点。

toString&&equals方法的更多相关文章

  1. JAVA基础--toString, equals方法

    ==比较的是地址 equals比较的是内容. 所以要重写object的equals方法. public class TestEquals { public static void main(Strin ...

  2. java数组、java.lang.String、java.util.Arrays、java.lang.Object的toString()方法和equals()方法详解

    public class Test { public static void main(String[] args) { int[] a = {1, 2, 4, 6}; int[] b = a; in ...

  3. Object类—复写equals方法,hashCode方法,toString方法

    Object:所有类的根类. Object是不断抽取而来,具备着所有对象都具备的共性内容. class Person extends Object { private int age; Person( ...

  4. Object、String、数组的 toString() 方法和 equals() 方法及java.util.Arrays

    public class Test { public static void main(String[] args) { int[] a = {1, 2, 4, 6}; int[] b = a; in ...

  5. Java中的Object类的toString()方法,equals()方法

    Object类是所有类的父类,若没有明确使用extends关键字明确表示该类继承哪个类,那么它就默认继承Object类,也就可以使用Object中的方法: 1.toString 如果输出一个对象的时候 ...

  6. 重新编写equals()方法,hashCode()方法,以及toString(),提供自定义的相等标准,以及自描述方法

    下面给出一个实例,重新编写equals()方法,提供自定义的相等标准 public class PersonTest { public static void main(String[] args) ...

  7. [18/11/30] toString()方法 和 equals() 方法

    一. toString() 方法 Object类中定义有public String toString()方法,其返回值是 String 类型  默认: return getClass().getNam ...

  8. 1.9(java学习笔记)object类及toString()与equals()方法

    object类 java中objec是所有类公共的父类,一个类只要没有明显的继承某一类,那么它就是继承object类. 例如 class Person {......};和class Person e ...

  9. 03_10_Object类的toString equals等方法

    03_10_Object类的toString equals等方法 1. toString方法 Object类中定义有public String toString()方法,其返回值是String类型,描 ...

随机推荐

  1. JQuery slideToggle闪烁问题及解决办法

    在使用slideToggle的时候,会出现在实现隐藏效果后闪烁一下在消失,找了很多原因,本以为是浏览器问题,后来发现是文档定义类型的问题... 原来页面的文档定义:<!DOCTYPE HTML ...

  2. 从一个标准 url 里取出文件的扩展名

    在php预定义函数中有一个叫做"pathinfo()"的函数,专门用于返回文件路径信息的. 那好,我们就来看一下它能为我们做些什么?       语法:pathinfo($url_ ...

  3. Installing MySQL Server

    Installing MySQL Server Here we will learn how to Compile and Install the MySQL Server from source c ...

  4. python生成随机二进制文件

    import random def genFile(filename,block=1,size=1): f=open(filename,"wb") content="&q ...

  5. 2016021801 - Java内存区域学习笔记

    根据<深入理解java虚拟机>学习归纳整理学习笔记 程序计数器 用途:当前线程的字节码文件的行号指示器.(当前机场负责控制飞机降落的空管员:当前线程表示当前机场, 所执行的字节码等同于被等 ...

  6. [译]36 Days of Web Testing(四)

    Day 19: UX  用户体验 Why ? 最近UX变得越来越火,用户提现往往会直接联想到易用性和设计. 在我看来,UX不仅仅是这两点.UX, User Experience ,对我而言,不单单是产 ...

  7. 对Gearman中client,worker,jobserver的理解

    在gearman的官网http://gearman.org/有以下的一段说明 A Gearman powered application consists of three parts: a clie ...

  8. 转-Python optionParser模块的使用方法

    Python  有两个内建的模块用于处理命令行参数: 一个是  getopt,<Deep in python>一书中也有提到,只能简单处理 命令行参数: 另一个是  optparse,它功 ...

  9. 【UVA11294】Wedding (2-SAT)

    题意: 有N-1对夫妻参加一个婚宴,所有人都坐在一个长长的餐桌左侧或者右侧,新郎和新娘面做面坐在桌子的两侧.由于新娘的头饰很复杂,她无法看到和她坐在同一侧餐桌的人,只能看到对面餐桌的人.任意一对夫妻不 ...

  10. synchronize的心得

    记录一下synchronize(this).synchronize(A.class).private B  b= new B(); synchronize(b) .synchronize static ...