Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Angel***

[Resolvido] Métodos - chamar um método em outra classe

Recommended Posts

Boa Tarde,

Tenho uma classe com um menu bem simples e um switch case que chama os métodos de outra classe.

Porém não consigo chamar os métodos com retorno de valores.

E toda informação necessária para a solução do método deve ser obrigatoriamente obtida fora da classe que contém os métodos, e quando coloco as informações no case não consigo buscar pelo método da outra classe.

Podem me auxiliar?

Estou começando o código e parei nisso

Só fi o Fibonacci mas não funcionou no método...

Classe com o Menu e o Switch - case

package trab2bim;

import java.util.Scanner;

import javax.swing.JOptionPane;

public class Menu extends Metodos {

	/**
	 * Autora: Angel
	 */
	public static void main(String[] args) {
		opcoes();

	}

	public static void opcoes() {
		System.out.println("*Trabalho de ALgoritmos II*\n");
		System.out.println("1  - Cálculo de uma prestação em atraso");
		System.out.println("2  - Soma de valores inteiros");
		System.out.println("3  - Cálculo de potência de um número");
		System.out.println("4  - Fibonacci");
		System.out.println("5  - Verificar se um  número é primo");
		System.out.println("6  - Verificação do menor número");
		System.out.println("7  - Média aritmética");
		System.out.println("8  - Converter valores em Reais para Dólar");
		System.out.println("9  - Contagem de vogais");
		System.out.println("10 - Verificar intervalo entre números");
		System.out.println("11 - Verificação de valores divisíveis por 3 ou por 5");
		System.out.println("12 - Frase ao contrário");
		System.out.println("13 - Formatação em caixa alta");
		System.out.println("14 - Remover espaços em branco de uma frase");
		System.out.println("15 - Vogais e Consoantes");

		Scanner input = new Scanner(System.in);
		int num;

		String aux = JOptionPane.showInputDialog("Selecione uma opção do Menu");
		num = Integer.parseInt(aux);

		switch (num) {
		case 1:
		 	prestacao(total);
			double total = 0;
			double valor = 1;
			double taxa = 0;
			int dias = 1;

			System.out.println("Informe o valor da prestação");

			if (valor < 0) {
				System.out.println("O valor da prestação não pode ser menor que zero");
			} else
				valor = input.nextDouble();

			System.out.println("Informe o valor da taxa de juros");
			if (taxa < 0) {
				System.out.println("O valor da prestação não pode ser menor que zero");
			} else
				taxa = input.nextDouble();

			System.out.println("Informe os dias de atraso");
			if (dias < 1) {
				System.out.println("O valor da prestação não pode ser menor que zero");
			} else
				dias = input.nextInt();
			
			
			
			break;

		case 2:
			somaInteiros();
			break;

		case 3:
			potencia();
			break;

		case 4:
			fibonacci();
			long numf;
			System.out.println("Informe qual termo da sequencia deve ser mostrado");
			numf = input.nextLong();
			break;


		case 5:
			primo();
			break;

		case 6:
			nummenor();
			break;

		}
	}
}

 

Classe com os métodos

 

package trab2bim;

import java.util.Scanner;

public class Metodos {

	/**
	 *Autora:Angel
	 */
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
	}

	public void prestacao(double total) {

	}

	public static void somaInteiros() {

	}

	public static void potencia() {

	}

	public static long fibonacci(long numf) {
		Scanner input = new Scanner(System.in);
		long numInicio;

		System.out.println("Informe qual termo da sequencia deve ser mostrado");
		numf = input.nextLong();
		 numInicio = numf;

		if ((numf == 0) || (numf == 1)) {
			return numf;
		}

		else
			return fibonacci(numf - 1) + (numf - 2);
	}
		public void fin(int numinicio) {

		for (int i = 0; i <= numinicio; i++) {
			System.out.printf("Fibonacci de " + numinicio + "é:", fibonacci(i));
		}
		
	
	}

	public static void primo() {

	}

	public static void nummenor() {

	}

	public static void aritmetica() {

	}

	public static void realDolar() {

	}

	public static void contarVogais() {

	}

	public static void intervaloNum() {
}

Obrigada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi bem sua duvida.

As chamadas de método e os próprios métodos estão normais pelo que vi.

E veja:

algo.java:

package app;

class algo {
	public static int soma(int x, int y){
		return x+y;
	}
}

Main.java:

package app;
import java.util.Scanner;

class Main extends algo {
	public static void main(String args[]){
		int a = 0;
		int b = 0;
		Scanner in = new Scanner(System.in);
		System.out.print("Digite o valor de a:");
		a = in.nextInt();
		System.out.print("Digite o valor de b:");
		b = in.nextInt();
		System.out.println("a+b:" + (soma(a, b)));
	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi bem sua duvida.

As chamadas de método e os próprios métodos estão normais pelo que vi.

 

Obrigado pela rápida resposta.

Quando eu chamo o método da erro, ele não executa o método.

E na verdade nem esta funcionando.

por exemplo: na classe Menu se coloco no case: Fibonacci()

Da erro e a mensagem de que deve ser Fibonacci(long) e se coloco assim continua dando erro

Não sei como devo colocar, e não consigo chamar o método

 

Obrigada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora vi...

Seguinte...se a função te pede x argumentos de x tipo,você os passa.

No caso a função te pede um long...passe a ela!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora vi...

Seguinte...se a função te pede x argumentos de x tipo,você os passa.

No caso a função te pede um long...passe a ela!

 

Sim, eu já fiz isso mas mesmo assim continua dando erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sugiro que dê uma estudada e refaça...

Adiciona uma chave depois do método intervaloNum na classe Metodos.

Apesar de seus métodos estarem sem lógica,se os chamar corretamente vai funcionar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu método está definido para retornar um long.

public static long fibonacci(long numf)

Voce deve usá-lo e guardar seu resultado.

Algo desse tipo:

 

long entrada = input.nextLong();
long resultado = fibonacci();

Se não qual seria o propósito desse método?

 

A propósito, pra que serve o argumento se voce descarta o valor sem usá-lo?

public static long fibonacci(long numf) {
		Scanner input = new Scanner(System.in);
		long numInicio;

		System.out.println("Informe qual termo da sequencia deve ser mostrado");
		numf = input.nextLong();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigada.

 

Fiz algumas alterações e agora funcionou.

Porém tenho outra dúvida, coloquei um método bem simples para demostrar, pois tenho que mostrar o retorno de todos os métodos.

No caso do método SomaInteiros, quero mostrar a soma dos números obtidas na classe 'Metodos'

na classe menu, depois de chamar o método SomaInteiros quero mostrar o resultado

Podem me auxiliar por gentileza?

 

Muito obrigada!

 

package trab2bim;

import java.util.Scanner;

import javax.swing.JOptionPane;

/**
 * public class Menu extends Metodos {
 * 
 * /** Autora: Angel
 * }
 */
public class Menu {

	private static Menu menu = new Menu();

	public static void main(String[] args) {
		menu.opcoes();
	}

	public static void opcoes() {
		System.out.println("*Trabalho de ALgoritmos II*\n");
		System.out.println("1  - Cálculo de uma prestação em atraso");
		System.out.println("2  - Soma de valores inteiros");
		System.out.println("3  - Cálculo de potência de um número");
		System.out.println("4  - Fibonacci");
		System.out.println("5  - Verificar se um  número é primo");
		System.out.println("6  - Verificação do menor número");
		System.out.println("7  - Média aritmética");
		System.out.println("8  - Converter valores em Reais para Dólar");
		System.out.println("9  - Contagem de vogais");
		System.out.println("10 - Verificar intervalo entre números");
		System.out.println("11 - Verificação de valores divisíveis por 3 ou por 5");
		System.out.println("12 - Frase ao contrário");
		System.out.println("13 - Formatação em caixa alta");
		System.out.println("14 - Remover espaços em branco de uma frase");
		System.out.println("15 - Vogais e Consoantes");

		Scanner input = new Scanner(System.in);
		int num;

		String aux = JOptionPane.showInputDialog("Selecione uma opção do Menu");
		num = Integer.parseInt(aux);

		switch (num) {
		case 1:
						
			break;

		case 2:
			int inteiro1;
			int inteiro2;
			
			System.out.println("Digite um numero inteiro");
			inteiro1 = input.nextInt();
			System.out.println("Digite um numero inteiro");
			inteiro2 = input.nextInt();
			Metodos.somaInteiros(inteiro1, inteiro2);
			
					   System.out.println("A soma dos numeros e igual a:"...);
					   //chamar o "return soma;"
						
			break;

...(continuação)

Classe Métodos

 

package trab2bim;

import java.util.Scanner;

public class Metodos {

	/**
	 * Autora: Angel
	 */
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
	}

	public static double prestacao(double taxa, double valor, int dias) {
		
		

	}

	public static  void somaInteiros(int inteiro1, int inteiro2) {
		int soma= inteiro1 + inteiro2;
		return soma;
		
		
	   
	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mude o método para:

 

public static int somaInteiros(int inteiro1, int inteiro2) {
		int soma= inteiro1 + inteiro2;
		return soma;
			 
	}

E use-o:

 

case 2:
			int inteiro1;
			int inteiro2;
			
			System.out.println("Digite um numero inteiro");
			inteiro1 = input.nextInt();
			System.out.println("Digite um numero inteiro");
			inteiro2 = input.nextInt();
						
			System.out.println("A soma dos numeros e igual a:" + Metodos.somaInteiros(inteiro1, inteiro2));

						
			break;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.