Foros del Web » Programación para mayores de 30 ;) » Java »

Duda con este codigo

Estas en el tema de Duda con este codigo en el foro de Java en Foros del Web. Estoy aprendiendo a trabajar con static factory y se me presenta esta duda: En el primer codigo si paso un sólo parametro desde el constructor ...
  #1 (permalink)  
Antiguo 27/11/2008, 17:18
 
Fecha de Ingreso: febrero-2006
Mensajes: 446
Antigüedad: 18 años, 2 meses
Puntos: 3
Duda con este codigo

Estoy aprendiendo a trabajar con static factory y se me presenta esta duda:

En el primer codigo si paso un sólo parametro desde el constructor me funciona correctamente la suma del valor 100 y da 200, pero no podria sumar 100+101 por ejemplo.

A que se debe el problema con el codigo que tiene doble parametro o como puedo arreglarlo para sumar 2 numeros ?, y por qué con un parametro funciona?
gracias
Código PHP:
public class Prueba
{
private final 
int re;
        
    private 
Prueba(int re)
    {
    
this.re=re;
    }

public static 
Prueba suma(int re
{
return new 
Prueba((re+re));
}

public 
String toString()
{
return 
"("+re+")"
}
    
public static 
void main(String arguments[])
{
System.out.println(suma(100));    
}


Pero si paso 2 parametros desde el constructor, me da el siguiente error:
Código PHP:
cannot find symbol
symbol  
constructor Complejo(int)
location: class clases.Complejo
return new Complejo((re+im));
          ^ 
Codigo con doble parametro desde el constructor
Código PHP:
public class Complejo
{
    private final 
int re;
    private final 
int im;
    
    private 
Complejo(int reint im)
    {
        
this.re=re;
        
this.im=im;
    }
public static 
Complejo suma(int reint im) {

return new 
Complejo((re+im));
}

public 
String toString()
{
return 
"("+re+","
          
+im+","+")"
}

public static 
void main(String arguments[])
{
System.out.println(suma(100,100));    
}


Última edición por -thor-; 27/11/2008 a las 17:44
  #2 (permalink)  
Antiguo 27/11/2008, 22:22
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Mensaje Respuesta: Duda con este codigo

Hola,

Cita:
Iniciado por -thor- Ver Mensaje
Pero si paso 2 parametros desde el constructor, me da el siguiente error:
Código PHP:
cannot find symbol
symbol  
constructor Complejo(int)
location: class clases.Complejo
return new Complejo((re+im));
          ^ 
El constructor de la clase Complejo espera 2 parámetros "private Complejo(int re, int im)" mientras que solamente le estas pasando 1, "new Complejo((re+im));".

http://www.programacion.com/java/tut...java_basico/3/

Saludos,
  #3 (permalink)  
Antiguo 28/11/2008, 08:17
 
Fecha de Ingreso: febrero-2006
Mensajes: 446
Antigüedad: 18 años, 2 meses
Puntos: 3
Respuesta: Duda con este codigo

Cita:
Iniciado por HackmanC Ver Mensaje
Hola,

El constructor de la clase Complejo espera 2 parámetros "private Complejo(int re, int im)" mientras que solamente le estas pasando 1, "new Complejo((re+im));".

http://www.programacion.com/java/tut...java_basico/3/
Saludos,

Pero en el segundo codigo estoy pasando 2 parametros desde el constructor e igual me da el error:
Código PHP:
cannot find symbol
symbol  
constructor Complejo(int)
location: class clases.Complejo
return new Complejo((re+im));
          ^ 
Este es el codigo en donde le paso los 2 parametros.
¿Cual puede ser el problema?
gracias
Código PHP:
/*acá paso los 2 parametros al constructor*/
private Complejo(int reint im)
    {
        
this.re=re;
        
this.im=im;
    }

/*Aqui retorno el objeto que recibe 2 parametros*/
public static Complejo suma(int reint im) {
return new 
Complejo((re+im));
}


public static 
void main(String arguments[])
{
/*aqui paso los números que serán sumados
System.out.println(suma(100,100));    

  #4 (permalink)  
Antiguo 28/11/2008, 12:23
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Duda con este codigo

Hola,

Esto ...

Cita:
Iniciado por -thor- Ver Mensaje
... Complejo((re+im)); ...
... no son 2 parámetros ... es solamente 1.
Revisa cualquier tutorial sobre operadores y funciones y sus parámetros en Java.

(re+im) es una operación matemática, y es evaluada por Java antes de evaluar el constructor de Complejo ... por ejempo ... si 're' fuera igual a 1 e 'im' fuera igual a 2 ... entonces estás escribiendo Complejo (1+2) ... Java lo interpreta como new Complejo(3).

Saludos,

Última edición por HackmanC; 28/11/2008 a las 12:27 Razón: example
  #5 (permalink)  
Antiguo 28/11/2008, 14:10
 
Fecha de Ingreso: febrero-2006
Mensajes: 446
Antigüedad: 18 años, 2 meses
Puntos: 3
Respuesta: Duda con este codigo

Cita:
Iniciado por HackmanC Ver Mensaje
Hola,

Esto ...



... no son 2 parámetros ... es solamente 1.
Revisa cualquier tutorial sobre operadores y funciones y sus parámetros en Java.

(re+im) es una operación matemática, y es evaluada por Java antes de evaluar el constructor de Complejo ... por ejempo ... si 're' fuera igual a 1 e 'im' fuera igual a 2 ... entonces estás escribiendo Complejo (1+2) ... Java lo interpreta como new Complejo(3).

Saludos,
Que cambio deberia hacer en mi codigo para que funcione correctamente la suma?, he estado leyendo tutoriales sobre eso que dices, pero aún no encuentro algo claro.
Gracias
  #6 (permalink)  
Antiguo 28/11/2008, 14:52
 
Fecha de Ingreso: julio-2008
Mensajes: 10
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Duda con este codigo

Código PHP:
/*acá paso los 2 parametros al constructor*/
private Complejo(int reint im)
    {
        
this.re=re;
        
this.im=im;
    }

/*Aqui retorno el objeto que recibe 2 parametros*/
public static Complejo suma(int reint im) {
//return new Complejo((re+im));Aqui esta el error
return new Complejo(?,?);//el constructor Complejo espera dos parametros
//Ahora abra que ver como quieres sumar
//1er Opcion sumar a "re"lo que tiene"im" es decir  return new //Complejo((re+im),im);
//2da. Opcion sumar a "im" lo que tiene "re" --> return new Complejo(re,(re+im));
//
}


public static 
void main(String arguments[])
{
/*aqui paso los números que serán sumados
System.out.println(suma(100,100));    

  #7 (permalink)  
Antiguo 29/11/2008, 09:05
 
Fecha de Ingreso: febrero-2006
Mensajes: 446
Antigüedad: 18 años, 2 meses
Puntos: 3
Respuesta: Duda con este codigo

Muchas gracias, Ahora mi metodo toString lo dejo así:
Código PHP:
public String toString()
{
return 
"("+im+")"

porque a re le sumo lo que tiene im
Código PHP:
return new Complejo((re+im),im); 
y me muestra correctamente la suma de los 2 valores.
gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:25.