Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否相应地实施了这些方法_Java_Oop_Exception Handling - Fatal编程技术网

Java 是否相应地实施了这些方法

Java 是否相应地实施了这些方法,java,oop,exception-handling,Java,Oop,Exception Handling,我对这个问题涉及的技术术语感到困惑: 给定三条直线a、b和c。他们将能够组成一个团队 三角形,前提是任意两条直线的和总是大于 第三行(即a+b>c和b+c>a和a+c b) 。使用以下内容编写Java类三角形: 构造函数,它将三个边的长度设置为传入的值。构造函数应抛出InvalidValueException 当值不能形成三角形时。 findArea()方法,使用公式area=a+b+c计算三角形对象的面积 我想到的代码是: package question3_test; import

我对这个问题涉及的技术术语感到困惑:

给定三条直线a、b和c。他们将能够组成一个团队 三角形,前提是任意两条直线的和总是大于 第三行(即a+b>c和b+c>a和a+c

b) 。使用以下内容编写Java类三角形:

  • 构造函数,它将三个边的长度设置为传入的值。构造函数应抛出InvalidValueException 当值不能形成三角形时。
    • findArea()方法,使用公式area=a+b+c计算三角形对象的面积
我想到的代码是:

package question3_test;

import java.awt.event.*;
import java.math.*;

public class Triangle_getvalues 
{


    private int side1, side2, side3;
    private double area;
    private String message;


    public  int getSide1()
    {
        return side1;
    }

    public void setSide1(int s1)
    {
        side1 = s1;
    }

    public  int getSide2()
    {
        return side2;
    }

    public void setSide2(int s2)
    {
        side2 = s2;
    }

    public  int getSide3()
    {
        return side3;
    }

    public void setSide3(int s3)
    {
        side3 = s3;
    }

    public double findArea(int side_1, int side_2, int side_3)throws InvalidValueException 
    {
        int s, a, b,c;
        a = side_1;
        b = side_2;
        c = side_3;
        s = ((a + b + c)/2);
        area = Math.sqrt(s*(s-a)*(s-b)*(s-c));
        //area =
        return area;
    }



public void validateTriangle(int sidea, int sideb, int sidec) throws InvalidValueException
    {
        try
        {
        if((sidea + sideb > sidec)||(sideb + sidec > sidea)||(sidea + sidec > sideb))
        {
            findArea(side1,side2,side3);
        }
        }
        catch(InvalidValueException excep)
                {
                    message = excep.getMessage();
                }
    }

}

class InvalidValueException extends Exception
{
    public InvalidValueException()
    {
        super("These values cannot form a valid triangle");
    }
}

我想知道的不是我遗漏了什么(如果我遗漏了什么,一定要让我知道),但这里提问的主要目的是,这是回答这个问题的正确方法吗?

这似乎很像毕达哥拉斯定理。 答案是(side1*side2)*(side2*side2)=(side3*side3) 如果每一条边都是相同的,这将给出所有有效的三角形


这几乎是家庭作业代码,但了解它的工作原理是基本的

这似乎和毕达哥拉斯定理差不多。 答案是(side1*side2)*(side2*side2)=(side3*side3) 如果每一条边都是相同的,这将给出所有有效的三角形


这几乎是家庭作业代码,但了解它的工作原理是基本的

你的想法是对的。你只是没有结合你的代码来匹配你的任务

构造函数,它将三个边的长度设置为传入的值。当值不能形成三角形时,构造函数应该抛出InvalidValueException对象

类构造函数应该是这样的

public Triangle_getvalues(int a, int b, int c) throws InvalidValueException {
    validateTriangle(a, b, c);
    setSide1(a);
    setSide2(b);
    setSide3(c);
}
validateTriangle方法不应尝试同时抛出InvalidValueException和捕获InvalidValueException。选择一个或另一个

validateTriangle方法不需要调用或执行findArea方法。您只需要确定输入长度是否构成有效的三角形

以下是它的工作原理:

 public void validateTriangle(int sidea, int sideb, int sidec) 
     throws InvalidValueException
 {
    if ((sidea + sideb > sidec) || (sideb + sidec > sidea)
        || (sidea + sidec > sideb))
    {

    } else {
        throw new InvalidValueException;
    }
}

你的想法是对的。你只是没有结合你的代码来匹配你的任务

构造函数,它将三个边的长度设置为传入的值。当值不能形成三角形时,构造函数应该抛出InvalidValueException对象

类构造函数应该是这样的

public Triangle_getvalues(int a, int b, int c) throws InvalidValueException {
    validateTriangle(a, b, c);
    setSide1(a);
    setSide2(b);
    setSide3(c);
}
validateTriangle方法不应尝试同时抛出InvalidValueException和捕获InvalidValueException。选择一个或另一个

validateTriangle方法不需要调用或执行findArea方法。您只需要确定输入长度是否构成有效的三角形

以下是它的工作原理:

 public void validateTriangle(int sidea, int sideb, int sidec) 
     throws InvalidValueException
 {
    if ((sidea + sideb > sidec) || (sideb + sidec > sidea)
        || (sidea + sidec > sideb))
    {

    } else {
        throw new InvalidValueException;
    }
}

您的构造函数应该是这样的:

public className(int side1, int side 2, int side3) throws yourException {
      //initialize your sides here and call your validation method here
}

您的构造函数应该是这样的:

public className(int side1, int side 2, int side3) throws yourException {
      //initialize your sides here and call your validation method here
}


“我被技术术语弄糊涂了”,你能具体说明哪一部分吗?可能是重复的,首先,也许你遗漏了“家庭作业”这个标签“@kent。。现在已经不存在了:-O,你们怎么能用公式a+b+bc来计算三角形的面积呢我对“技术术语”感到困惑,你能具体说明哪一部分吗?首先,可能是重复的,也许你遗漏了“家庭作业”标签?@kent。。这已经不存在了:-O,你们怎么能用公式a+b+bc来计算三角形的面积?哦,明白了,放得好+1你的意思是说我所有的getter和setter都应该在构造函数之外吗?@noobprogrammer你不能让getter和setter在构造函数里面。@chaitanya10得到了兄弟i+1的答案;)哦,明白了,放得好+1你的意思是说我所有的getter和setter都应该在构造函数之外吗?@noobprogrammer你不能让getter和setter在构造函数里面。@chaitanya10得到了兄弟i+1的答案;)哈哈,这不是数学论坛,伙计。我已经在我的代码中实现了正确的公式。这不是数学论坛。我已经在代码中实现了正确的公式