Вызов метода к основному в Java

Я пишу программу, которая вычисляет гипотенузу треугольника, и я должен вызвать метод в основной.

Лучше иметь их в 2 отдельных файлах или иметь метод, который я вызываю в программе, которую я запускаю?

В программе я получаю сообщения об ошибках о последней строке кода с выходом JOptionPane.

Что я делаю не так?

import javax.swing.JOptionPane;
import java.util.Scanner;
public class A2
{   

     public static double Hypo(double a,double b,double c);
        double a,b,c;
        {
            hyp=((a*a)+(b*b));
            c=Math.sqrt(hyp);
        }

    int x,y;
    double c;
    String text1=JOptionPane.showInputDialog("How long is side A? ");
    int x=Integer.parseInt(text1);
    String text2=JOptionPanes.howInputDialog("How long is side B? ");
    int y=Integer.parseInt(text2);
    double c=A2.Hypo(x,y);
    JOptionPane.showMessageDialog(null, "The hypotenuse of the triangle is " +c);
    }

3 ответа

Решение

В этом коде так много проблем, что трудно понять, с чего начать.

Вот несколько советов:

  1. Хорошие имена имеют значение. Вы можете и должны сделать лучше, чем A2 для класса.
  2. Изучите стандарты Sun Java и следуйте им.
  3. Стиль и читаемость имеют значение. Изучите хорошее расположение кода и придерживайтесь его.

Начни с этого. Он работает и дает правильные результаты:

import javax.swing.*;

/**
 * A2
 * @author Michael
 * @link https://stackru.com/questions/30965862/calling-method-to-a-main-in-java
 * @since 6/21/2015 11:00 AM
 */
public class SimpleMathDemo {

    public static double hypotenuse(double a,double b) {
        return Math.sqrt(a*a+b*b);
    }

    public static void main(String[] args) {
        String text1= JOptionPane.showInputDialog("How long is side A? ");
        int x=Integer.parseInt(text1);
        String text2=JOptionPane.showInputDialog("How long is side B? ");
        int y=Integer.parseInt(text2);
        double c= SimpleMathDemo.hypotenuse(x,y);
        JOptionPane.showMessageDialog(null, "The hypotenuse of the triangle is " +c);
    }
}

Анализ кода

 public class A2 {

    //Missing method body no return values ..Is this an abstact function?/
    public static double Hypo(double a, double b, double c);
    double a, b, c;

    //Whats this part doing hanging in the middle??
    {
    //where is the variable declaration of hyp
        hyp = ((a * a) + (b * b));
        c = Math.sqrt(hyp);
    }

    int x, y; 
    //variable c is already  declared
    double c;
    String text1 = JOptionPane.showInputDialog("How long is side A? ");
     //variable x is already  declared
    int x = Integer.parseInt(text1);
    //JOptionPane not JOptionPanes
    String text2 = JOptionPanes.howInputDialog("How long is side B? ");
    //variable y is already  declared
    int y = Integer.parseInt(text2);
     //variable c is already  declared and Hypo function has three arguements in the declaration
    double c = A2.Hypo(x, y);
//wont work because the whole code is buggy
    JOptionPane.showMessageDialog (null, "The hypotenuse of the triangle is " +c);
    }
}

Чтобы уточнить больше:

import javax.swing.JOptionPane;

public class A2 {

    public static double Hypo(int a, int b) {
        double hyp=((a*a)+(b*b));
        double c=Math.sqrt(hyp);
        return c;
    }


    public static void main(String[] args) {
        int x, y;
        double c;
        String text1=JOptionPane.showInputDialog("How long is side A? ");
        x=Integer.parseInt(text1);
        String text2=JOptionPane.showInputDialog("How long is side B? ");
        y=Integer.parseInt(text2);
        JOptionPane.showMessageDialog(null, "The hypotenuse of the triangle is " + Hypo(x,y));
    }

}

Вам нужно выбрать правильный тип возвращаемого значения, будь то void, int, double и т. Д., И каждый метод с возвращаемым типом должен возвращать значение с установленным типом.

Вам также всегда нужен хотя бы один основной метод в программе. Там может быть несколько в разных классах.

Вам нужно будет использовать более конкретные имена переменных и следовать соглашению оракула для скобок {}.

НЕ объявляйте переменную дважды как в:

int x, y;
int x = 1; // WRONG
x = 1; // Correct
Другие вопросы по тегам