2014-11-04 2 views
-2

Если я хотел бы вызвать метод из другого класса для ввода его в текущий класс, над которым я работаю, как его форматировать для вызова метода? Как код написан для вызова метода. В настоящее время у меня есть мой массив floats, который является методом? написанный в другом классе, и я хотел бы вызвать функцию, которая будет введена в класс, над которым я работаю. Я, честно говоря, не хочу казаться невежественным, но у меня есть твердый галстук, который пытается понять, как работает джава. Благодарю.Каков формат вызова метода из другого класса?

Это то, что я положил. Массив float и имя = имя класса? Я уверен, что это неверно, потому что я получаю сообщение об ошибке, что myPickNumbers не могут быть решены.

float[] myFloats = myPickNumbers.pickNumbers(); 

Я пытаюсь принять это:

import java.util.InputMismatchException; 
import java.util.Scanner; 

public class pickNumbers { 
    Scanner readInput = new Scanner(System.in); 


     float [] pickNumbers(int choice){ 
      float []myFloats = new float[2]; 
      do { //do loop will continue until user enters correct response 
       System.out.print("Please enter 2 numbers separated by a space in the formats of floats: "); //will prompt user to enter 2 floats 
       try { 
        myFloats[0] = readInput.nextFloat(); //will read first float entered 
        myFloats[1] = readInput.nextFloat(); //will read second float entered 
        if (choice == 4 && myFloats[1] == 0.0f) { 
         System.out.println("Cannot complete calculation. Cannot divide by 0, please try again."); 
         myFloats[0] = myFloats[1] = 0.0f; 
         continue; 
        } 
        break; 

       } catch (final InputMismatchException e) { 
          System.out.println("You have entered an invalid input. Try again."); 
        readInput.nextLine(); // discard input that is not a float 
        continue; // loop will continue until the correct answer is found 
       } 
      } while (true); 
      return myFloats; 
     } 
} 

И положил его в этом:

public class Calculator { 
public static void main(String[] args) { 
    String inputOperation; 
    String operatingWord[] = { "adding", "subtracting", 
           "multiplying", "dividing" }; 
    //array of operations to display to user 
    Selection mySelection = new Selection();  
    String menu = "Welcome to John Doe's Calculator" //next line print out line for welcome 
     + "\n 1. Addition"//next line option 1 for addition 
     + "\n 2. Subtraction" //next line option 2 for subtraction 
     + "\n 3. Multiplication" //next line option 3 for multiplication 
     + "\n 4. Division" //next line option 4 for division 
     + "\n 5. Exit\n" 
     + "====================================\n\n"; //next line option 5 for exit then leave a blank line 
    Symbol.newSymbol(menu); 
    Symbol.displaySymbol(); 


    while (!(inputOperation = mySelection.selectionOne()).equals("5")) 
     Symbol.newSymbol("\n"); 
     Symbol.displaySymbol(); 

     float[] myFloats = myPickNumbers.pickNumbers(); 
+0

Если «myPickNumbers не может быть решена», ошибка в том, что вы не импортировали или не используя правильное имя для класса 'myPickNumbers'. Но синтаксис, который вы используете, выглядит корректно. – Pokechu22

+0

Вы не можете вызвать массив, но вы можете вызвать метод. И если 'pickNumbers' - это метод, объявленный как' public float [] pickNumbers() {... код ...} ', тогда ваш синтаксис будет работать. Если это не метод, пожалуйста, покажите нам некоторый код, чтобы мы могли понять, что вы пытаетесь сделать. – ajb

+0

Одна из идей - создать открытый метод getter для вашего внешнего класса, который вернет необходимый массив после его вызова. Таким образом, вам не придется беспокоиться о несанкционированном доступе к этому массиву – yiwei

ответ

0

Вы пытаетесь использовать переменную, myPickNumbers, что вы ни декларировать, ни инициализации. Вы должны сначала объявить и инициализировать его, прежде чем вы можете использовать его:

pickNumbers myPickNumbers = new pickNumbers(); 
0

Вы должны сначала объявить новый pickNumbers объект

pickNumbers myPickNumbers = new pickNumbers(); 

Тогда вы можете вызвать pickNumbers() метод, но вы должны включить параметр типа INT, например

float[] myFloats = myPickNumbers.pickNumbers(5) 
Смежные вопросы