001 /** Clase MaletaX
002 * @Author: Emerson Castañeda S
003 * Para mostrar como implementar la herencia en java
004 **/
005
006
007 public class MaletaX extends Maleta//hereda de la clase Maleta
008 {
009 //atributos de la clase
010 private int numBolsillos;
011 private int capMaximas[];
012 private int estActuales[];
013
014 //constructor por defecto
015 MaletaX()
016 {
017 super();
018 numBolsillos = 3;
019 capMaximas = new int[3];
020 estActuales = new int[numBolsillos];
021 capMaximas[0] = 2;
022 capMaximas[1] = 5;
023 capMaximas[2] = 3;
024 estActuales[0] = 0;
025 estActuales[1] = 0;
026 estActuales[0] = 0;
027 }
028
029 //constructor con parametros que recibe
030 //el numero de bolsillos de la maleta
031 //la capacidad maxima de cada bolsillo
032 //y el estado actual de cada uno
033 //y los parametros de inicializacion del la
034 //super clase Maleta
035 MaletaX(int i, int ai[], int ai1[],int color, String tipo, float x, float y, float z)
036 {
037 super(color,tipo,x,y,z);
038 int j = 0;
039 int k = 0;
040 numBolsillos = i;
041 capMaximas = new int[i];
042 estActuales = new int[i];
043 for(int l = 0; l < i; l++)
044 {
045 capMaximas[l] = ai[l];
046 j += ai[l];
047 estActuales[l] = ai1[l];
048 k += ai1[l];
049 }
050
051 super.setCapMaxima(j);
052 super.setEstActual(k);
053 }
054
055 //metodos set y get
056 public int getNroBolsillos()
057 {
058 return numBolsillos;
059 }
060
061 public int getEstActuales(int i)
062 {
063 return estActuales[i - 1];
064 }
065
066 public int getCapMaximas(int i)
067 {
068 return capMaximas[i - 1];
069 }
070
071 //otros metodos
072
073 // metodo para colocar elementos en la maleta indicando
074 // el numero del bolsillo y el numero de elementos a colocar
075 // controla que no se exceda la capacidad maxima del bolsillo
076 public boolean llenarX(int i, int j)
077 {
078 if(llenar(j))
079 {
080 if(capMaximas[i - 1] >= estActuales[i - 1] + j)
081 {
082 estActuales[i - 1] += j;
083 return true;
084 } else
085 {
086 sacar(j);
087 return false;
088 }
089 } else
090 {
091 return false;
092 }
093 }
094
095 // metodo para sacar elementos de la maleta indicando
096 // el numero del bolsillo y el numero de elementos a sacar
097 // controla que no se excedan las existencias del bolsillo
098 public boolean sacarX(int i, int j)
099 {
100 if(sacar(j))
101 {
102 if(estActuales[i - 1] - j >= 0)
103 {
104 estActuales[i - 1] -= j;
105 return true;
106 } else
107 {
108 llenar(j);
109 return false;
110 }
111 } else
112 {
113 return false;
114 }
115 }
116
117 // redefinicion del metodo toString de Maleta para complementar la
118 // informacion asociada a la clase MaletaX
119 public String toString()
120 {
121 String s = super.toString();
122 s = s + "\nNro Bolsillos : " + numBolsillos;
123 s = s + "\nCap. Bolsillos : [ ";
124 for(int i = 0; i < numBolsillos; i++)
125 s = s + " " + capMaximas[i];
126
127 s = s + " ]";
128 s = s + "\nEst. Bolsillos : [ ";
129 for(int j = 0; j < numBolsillos; j++)
130 s = s + " " + estActuales[j];
131
132 s = s + " ]\n--------------------------";
133 return s;
134 }
135
136
137 }
|