调用方法btwn两个不同的类

时间:2015-10-29 01:36:11

标签: java math bluej

以下是此作业的说明:http://textuploader.com/55z48

对于作业,我需要读取输入文本文件并根据文本文件中找到的数据评估三角形,该文件由未知数量的3个数字组组成(每个组代表一个不同的三角形)。根据项目规范,我需要有一个主要方法和其他几种方法。我将在下面发布我的两个课程。

我认为我正确设置了 Triangle 类,但floatEqual除外。我如何将其纳入我的isEquilateral和isIsosceles方法?

public class Triangle
{

    public static double computePerimeter(double num1, double num2, double num3)
    {
        return num1 + num2 + num3;
    }

    public static boolean isEquilateral(double num1, double num2, double num3)
    {
        return num1 == num2 && num2 == num3;
    }

    public static boolean isIsosceles(double num1, double num2, double num3)
    {
        return num1 == num2 || num2 == num3 || num1 == num3;
    }

    public static void triangleType(double num1, double num2, double num3)
    {
        if(isEquilateral(num1,num2,num3) == true)
        {
            System.out.println("Equilateral");
        }
        if(isIsosceles(num1,num2,num3) == true)
        {
            System.out.println("Isosceles");
        }
        else
        {
            System.out.println("Scalene");
        }
    }
}

下面的代码是我的 TriangleEvaluator 类,我应该从 Triangle 类中调用方法。但我很困惑如何实现这一目标。我想我的代码没有必要,但我不确定。昨晚我正在研究这一切,并且今天要完成它,还有一些我似乎无法回到java模式。

import java.io.*;
import java.util.Scanner;

public class TriangleEvaluator
{
    public static void main(String[] args) throws FileNotFoundException
    {
        Scanner in = new Scanner(new File("triData.txt"));    
        double num1 = 0;
        double num2 = 0;
        double num3 = 0;
        double perim = 0;
        while (in.hasNextDouble())
        { 
            num1 = in.nextDouble();
            num2 = in.nextDouble();
            num3 = in.nextDouble();

            perim = computePerimeter(num1, num2, num3);
            System.out.println(perim);
        }
    }

    public static boolean floatEquals(double num1, double num2)
    {
        double Err = 0.00000001;
        if(Math.abs(num1 - num2) < Err)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    public static double computePerimeter(double num1, double num2, double num3)
    {
        double perimeter;
        perimeter = (num1 + num2 + num3);
        return perimeter;
    }
}

这是输入的一个例子:

18.7 30 18.7
3 4 5
20.72 20.72 20.72

和所需的输出:

18.7 30.0 18.7
Perimeter: 67.40
Isosceles

3.0 4.0 5.0
Perimeter: 12.00
Scalene

20.7 20.7 20.7
Perimeter: 62.16
Equilateral

提前致谢(我绝不打算让任何人为我做任务,所以请原谅我,如果有这样的话 - 谢谢!) 任何帮助或指导表示赞赏!

1 个答案:

答案 0 :(得分:1)

如果Triangle和TriangleEvaluator在同一个包中(I.E通常只是同一个目录),你可以通过在方法之前指定类来调用Triangle中的静态方法。

Triangle.isIsoceles(1.0,2.0,3.0)。

如果它们不在同一个包中,则必须像java.io一样导入Triangle类。但是你几乎肯定不需要导入Triangle。

这仅适用于静态方法。如果方法是动态的(在方法声明中没有静态),则必须使用(当前未指定的)三角形构造函数创建Triangle对象。然后你可以通过myTriangleObject.aMethod()

调用它们