• toString&&equals方法


                                                                                       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);这是其中的一种方法

    还可以有其他的方法。

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

                                                                                                         

     

        

      

    编程是一门艺术,要爱就要深爱。
  • 相关阅读:
    [Taro] 解决 使用 Taro UI 小程序下 Iconfont 图标 不显示问题
    [Taro] Taro 环境安装 (一)
    [RN] react-native FlatList 实现列表选中的最佳方式(刷新指定Item)
    [RN] React Native FlatList 选中后 状态没有立即发生改变,而在下一次生效的问题
    [RN] React Native 使用 Redux 比较详细和深刻的教程
    [Taro] taro 缓存
    个人总结第十五周
    个人总结第十四周
    个人总结第十三周
    个人总结第十二周
  • 原文地址:https://www.cnblogs.com/pwhit/p/5003690.html
Copyright © 2020-2023  润新知