Как мне вызвать следующие методы в другом классе? java

#java

#java

Вопрос:

 import java.io.IOException;
import java.util.*;

public class calling {


public static int num1() {
int x;
Scanner scanner = new Scanner (System.in);
System.out.println("Please enter a number called x: ");
x=scanner.nextInt();
return x;    
}

public static int num2() {
int y;
Scanner scanner = new Scanner (System.in);
System.out.println("Please enter a second number called y: ");
y=scanner.nextInt();
return y;    
}

public static String operand() {
Scanner input = new Scanner (System.in);
String s;
System.out.println("What process would you like to do? *, /,   or - ?");
s=input.next();
return s;
}

public static void calculation(int x, int y, String s) {
String t;
Scanner input = new Scanner(System.in);


if (s.equals("*")) {
System.out.println("nThe product of these numbers is:"   (x*y));}
else 
if (s.equals(" ")) {
System.out.println("nThe sum of these numbers is: "   (x y));}

System.out.println("nDo you want x or y to be the dividor/subtractor?: ");
t=input.next();

if (t.equals("y") || t.equals("Y") ) {

if (s.equals("/")) {
System.out.println("nThe quotient of these numbers is:  "   (x/y));}
else 
if (s.equals("-")) {
System.out.println("nThe difference of these numbers is: "   (x-y));}}

else 
if (t.equals("x") || t.equals("X")){

if (s.equals("/")) {
System.out.println("nThe quotient of these numbers is: "   (y/x));}
else 
if (s.equals("-")) {
System.out.println("nThe difference of these numbers is: "   ((y-x)));}}
}

public static void  main (String [] args) throws IOException {


int x1=num1();
int y1=num2();
String s1=operand();
calculation(x1, y1, s1);




}

}
 

Как мне вызвать эти методы в новый класс, чтобы я мог запустить программу из него? Я понимаю, что обычно вы вводите имя class.nameofmethod(); но как мне передать параметры и тому подобное?
Я новичок в Java, поэтому буду признателен за любую помощь!
заранее спасибо, ребята.

Комментарии:

1. Вы бы передали параметры, … передав параметры, например StaticCalculatorClass.calculation(5, 10, "wat") . Но этот метод почти наверняка неверен; вы передаете строку, а затем немедленно перезаписываете ее вводом со сканера. Вы также хотели бы, чтобы методы были нестатическими, поэтому они являются методами экземпляра

Ответ №1:

В качестве примера:

 int x = calling.num1();
System.out.println(x);
 

…сохраняет результат num1() метода в x, затем распечатывает содержимое x.

С точки зрения параметров:

 calling.calculation(4,5," ");
 

Тот факт, что вам нужно задать этот вопрос, говорит о том, что вам, вероятно, следует уйти, прочитать и выполнить некоторые очень простые руководства по Java, такие как приведенное здесь: http://download.oracle.com/javase/tutorial/getStarted/index.html — Это вовсе не атака, просто предложение о том, как лучше расширить свои знания.

Ответ №2:

Поскольку все методы являются статическими, вы можете просто сделать:

 int x1=calling.num1();
int y1=calling.num2();
String s1=calling.operand();
calling.calculation(x1, y1, s1);
 

Но, если вы не сделали их статическими, и вы хотите их вызвать, тогда вы создаете экземпляр класса и вызываете методы в этом классе.

 calling app = new calling();
int x1=app.num1();
int y1=app.num2();
String s1=app.operand();
app.calculation(x1, y1, s1);
 

Комментарии:

1. вызывающий.вычисление (x1, y1, s1); выдает мне ошибку в скобках: S

Ответ №3:

Нет никаких параметров для передачи, так как все ваши методы не имеют параметров. Что бы вы сделали, так это приняли бы значение int, возвращаемое из метода:

 int myResult = Myclass.MyMethod(); 
 

редактировать: за исключением вашего метода вычисления, который есть, но вы, похоже, знаете, как это использовать. Теперь я точно не уверен, в чем ваша проблема, поскольку вы используете методы OK в основном методе (за исключением того, что вы не вызываете их из имени класса, но не обязательно, если основной метод находится внутри самого класса).

Комментарии:

1. вычисление() принимает параметры 😉

2. @berry120: да, я заметил это и отредактировал свой ответ. кстати, 1 к вашему хорошему ответу.

Ответ №4:

У вас есть проблемы посерьезнее, чем это. Пожалуйста, начните читать книгу Роберта К. Мартина «Чистый код», ваш код не является объектно-ориентированным