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