2016-12-02 25 views
-1

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); 
     } 
} 

です。

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; 
    } 
} 
+0

'toShing' - >' toString' – talex

+0

fyiのスペルが間違っています。これはあなたが見ているメモリの場所ではなく、ハッシュです。詳細は、[this](http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html#toString())を参照してください。 –

答えて

2

メソッド名はtoStringです。あなたは正しく書いていません。

スーパークラスのメソッドをオーバーライドするたびに、@Overrideアノテーションを使用します(toStringは、すべてのクラスがデフォルトで継承するObjectクラスのメソッドです)。これは、実際にメソッドをオーバーライドしているかどうかを知るのに役立ちます。

関連する問題