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

Extends y constructores

Estas en el tema de Extends y constructores en el foro de Java en Foros del Web. Soy principiante y puede que lo que pregunte sea una tontería, pero es motivo de error en mi programa, es un ajedrez. Defino una nueva ...
  #1 (permalink)  
Antiguo 10/12/2005, 11:51
 
Fecha de Ingreso: abril-2002
Mensajes: 161
Antigüedad: 22 años
Puntos: 0
Pregunta Extends y constructores

Soy principiante y puede que lo que pregunte sea una tontería, pero es motivo de error en mi programa, es un ajedrez.

Defino una nueva clase Rey que hereda de FiguraAjedrez, ésta última está dentro del paquete juego.ajedrez.figuras, si pongo:

public class Rey extends FiguraAjedrez

me da el siguiente error: "cannot resolve symbol class FiguraAjedrez"; ahora bien si pongo:

public class Rey extends juego.ajedrez.FiguraAjedrez

desaparece el error, ¿eso se puede poner??
-------------------------------------------------
Por otra parte, dentro de:

public class Arbitro implements IArbitro

tengo una llamada al constructor de Rey:

reyNegro = new Rey(Color.NEGRO,this);

bueno pues no se cómo definir el constructor, he probado con:

public Rey(IColor color, IArbitro arbitro){
this.color=color;
this.arbitro=arbitro;
}


public Rey(){}

public Rey(IColor color, IArbitro arbitro, ICelda celda){
this.color=color;
this.arbitro=arbitro;
this.celda=celda;
}


Y con todos ellos me da el mismo error:

FiguraAjedrez(juego.IColor,juego.IArbitro,juego.IC elda) in juego.ajedrez.FiguraAjedrez cannot be applied to ()

Espero haberme explicado bien. Muchas gracias!!!
  #2 (permalink)  
Antiguo 10/12/2005, 23:22
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
Cita:
Iniciado por Melissa
public class Rey extends juego.ajedrez.FiguraAjedrez

desaparece el error, ¿eso se puede poner??
Mira lo que pasa es que necesitas importar los paquetes para usar la primera forma que te sale el error....

en esta ultima forma que estas extendiendo tu clase, pues ya no te marca el error por que le estas especificando al compilador donde exactamente esta hubicada la clase padre.......

bueno para importar los paquetes unicamente haces esto>


import juego.ajedrez.FiguraAjedrez;


con eso habras importado a tu clase la clase FiguraAjedrez

si quisieras importar todo el paquete, unicamente haces esto:

import juego.ajedrez.*;


y con eso todas las clases de ese paquete podran ser usadas en esta clase...

ammmmm una ultima cosa, esa instruccion la pones debajo de donde declaras a que paquete pertenece la nueva clase.....

mira un ejemplo rapidin...

Código PHP:
//declaras el paquete
package juego.algunPaquete;

//declaras tus import's
import juego.ajedrez.FiguraAjedrez;
import juego.algunPaquete.*;
import java.sql.*;

//programas tu clase
public class MyClase extends FiguraAjedrez{
   
//lo que quieras

bueno, espero te halla aclarado tus dudas, sobre el problema de los constructores, no te entendi muy bien

have funnnnnnnnnn!!
  #3 (permalink)  
Antiguo 10/12/2005, 23:30
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
Bueno, para tu segundo error estas Implementando una interface llamada IArbitro, como ya te dije, no entiendo muy bien tu error, pero te explico rapidamente acerca de las interfaces..........

OK, una interface es una "PLANTILLA", osea unicamente declaras los metodos que va a tener las clases que implementen esta interface, quedaria algo asi:

Código PHP:
interface MyInterface{
   public 
void metodoUno(String parm1,String parm2);
   public 
int otro(int parm1,String parm2);
   public 
String unoMas(String parm1,String parm2);

bueno, ahi esta la interface ahora las clases que van a implementar esta interface, forsozamente tienen que implementar todos los metodos que esta interface especifica, y ademas se le pueden poner algunos otros que tu necesites, en esto entran constructores tambien;

bueno, no se si quedo claro el concepto?? en fin alguna duda nomas sigue porteando!!

have funnnnnnnnn!!
  #4 (permalink)  
Antiguo 11/12/2005, 05:46
 
Fecha de Ingreso: abril-2002
Mensajes: 161
Antigüedad: 22 años
Puntos: 0
Sonrisa MUCHAS GRACIAS stock!!

Creo que ahora he entendido lo que pasaba, gracias a tu explicación ; he quitado lo de

public class Rey extends juego.ajedrez.FiguraAjedrez;


Y he puesto:

import juego.ajedrez.FiguraAjedrez;
public class Rey extends FiguraAjedrez


Y ya no me da error. GRACIAS!!

Lo del constructor ya esta solucionado, el problema era que tenía que usar el del padre y este necesitaba tres parámetros y yo sólo le estaba pasando dos!! Que tonta!



Muchas 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 14:57.