Herencia

Iniciado por m@o_614, 19 Abril 2012, 04:07 AM

0 Miembros y 1 Visitante están viendo este tema.

m@o_614

Saludos, estaba haciendo un codigo de tres clases heredadas (padre-hijos) y en las primeras lineas del main me salen errores y no se que estoy implementando mal
Código (java) [Seleccionar]
public class Electrodomestico {
public String marca;
public double precio;
public int numPieza;

public Electrodomestico(String marcax, double preciox, int numPiezax){
fijaMarca(marcax);
fijaPrecio(preciox);
fijaNumPieza(numPiezax);
}
public void fijaMarca(String marcax){
marca=marcax;
}
public void fijaPrecio(double preciox){
precio=preciox;
}
public void fijaNumPieza(int numPiezax){
numPieza=numPiezax;
}
public String dameMarca(){
return marca;
}
public double damePrecio(){
return precio;
}
public int dameNumPieza(){
return numPieza;
}

class Refrigerador extends Electrodomestico{
private String color;
private int numPuertas;
private int numCajones;

public Refrigerador(String marcax,double preciox,int numPiezax,String colorx,
            int numPuertasx,int numCajonesx){
super(marcax,preciox,numPiezax);
fijaColor(colorx);
fijaNumPuertas(numPuertasx);
fijaNumCajones(numCajonesx);
}
public void fijaColor(String colorx){
color=colorx;
}
public void fijaNumPuertas(int numPuertasx){
numPuertas=numPuertasx;
}
public void fijaNumCajones(int numCajonesx){
numCajones=numCajonesx;
}
public String dameColor(){
return color;
}
public int dameNumPuertas(){
return numPuertas;
}
public int dameNumCajones(){
return numCajones;
}
}
class Lavadora extends Electrodomestico{
private int velocidadRPM;
private int anchoCM;
private String modelo;

public Lavadora(String marcax,double preciox,int numPiezax,int velocidadRPMx,
int anchoCMx,String modelox){
super(marcax,preciox,numPiezax);
fijaVelocidadRPM(velocidadRPMx);
fijaAnchoCM(anchoCMx);
fijaModelo(modelox);
}
public void fijaVelocidadRPM(int velocidadRPMx){
velocidadRPM=velocidadRPMx;
}
public void fijaAnchoCM(int anchoCMx){
anchoCM=anchoCMx;
}
public void fijaModelo(String modelox){
modelo=modelox;
}
public int dameVelocidadRPM(){
return velocidadRPM;
}
public int dameAnchoCM(){
return anchoCM;
}
public String dameModelo(){
return modelo;
}        
}
public class Herencia{
public static void main(String[] args) {
Electrodomestico e=new Electrodomestico("Whirpool",7000.50,1);
Refrigerador r=new Refrigerador("LG",2000.00,1,"blanco",3,8);
Lavadora l=new Lavadora("Samsung",3000.50,1,1000,55,"SMO2VY346");
System.out.println("Marca: "+r.dameMarca());
System.out.println("Precio: "+r.damePrecio());
System.out.println("Numero de Piezas: "+r.dameNumPieza());
System.out.println("Color: "+r.dameColor());
System.out.println("Numero de Puertas: "+r.dameNumPuertas());
System.out.println("Numero de Cajones: "+r.dameNumCajones());
        System.out.println("Marca: "+l.dameMarca());
        System.out.println("Precio: "+l.damePrecio());
        System.out.println("Numero de Piezas: "+l.dameNumPieza());
        System.out.println("Velocidad(rpm): "+l.dameVelocidadRPM());
        System.out.println("Ancho(cm): "+l.dameAnchoCM());
        System.out.println("Modelo: "+l.dameModelo());
}
  }
}


de antemano gracias

goll9d

Deberias poner cual es el error que te da para asi tener una idea de cual es y con gusto te podemos ayudar  ::)

m@o_614

lo que sucede es que segun yo main deberia de ser static pero si lo pongo como static me aparece el siguiente mensaje de error:

The method main cannot be declared static

y si se lo quito en la linea de:
Código (java) [Seleccionar]
Electrodomestico e=new Electrodomestico("Whirpool",7000.50,1);

me aparece the local variable e is never read

saludos

sapito169

que nombre tiene tu archivo?
es un solo archivo?

si es un solo archivo esta mal por que no puede haber 2 clases publicas en un mismo archivo

sapito169

wtf las cosas que se pueden aprender de sorpresa

esta es la version corregida

notepad Electrodomestico.java


public class Electrodomestico {

    public String marca;
    public double precio;
    public int numPieza;

    public Electrodomestico(String marcax, double preciox, int numPiezax) {
        fijaMarca(marcax);
        fijaPrecio(preciox);
        fijaNumPieza(numPiezax);
    }

    public void fijaMarca(String marcax) {
        marca = marcax;
    }

    public void fijaPrecio(double preciox) {
        precio = preciox;
    }

    public void fijaNumPieza(int numPiezax) {
        numPieza = numPiezax;
    }

    public String dameMarca() {
        return marca;
    }

    public double damePrecio() {
        return precio;
    }

    public int dameNumPieza() {
        return numPieza;
    }

    static class Refrigerador extends Electrodomestico {

        private String color;
        private int numPuertas;
        private int numCajones;

        public Refrigerador(String marcax, double preciox, int numPiezax, String colorx,
                int numPuertasx, int numCajonesx) {
            super(marcax, preciox, numPiezax);
            fijaColor(colorx);
            fijaNumPuertas(numPuertasx);
            fijaNumCajones(numCajonesx);
        }

        public void fijaColor(String colorx) {
            color = colorx;
        }

        public void fijaNumPuertas(int numPuertasx) {
            numPuertas = numPuertasx;
        }

        public void fijaNumCajones(int numCajonesx) {
            numCajones = numCajonesx;
        }

        public String dameColor() {
            return color;
        }

        public int dameNumPuertas() {
            return numPuertas;
        }

        public int dameNumCajones() {
            return numCajones;
        }
    }

    static class Lavadora extends Electrodomestico {

        private int velocidadRPM;
        private int anchoCM;
        private String modelo;

        public Lavadora(String marcax, double preciox, int numPiezax, int velocidadRPMx,
                int anchoCMx, String modelox) {
            super(marcax, preciox, numPiezax);
            fijaVelocidadRPM(velocidadRPMx);
            fijaAnchoCM(anchoCMx);
            fijaModelo(modelox);
        }

        public void fijaVelocidadRPM(int velocidadRPMx) {
            velocidadRPM = velocidadRPMx;
        }

        public void fijaAnchoCM(int anchoCMx) {
            anchoCM = anchoCMx;
        }

        public void fijaModelo(String modelox) {
            modelo = modelox;
        }

        public int dameVelocidadRPM() {
            return velocidadRPM;
        }

        public int dameAnchoCM() {
            return anchoCM;
        }

        public String dameModelo() {
            return modelo;
        }
    }

    static class Herencia {

        public static void main(String[] args) {
            Electrodomestico e = new Electrodomestico("Whirpool", 7000.50, 1);
            Refrigerador r = new Refrigerador("LG", 2000.00, 1, "blanco", 3, 8);
            Lavadora l = new Lavadora("Samsung", 3000.50, 1, 1000, 55, "SMO2VY346");
            System.out.println("Marca: " + r.dameMarca());
            System.out.println("Precio: " + r.damePrecio());
            System.out.println("Numero de Piezas: " + r.dameNumPieza());
            System.out.println("Color: " + r.dameColor());
            System.out.println("Numero de Puertas: " + r.dameNumPuertas());
            System.out.println("Numero de Cajones: " + r.dameNumCajones());
            System.out.println("Marca: " + l.dameMarca());
            System.out.println("Precio: " + l.damePrecio());
            System.out.println("Numero de Piezas: " + l.dameNumPieza());
            System.out.println("Velocidad(rpm): " + l.dameVelocidadRPM());
            System.out.println("Ancho(cm): " + l.dameAnchoCM());
            System.out.println("Modelo: " + l.dameModelo());
        }
    }
}


javac Electrodomestico.java

java Electrodomestico$Herencia

y porfavor usa una clase por archivo y evita usar static para que no te pase denuevo

Puntoinfinito

Tal y como esta el anterior funciona
AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.

m@o_614

#6
muchas gracias ;D

oye puntoinfinito a cual de los dos códigos de refieres?? por que el mio aunque ya le quite los errores no me corre, me dice none applicable