#java
#java
Вопрос:
Проблема, с которой я сталкиваюсь, заключается в том, что я не знаю, как реализовать дополнительные классы в моем основном классе. В вопросе пользователь выбирает два числа со сканера, затем программа выводит сумму, разницу, произведение, среднее, расстояние, максимум и минимум двух чисел. Я знаю, как получить сумму, разницу и т. Д… но как мне сообщить основному классу их распечатать. Требуется второй класс, хотя это можно сделать в основном.Вот мой код до сих пор, основной класс:
package p4_4_class_pair;
import java.util.Scanner;
public class P4_4_Class_Pair {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Input 1st number: ");
in.nextDouble();
System.out.print("Input 2nd number: ");
in.nextDouble();
System.out.println();
}
}
Дополнительный класс:
package p4_4_class_pair;
import java.util.Scanner;
public class Pair {
private double sum;
private double difference;
private double product;
private double average;
private double distance;
private double max;
private double min;
/**
* Constructs a pair
* @param aFirst the first value of the pair
* @param aSecond the second value of the pair
*/
public Pair(double aFirst, double aSecond) {
Scanner in = new Scanner(System.in);
aFirst = in.nextDouble();
aSecond = in.nextDouble();
}
public double addSum(double a, double b){
sum = a b;
return sum;
}
/**
* Computes the sum of the values of this pair
* @return the sum of the first and second values
*/
public double getSum(){
return sum;
}
}
Ответ №1:
Я немного смущен вашей реализацией. Вы считываете значения в методе main и снова внутри конструктора класса Pair.
Одна из возможных реализаций может быть такой для класса с методом main:
import java.util.Scanner;
public class P4_4_Class_Pair {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Input 1st number: ");
double firstNum = in.nextDouble();
System.out.print("Input 2nd number: ");
double secondNum = in.nextDouble();
Pair pair = new Pair(firstNum,secondNum);
System.out.println("Sum = " pair.sum());
System.out.println("Difference = " pair.difference());
System.out.println("Product = " pair.product());
}
}
И пара классов :
public class Pair {
private double sum;
private double difference;
private double product;
private double average;
private double distance;
private double max;
private double min;
private double firstNum;
private double secondNum;
/**
* Constructs a pair
* @param aFirst the first value of the pair
* @param aSecond the second value of the pair
*/
public Pair(double aFirst, double aSecond) {
firstNum = aFirst;
secondNum = aSecond;
}
public double sum(){
sum = firstNum secondNum;
return sum;
}
public double difference() {
difference = firstNum - secondNum;
return difference;
}
public double product(){
product = firstNum * secondNum;
return product;
}
}
Вы можете реализовать остальные методы таким же образом.
Кроме того, обратите внимание, что существуют различные способы достижения желаемой задачи, поэтому дайте мне знать, если вы ищете конкретный способ сделать это.
Комментарии:
1. Да, ваш код имеет смысл, и спасибо, что направили меня в правильном направлении. Для этой программы также есть одно требование: она должна использовать этот оператор public double getSum() в классе Pair .
2. Что вы подразумеваете под использованием getSum()? Если вы имеете в виду, что хотите передать значения для метода, то вы можете сделать это:
public double getSum(double n1, double n2){ return n1 n2; }
затем в основном методе вы можете вызвать и передать значения: getSum(5,6); Извините, если это не то, что вы хотите.3. Если вы измените имя метода в классе Pair, то вы должны изменить его также в основном методе. В той части, где вы это вызываете. pair.getSum();
Ответ №2:
Pair pair = new Pair(first, second)
в вашем основном методе print pair.addSum
Комментарии:
1. Это выдает мне ошибку для предоставленного кода, я переключил «first и second» на aFirst и aSecond, как у меня в моем коде. В нем говорится, что он не может найти символ, первый и второй.