2014-11-04 6 views
-2

다른 클래스의 메서드를 호출하여 현재 작업중인 클래스에 입력하려면 메서드를 호출하도록 어떻게 형식을 지정해야합니까? 메서드를 호출하는 코드는 어떻게 작성됩니까? 현재 메서드 인 플로트 배열이 있습니까? 다른 클래스에서 작성되었으며 내가 작업중인 클래스에 함수가 입력되도록 요청하고 싶습니다. 나는 솔직히 무식하게 소리 치려 함을 의미하지는 않지만, 나는 자바가 어떻게 작동하는지 파악하려고 노력하고있다. 감사.다른 클래스에서 메서드를 호출하는 형식은 무엇입니까?

이것은 내가 쓴 것입니다. float 배열과 name = 클래스 이름? myPickNumbers를 확인할 수 없다는 오류가 발생하기 때문에 이것이 잘못되었다고 확신합니다. 이에

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; 
     } 
} 

을 그리고 그것을 넣어 :

float[] myFloats = myPickNumbers.pickNumbers(); 

나는이 걸릴 것을 시도하고 당신이 선언되지도 초기화하지도 변수, myPickNumbers를 사용하려고

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() {... the code ...}'와 같은 선언 된 메소드라면 당신의 문법이 작동 할 것입니다. 이것이 방법이 아니라면, 우리가하려고하는 것을 파악할 수 있도록 몇 가지 코드를 보여주십시오. – ajb

+0

한 가지 아이디어는 외부 클래스에 대한 공용 getter 메서드를 만드는 것입니다.이 메서드는 호출 된 후 필요한 배열을 반환합니다. 이 방법을 사용하면 해당 배열에 대한 무단 액세스에 대해 걱정할 필요가 없습니다. – yiwei

답변

0

. 당신이 먼저 선언하고 당신이 그것을 사용하기 전에 초기화해야합니다

pickNumbers myPickNumbers = new pickNumbers(); 
0

당신은 먼저 새 pickNumbers가

pickNumbers myPickNumbers = new pickNumbers(); 

그런 다음 당신이 pickNumbers() 메소드를 호출 할 수있는 객체를 선언해야하지만 당신은 포함해야 int 유형의 매개 변수 예 :

float[] myFloats = myPickNumbers.pickNumbers(5) 
관련 문제