zoukankan      html  css  js  c++  java
  • 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);这是其中的一种方法

    还可以有其他的方法。

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

                                                                                                         

     

        

      

    编程是一门艺术,要爱就要深爱。
  • 相关阅读:
    Django Model数据访问Making queries
    Tomcat 7源码学习笔记 -5 web app自动reload
    tomcat启动提示server.xml的context节点中不支持source属性警告的解决方法
    javaweb学习总结(三十九)——数据库连接池
    共享文件系统
    高可用+负载均衡 方案
    Java对象克隆(Clone)及Cloneable接口、Serializable接口的深入探讨
    Java对象序列化给分布式计算带来的方便
    JAVABEAN必须继承序列化借口的作用
    keep-alive pipeline区别
  • 原文地址:https://www.cnblogs.com/pwhit/p/5003690.html
Copyright © 2011-2022 走看看