Dúvida em criar classe Complexo utilizando uma classe Fracao (Minha solução está correta?)

Oii…

estou fazendo o meu trabalho de Java… fiz uma classe Fracao, que faz as operaçoes com objetos do tipo fraçao.
A outra parte é que eu devo fazer uma classe Complexo, que faz as operaçoes de numeros complexos, só que estes numeros sao em fracao.

Ex: 3/5 + 4/2i

So que nao estou sabendo como eu uso a classe Fracao para manipular os numeros.

Vou colocar o titulo do trabalho so pra vcs entenderem… qro uma luz pra saber como eu faço essa “ligaçao”… creio que naum seja usando herança…

Parte 2:
Implemente uma classe para representar números complexos, em que a parte real e a parte imaginária devem ser representadas por frações para evitar erros de arredondamento com valores reais. A sua classe deve necessariamente se chamar Complexo, de modo que seja possível criar objetos do tipo Complexo. Declare os atributos necessários em sua classe, disponibilize um construtor e disponibilize os seguintes métodos públicos (EXATAMENTE com os nomes definidos abaixo):

somar(): soma dois números complexos (o objeto utilizado na chamada do método e o objeto passado como parâmetro) e retorna um terceiro número complexo que é o resultado.
subtrair(): subtrai dois números complexos (o objeto utilizado na chamada do método e o objeto passado como parâmetro) e retorna um terceiro número complexo que é o resultado.
multiplicar(): multiplica dois números complexos (o objeto utilizado na chamada do método e o objeto passado como parâmetro) e retorna um terceiro número complexo que é o resultado.
dividir(): divide dois números complexos (o objeto utilizado na chamada do método e o objeto passado como parâmetro) e retorna um terceiro número complexo que é o resultado.
toString(): retorna uma String contendo a representação do objeto Complexo:
valor_real (+ ou -) valor_imaginário i.

-> Exemplo de código que usa a classe Complexo que será criada por você (será usado para corrigir o trabalho):
Fracao freal1 = new Fracao(3, 4);
Fracao freal2 = new Fracao(3, 5);
Fracao freal3 = new Fracao(2, 4);
Fracao freal4 = new Fracao(7, 4);

Complexo c1 = new Complexo(freal1, freal2);
Complexo c2 = new Complexo(freal3, freal4);

Complexo c3 = c1.somar(c2);
System.out.println("c3 = " + c3);
Complexo c4 = c1.subtrair(c2);
Complexo c6 = c1.multiplicar(c2);
System.out.println("c6 = " + c6.toString());
Complexo c7 = c1.dividir(c2);

.

Oi Thamiris,
O que você não conseguiu fazer?
Se sua classe Fracao já está pronta e funcionando, utilize-a então para compor a classe Complexo.

Oi,

Quando postar tópicos, por favor, use títulos mais sugestivos. Isso vai auxilia as pessoas que conhecem do assunto a entrar no seu tópico, e ajudar a respondê-lo. Por exemplo, um título como “Dúvida para criar classe de números complexos” seria muito mais útil.

[quote=davidbuzatto]Oi Thamiris,
O que você não conseguiu fazer?
Se sua classe Fracao já está pronta e funcionando, utilize-a então para compor a classe Complexo.[/quote]

Eu nao estou sabendo fazer essa composiçao…
sem utiliza a classe fraçao eu consigo fazer, nao estou sabendo eh usar a classe Fracao na classe Complexo.

Reitero as sugestões do Vinícius.
Quanto à dúvida:

Você vai ter dois arquivos: Fracao.java e Complexo.java

Fracao.java (você já implementou de alguma forma, segue minha sugestão):

[code]public class Fracao {

private double numerador;
private double denominador;

public Fracao( double numerador, double denominador ) {
    setNumerador( numerador );
    setDenominador( denominador );
}

public double getNumerador() {
    return numerador;
}

public void setNumerador( double numerador ) {
    this.numerador = numerador;
}

public double getDenominador() {
    return denominador;
}

public void setDenominador( double denominador ) {
    // aqui você poderia tratar o caso do denominador ser igual a 0
    this.denominador = denominador;
}

// métodos os as operações
public Fracao soma( Fracao outraFracao ) {
    // cálculo da soma... tem que achar o mmc, etc...
}

// outros métodos aqui....

}
[/code]
Complexo.java

[code]public class Complexo {

private Fracao real;
private Fracao imaginario;

public Complexo( Fracao real, Fracao imaginario ) {
    this.real = real;
}

public Fracao getReal() {
    return real;
}

public void setReal( Fracao real ) {
    this.real = real;
}

public Fracao getImaginario() {
    return imaginario;
}

public void setImaginario( Fracao imaginario ) {
    this.imaginario = imaginario;
}

// aqui os métodos com as operações

}[/code]

[]´s

davidbuzatto… eu tinha criado 4 atributos…

    private int numeradorReal;
    private int denominadorReal;
    private int numeradorImaginario;
    private int denominadorImaginario;

entao nao eh necessario?

eu vou utilizar as operaçoes de Fracao? como eu faço pra chamar os metodos da classe Fracao na calsse Complexo?
Essa é minha maior duvida, mas a ajuda de vcs jah tah valendo… ^^

:lol:

Dona Thamiris, por acaso você está sabendo as fórmulas que você tem de usar? Acho que, no seu caso em particular, são as fórmulas que estão lhe causando mais problemas. Se não souber matemática direito, tem algum colega seu que lhe ajude com as fórmulas?

As formulas eu sei…

so nao to sabendo fazer a composiçao…

alguem pode me dar um metodo exemplo de como farei isso?


//Classe Fracao
//Metodo somar

public Fracao somar(Fracao f){
		int denResult = denominador * f.denominador;
		int numResult = (denResult / denominador * numerador) + (denResult / f.denominador * f.numerador);
		
		Fracao fr = new Fracao(numResult, denResult);
		fr.simplificar();
		return fr;
	}

Fiz o metodo somar para a classe Complexo… está correto?

//Classe Complexo

public Complexo somar(Complexo c){
		Fracao realResult = real.somar(c.real);
		Fracao imagResult = imaginario.somar(c.imaginario);
		
		Complexo com = new Complexo(realResult, imagResult);
		return com;
		
	}

Olá Thammy,

  Quando você diz composiçao, está se referindo a instância da classe Fração na classe Complexo?

Até!