Como retornar metodo de tipo nao primitivo?

3 respostas
peepee

quando eu declaro uma classe, por exemplo Complex e crio um metodo que deve retornar um valor desse tipo, como devo proceder?

como eu estou tentando:

public class Complex 
{
	private double parteReal,parteImaginaria;
	
	public Complex(double parteR, double parteI)
	{
		parteReal = parteR;
		parteImaginaria = parteI;
	}
...

public Complex subtrair(Complex z)
	{
		return (new Complex(parteReal - z.parteReal,parteImaginaria - z.parteImaginaria));
	}

bem, o que eu gostaria de saber é como eu devo proceder com relação à exibição desse valor, pois eu não sei como dar a saida a formatada para a String quando não estou trabalhando com, por exemplo, um valor int, onde eu utilizaria o %d.

obrigado.

ps.: para quem tem o livro do Deitel, essa duvida surgiu do exercicio 8.12, pagina 298.

3 Respostas

T

O método “tradicional” para fazer o que você quer (saída formatada) é sobrepor o método toString.

Exemplo:

public class Complex {
    ....
    public String toString() {
        return "(" + parteReal + "," + parteImaginaria + ")";
    }
}
dudaskank

bom, acho que fazendo esse toString() aqui de cima e colocando um %s na string do formato funciona do jeito que você precisa…

peepee

eu consegui resolver da seguinte forma:

ao invés de estipular um retorno de tipo nao primitivo, eu declarei o metodo como double e dentro dele declarei uma variavel da classe Complex dentro do proprio método realizando as contas por la mesmo e retornando o valor em double. assim deu para formatar a saida e o programa exibiu a saida corretamente.

obrigado a todos pelas respostas.

Criado 11 de julho de 2006
Ultima resposta 11 de jul. de 2006
Respostas 3
Participantes 3