繁体   English   中英

接收内存位置而不是字符串输出

[英]reciving memory location instead of string output

当我运行程序而不是正常应该从RightTriangle类中的toString方法接收字符串时,应该从驱动程序打印对象时接收字符串的内存位置。 我该如何解决这个问题?

这是RightTriangleDriver类

import java.util.*;
public class RightTriangleDriver
{
    public static void main ( String [] args )
        {
        Scanner reader = new Scanner ( System.in );

        System.out.println ( "Enter the length of the first leg " );
        double leg1 = reader.nextDouble ();

        System.out.println ( "Enter the length of the second leg " );
        double leg2 = reader.nextDouble ();

        RightTriangle f1 = new RightTriangle ( leg1, leg2 );
        System.out.println ( f1 );
        }
}

这是RightTriangle类。

public class RightTriangle
{
private double leg1;
private double leg2;
private double hyp;

public RightTriangle (double one , double two)
    {
    leg1 = one;
    leg2 = two;
    hyp = Math.sqrt ( Math.pow ( leg1 , 2 ) + Math.pow (leg2 , 2 ) );   
    }

public double perimiter ()
    {
    double perimiter = 0;
    perimiter = leg1 + leg2 + hyp;
    return perimiter;
    }

public double area ()
    {
    double area = 0;
    area = ( leg1*leg2 )/2;
    return area;
    }

public String toSting ()
    {
     String str;
     str = "Leg 1 is " + leg1 + " units long. Leg 2 is " + leg2 + " units long." + "\n" + "the  Hypotenuse is " + hyp +
             " units long." + "\n" + " The perimiter is " + perimiter () + " units and the area is " + area () +
             " units squared.";
     return str;
    }
}

方法名称是toString。 您的书写不正确。

每当您重写超类的方法时,请使用@Override批注(toString是每个类默认继承的Object类的方法)。 这将帮助您了解您是否真的要覆盖该方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM