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

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

[code]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;

}
[/code]

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

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…

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…

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.

[quote]
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.[/quote]
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 …

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

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

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

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.

[quote=NaCama][quote]
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.[/quote]
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 …
[/quote]

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.

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.

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