[Resolvido] Duvida com Programação Orientada a Objeto

10 respostas
N
Olá estou com uma dúvida em fazer uma Classe NumeroComplexo onde ele tem alguns métodos como imprimir número, verificar se 2 números são igual, soma e subtração... estou com dúvida em fazer o método da soma e subtração.. meu código está assim
public class NumeroComplexo {
    int a = 0, b=0; 
    public NumeroComplexo(int a, int b){
          this.a =a;
          this.b=b;
    }
    public void imprimeNumero (){
        System.out.println (a+" + "+b+"i");
    }
    
    public boolean ehIgual (NumeroComplexo Nc2){
        if(a == Nc2.a && b==Nc2.b ){
            return true;
        }else{
            return false;
        }
    }
    public  int soma (NumeroComplexo Nc2){
        NumeroComplexo t = new (a+Nc2.a, b+Nc2.b);
        return t;
  
}
A classe main está assim
package Exercicio04_prova;

public class Exercicio_04 {
    public static void main (String[]args){
        NumeroComplexo n1 = new NumeroComplexo(1 , 2);
        NumeroComplexo n2 = new NumeroComplexo (3,4);
        n2.imprimeNumero();
        n1.soma(n2);
    }
}
Obrigado pela atenção

10 Respostas

davidbuzatto

Qual a sua dúvida em relação à soma e à subtração?

A soma de dois complexos compreende criar um terceiro complexo em que sua parte real é a soma das partes reais dos dois operandos e a parte imginária é a soma da parte imaginária dos dois operandos. Parece que é isso q vc está fazendo. O único problema, pelo menos na soma, é que você deve retornar um NumeroComplexo e não um int, afinal, o que é retornada é a referência de “t” (que é um NumberoComplexo) Não seria melhor vc chamar sua parte real de “r” e sua parte imaginária de “i” ao invés de “a” e “b”?

Seu código nem compilar compila…

N

O meu problema é esse…
eu ainda estou aprende a programa orientado a objeto…
e está dando erro pra compilar… e sinceramente não tenho a minima idéia de aonde está o corre…
no proprimo jdeveloper está acusando erro essa seguinte parte do código:

NumeroComplexo t = new (a+Nc2.a, b+Nc2.b);
     return t;

mas ele não fala o que está errado…

marvinla

Olá.

Você deveria usar

NumeroComplexo t = new NumeroComplexo(a+Nc2.a, b+Nc2.b)

Faltou colocar o nome do construtor aí.

E como o davidbuzatto disse, no método soma, você deve retornar NumeroComplexo e não int.

Falou.

N


24/02/2013 18:01:28 Assunto: Re:Duvida com Programação Orientada a Objeto
Olá.

Você deveria usar

NumeroComplexo t = new NumeroComplexo(a+Nc2.a, b+Nc2.b)

Faltou colocar o nome do construtor aí.

E como o davidbuzatto disse, no método soma, você deve retornar NumeroComplexo e não int.

Falou.


Eu fiz como você disse e ficou assim

public  int soma (NumeroComplexo Nc2){
        NumeroComplexo t = new NumeroComplexo (a+Nc2.a, b+Nc2.b);
        return NumeroComplexo;
         
  
    }

está dando o seguinte erro
cannot find variable NumeroComplexo
desculpa mas ainda sou iniciante e estou pegando o jeito …

A

O método soma retorna um inteiro e você está retornando um tipo NumeroComplexo.

N

então o método seria o que?
existe um método que retorna um outro métodos?
estou um pouco confuso

B

então o método seria o que?
existe um método que retorna um outro métodos?
estou um pouco confuso

O resultado da soma de dois números complexos é outro número complexo.

Declare que o teu método de soma retorne um número complexo.

sergiotaborda

NaCama:

24/02/2013 18:01:28 Assunto: Re:Duvida com Programação Orientada a Objeto
Olá.

Você deveria usar

NumeroComplexo t = new NumeroComplexo(a+Nc2.a, b+Nc2.b)

Faltou colocar o nome do construtor aí.

E como o davidbuzatto disse, no método soma, você deve retornar NumeroComplexo e não int.

Falou.


Eu fiz como você disse e ficou assim

public  int soma (NumeroComplexo Nc2){
        NumeroComplexo t = new NumeroComplexo (a+Nc2.a, b+Nc2.b);
        return NumeroComplexo;
         
  
    }

está dando o seguinte erro
cannot find variable NumeroComplexo
desculpa mas ainda sou iniciante e estou pegando o jeito …

Você não está entendendo o que lhe estão dizendo. Seu problema não é programar é comunicar na linguagem tecnica

public  NumeroComplexo soma (NumeroComplexo Nc2){  
        NumeroComplexo t = new NumeroComplexo (a+Nc2.a, b+Nc2.b);  
        return t;  
           
      
    }

Compare este código acima com o seu. E tente entender o que estava errado.

Os erros que o compilador do java aponta são muito claros. Quando vc diz que ele “não diz o que está errado” é mentira. Vc que não sabe entender o que o compilador lhe está dizendo.
Então, aprenda a ler os erros e a entender o que eles significam. Vai ajudar muito no futuro. ( inclusive vc deve colocar o erro aqui no forum para nós ajudarmos)
Também tente entender o que lhe dizem. Todo o mundo lhe disse “retorne um numero completo” isto significa que o return retorna um objeto de numero complexo, mas também que o método tem que ser declarado como retornando a mesma coisa.

fabianoalima

A linha que tem a assinatura do método está retornando um int depois de públic.

public  int soma (NumeroComplexo Nc2){

Deve ficar assim:

public  NumeroComplexo soma (NumeroComplexo Nc2){

Por causa do return:

return NumeroComplexo;

Depois de public vem a declaração de tipo de retorno do seu método quando este tem retorno.

public  NumeroComplexo soma (NumeroComplexo Nc2){  
    NumeroComplexo t = new NumeroComplexo (a+Nc2.a, b+Nc2.b);  
    return NumeroComplexo;  
}

Obs. Quando o problema estiver resolvido feche o tópico editando-o e colocando [RESOLVIDO] no início do título do tópico aberto.

N

Obrigado pela ajuda…
agora eu entendi aonde estava o erro… =)

Criado 24 de fevereiro de 2013
Ultima resposta 25 de fev. de 2013
Respostas 10
Participantes 7