Chamada de método em outra classe [RESOLVIDO]

Eu criei 2 classes, uma chamada Numeros e outra
Chamada TesteNumeros.
Não estou entendo pq está apresentando alguns erros. Quem puder me
ajudar, ficarei agradecido.
Segue os códigos:

package Exercicio2;

public class Numeros {

       public int calcMedia(int num[]){
               int media = 0;
               for (int i = 0; i < num.length -1; i++){
                       media += num[i];
               }

               return media / num.length;
       }
       public int calcMaior(int num[]){
               int maior = 0;
               for (int i = 0; i < num.length -1; i++){
                       if (num[i]>= num[i+1]){
                               maior = num[i];
                       }
               }
               return maior;
       }
       public int calcMenor(int num[]){
               int menor = 0;
               for (int i = 0; i < num.length -1; i++){
                       if (num[i]<= num[i+1]){
                               menor = num[i];
                       }
               }
               return menor;
       }
}
package Exercicio2;

import javax.swing.JOptionPane;

public class TesteNumeros {

       public static void main(String[] args) {

               int n = Integer.parseInt(JOptionPane.showInputDialog("Insira o
tamanho do vetor"));
               int[] num = new int[n];
               for (int i = 0; i < n; i++ ){
                       num[i]= Integer.parseInt(JOptionPane.showInputDialog("Insira um
número"));
               }

       }
       // Gostaria de chamar os métodos da classe números nessa classe, aqui que ocorrem os erros.
       calcMedia(num);
       calcMaior(num);
       calcMenor(num);
}
  1. Diga para que servem as classes;
  2. Diga que erros estão dando.

Bom, não sei exatamente quais são os erros que está encontrando, mas você está com algumas falhas no seu algoritmo. No calculaMedia você está desprezando sempre o último elemento dos seu vetor!! No calculaMaior e calculaMenor você ignora o numero que você colocou na variável maior e menor, respectivamente. Você está comparando apenas os elementos adjacentes do vetor sem se preocupar com o número que está em maior( ou menor).
Se não for isso diga quais são os erros!

Vamos la!

Não sei se esse é o erro que acontece, ja que você não postou o erro

Mas eu fiz umas correções no seu código :

package exercicio2;

import javax.swing.JOptionPane;

public class TesteNumeros {

    public static void main(String[] args) {
        Numeros numero = new Numeros();//Aqui eu criei a instancia do obejto da sua classe Numeros, sem esse objeto vc não consegue chamar os seus métodos
        int n = Integer.parseInt(JOptionPane.showInputDialog("Insira o tamanho do vetor"));


        int[] num = new int[n];
        for (int i = 0; i < n; i++) {
            num[i] = Integer.parseInt(JOptionPane.showInputDialog("Insira um  número"));

        }

        //Agora aqui, usei o objeto que eu criei para chamar cada método da classe Numeros
        numero.calcMedia(num);
        numero.calcMaior(num);
        numero.calcMenor(num);
    }
}

Não testei para ver se seu algoritmo esta funcionando.

Só arrumei o código de forma que funcione da maneira correta.

Qualquer coisa posta ae.

@Edit:
Nessa parte, como esses métodos retornam valores, use algo para guarda-los ou exibi-los:

        System.out.println(numero.calcMedia(num));
        System.out.println(numero.calcMaior(num));
        System.out.println(numero.calcMenor(num));

Bom dia.

Fiz algumas modificações no seu código, amigo.

Verifique se esse era o resultado desejado!!

Obs: a Média está sendo calculada com valores em INT, recomendo utilizar valores double para esse cálculo, por causa de perda de precisão.

[code]import javax.swing.*;

public class Main {

public static void main(String[] args) {
    Numeros x = new Numeros();
    int n = Integer.parseInt(JOptionPane.showInputDialog("Insira o  tamanho do vetor"));
    int[] num = new int[n];

    for (int i = 0; i < n; i++) {
        num[i] = Integer.parseInt(JOptionPane.showInputDialog("Insira um número"));

    }
    
    System.out.println("Média dos Valores: " + x.calcMedia(num));
    System.out.println("Maior dos Valores: " + x.calcMaior(num));
    System.out.println("Menor dos Valores: " + x.calcMenor(num));
}

}[/code]

Classe Números:

[code]public class Numeros {

public int calcMedia(int num[]) {
    int media = 0;
    for (int i = 0; i < num.length; i++) {
        media += num[i];
    }
    return (media / num.length);
}

public int calcMaior(int num[]) {
    int maior = num[0];
    for (int i = 0; i < num.length; i++) {
        if (num[i] > maior) {
            maior = num[i];
        }
    }
    return maior;
}

public int calcMenor(int num[]) {
    int menor = num[0];
    for (int i = 0; i < num.length; i++) {
        if (num[i] < menor) {
            menor = num[i];
        }
    }
    return menor;
}

}[/code]

@Edit

Esqueci de citar que utilizei o código do Amigo “juliocesarss” também!

Ficou bacana, aí facilitou as modificações :lol:

Boa tarde pessoal… agradeço a todos a colaboração, vou testar a noite e informo o resultado.
Muito Obrigado.

Obrigado a todos!!!

Funcionou certinho, segue o final.

package Exercicio2;

import javax.swing.JOptionPane;

public class TesteNumeros {

	public static void main(String[] args) {
		
		Numeros numeros = new Numeros();
		int n = Integer.parseInt(JOptionPane.showInputDialog("Insira o tamanho do vetor"));
		int[] num = new int[n];
		for (int i = 0; i < n; i++ ){
			num[i]= Integer.parseInt(JOptionPane.showInputDialog("Insira um número"));
		}
		
		JOptionPane.showMessageDialog(null,"A média dos números é: " + numeros.calcMedia(num));
		JOptionPane.showMessageDialog(null,"O maior dos números é: " + numeros.calcMaior(num));
		JOptionPane.showMessageDialog(null,"O menor dos números é: " + numeros.calcMenor(num));
		
		
	}
	
}

Isso ai!