1
-
1
+ import java .util .UUID ;
2
+ import java .util .ArrayList ;
3
+ import java .util .List ;
2
4
3
5
/** #09 - Java -> Jesus Antonio Escamilla */
4
6
@@ -22,7 +24,36 @@ public static void main(String[] args) {
22
24
((Gato ) gato ).cazar ();
23
25
((Pajaro ) pajaro ).volar ();
24
26
//---EXTRA---
25
- // Pendiente
27
+ System .out .println ("\n " );
28
+ // Crear Gerente
29
+ Manager gerente = new Manager ("Jesus" );
30
+
31
+ // Crear Gerente de Proyecto
32
+ ProjectManager gerenteProyecto1 = new ProjectManager ("Antonio" , "Proyecto1" );
33
+ ProjectManager gerenteProyecto2 = new ProjectManager ("Faty" , "Proyecto2" );
34
+
35
+ // Crear Programadores
36
+ Programmer programmer1 = new Programmer ("Adolfo" , "Python" );
37
+ Programmer programmer2 = new Programmer ("Naty" , "C#" );
38
+ Programmer programmer3 = new Programmer ("Ruben" , "Kotlin" );
39
+ Programmer programmer4 = new Programmer ("Axel" , "JavaScript" );
40
+
41
+ // Agregar empleados a cargo del gerente
42
+ gerente .agregarEmpleado (gerenteProyecto1 );
43
+ gerente .agregarEmpleado (gerenteProyecto2 );
44
+ gerente .agregarEmpleado (programmer1 );
45
+ gerente .agregarEmpleado (programmer2 );
46
+ gerente .agregarEmpleado (programmer3 );
47
+ gerente .agregarEmpleado (programmer4 );
48
+
49
+ // Mostrar detalle de los empleados
50
+ gerente .showDetails ();
51
+ gerenteProyecto1 .showDetails ();
52
+ gerenteProyecto2 .showDetails ();
53
+ programmer1 .showDetails ();
54
+ programmer2 .showDetails ();
55
+ programmer3 .showDetails ();
56
+ programmer4 .showDetails ();
26
57
}
27
58
28
59
//---EJERCIÓ---
@@ -81,7 +112,108 @@ public static void imprimirSonido(Animal animal){
81
112
82
113
/**-----DIFICULTAD EXTRA-----*/
83
114
84
- // Pendientes
115
+
116
+ // Clase empleado
117
+ public static abstract class Employ {
118
+ private String id ;
119
+ private String nombre ;
120
+
121
+ // Constructor
122
+ public Employ (String nombre ){
123
+ this .id = generarIdentificador ();
124
+ this .nombre = nombre ;
125
+ }
126
+
127
+ // Método para generar un identificador único
128
+ private String generarIdentificador () {
129
+ return UUID .randomUUID ().toString ();
130
+ }
131
+
132
+ public String getId (){
133
+ return id ;
134
+ }
135
+
136
+ public String getNombre (){
137
+ return nombre ;
138
+ }
139
+
140
+ // Método abstracto que debe ser implementado por las subclases
141
+ public abstract void showDetails ();
142
+ }
143
+
144
+ // Clase Gerente
145
+ public static class Manager extends Employ {
146
+ private List <Employ > empleadosACargo ;
147
+
148
+ // Constructor
149
+ public Manager (String nombre ){
150
+ super (nombre );
151
+ this .empleadosACargo = new ArrayList <>();
152
+ }
153
+
154
+ // Añadir empleados a cargo
155
+ public void agregarEmpleado (Employ empleado ) {
156
+ empleadosACargo .add (empleado );
157
+ }
158
+
159
+ // Método especifico para mostrar los empleados a cargo
160
+ public void showEmployToPosition (){
161
+ System .out .println ("\n Gerente: " + getNombre () + " tiene a cargo los siguientes empleados:" );
162
+ for (Employ e : empleadosACargo ) {
163
+ System .out .println ("- " + e .getNombre ());
164
+ }
165
+ }
166
+
167
+ @ Override
168
+ public void showDetails () {
169
+ System .out .println ("\n Gerente: " + getNombre () + " (ID: " + getId () + ")" );
170
+ showEmployToPosition ();
171
+ }
172
+ }
173
+
174
+ // Clase Gerente de Proyecto
175
+ public static class ProjectManager extends Employ {
176
+ private String currentProject ;
177
+
178
+ // Constructor
179
+ public ProjectManager (String nombre , String currentProject ){
180
+ super (nombre );
181
+ this .currentProject = currentProject ;
182
+ }
183
+
184
+ // Método específico para mostrar el proyecto actual
185
+ public void showProject () {
186
+ System .out .println ("\n Gerente de Proyecto: " + getNombre () + " está gestionando el proyecto: " + currentProject );
187
+ }
188
+
189
+ @ Override
190
+ public void showDetails () {
191
+ System .out .println ("\n Gerente de Proyecto: " + getNombre () + " (ID: " + getId () + ")" );
192
+ showProject ();
193
+ }
194
+ }
195
+
196
+ // Clase Programador
197
+ public static class Programmer extends Employ {
198
+ private String lenguajeDominante ;
199
+
200
+ // Constructor
201
+ public Programmer (String nombre , String lenguajeDominante ){
202
+ super (nombre );
203
+ this .lenguajeDominante = lenguajeDominante ;
204
+ }
205
+
206
+ // Método específico para mostrar el lenguaje dominante del programador
207
+ public void showLenguaje () {
208
+ System .out .println ("\n Programador: " + getNombre () + " domina el lenguaje: " + lenguajeDominante );
209
+ }
210
+
211
+ @ Override
212
+ public void showDetails () {
213
+ System .out .println ("\n Gerente: " + getNombre () + " (ID: " + getId () + ")" );
214
+ showLenguaje ();
215
+ }
216
+ }
85
217
86
218
/**-----DIFICULTAD EXTRA-----*/
87
219
}
0 commit comments