Relaciones entre Clases en POO UML
Relaciones entre Clases en POO UML
ASIGNATURA
PROGRAMACION ORIENTADA A OBJETOS
CURSO
SEGUNDO “A” TIC
DOCENTE RESPONSABLE
ING JOFFRE CARTUCHE
TEMA
RELACION ENTRE CLASES
PERIODO LECTIVO
2024-E2
1. Índice 2
2. Introducción 3
3. Objetivo 4
3.1. Objetivo General 4
3.2. Objetivos Específicos 4
4. Marco Teórico 5
4.1. Asociación 5
4.2. Generalización 11
4.3. Agregación 17
4.4. Composición 21
4.5. Dependencia 26
5. Caso Práctico 30
6. Conclusiones 50
7. Recomendaciones 51
8. Bibliografía 52
2. Introducción
En el mundo de la programación orientada a objetos existen diversas maneras
de plantear un problema, entenderlo y llevarlo a código. Y para ello existen los
diagramas UML, que en sus siglas son Unified Modeling Language o en español,
lenguaje unificado de modelado que esta especialmente desarrollado para
ayudar a modelar, documentar y comprender la estructura y comportamiento de
los sistemas. En el contexto de POO, UML resulta muy útil para representar la
interacción entre objetos y clases de manera que el desarrollador logre
comprender, permitiendo así una mejor planificación y comunicación durante el
periodo de desarrollo del sistema.
Una de las características claves de los diagramas UML, son la relación entre
clases que presentan, es decir, la manera en que una clase se relaciona con otra
y que estas se comporten de una manera diferente. Estas relaciones incluyen
conceptos como asociación, generalización, agregación, composición,
dependencia.
Cada una de estas relaciones entre clases esta representada a su manera y el
cual facilitan la comprensión del diseño del sistema.
3. Objetivo
3.1. Objetivo General
Desarrollar aplicaciones o sistemas informáticos ejecutando el
concepto de relacion entre clases para presentar e ilustrar mejor la
estructura del sistema informático.
public Cliente() {
}
Clase Habitación:
package Entidades;
import [Link];
/**
* @author Marcos
* @version 1.0
* @created 18-nov.-2024 18:16:05
*/
public class Habitacion {
private int Numero;
private String Tipo;
private double Precio;
private String Estado;
private Cliente cliente;
public Habitacion() {
[Link] = "Libre";
}
Formulario:
package Formulario;
import [Link];
import [Link];
import [Link];
/**
*
* @author Marcos
*/
public class frm_Asociacion extends [Link] {
public frm_Asociacion() {
initComponents();
}
private Habitacion hab;
private Cliente cli;
@SuppressWarnings("unchecked")
private void
jButton1ActionPerformed([Link] evt) {
// TODO add your handling code here:
try {
int id =
[Link]([Link]());
String nom = [Link]();
String ape = [Link]();
String tel = [Link]();
cli = new Cliente(id, nom, ape, tel);
int num =
[Link]([Link]());
String tip =
[Link]().toString();
double pre =
[Link]([Link]());
hab = new Habitacion(num, tip, pre, "");
[Link](cli);
[Link](null, "Datos
ingresados correctamente", "Exito", JOptionPane.INFORMATION_MESSAGE);
} catch (NumberFormatException ex) {
[Link](null, "Error en
los datos ingresados, verifique los valores", "Error",
JOptionPane.ERROR_MESSAGE);
}
}
private void
jButton2ActionPerformed([Link] evt) {
// TODO add your handling code here:
try {
if (cli != null && hab != null) {
[Link]();
[Link]();
} else {
[Link](this, "No
hay datos para imprimir. Ingrese primero los datos", "Advertencia",
JOptionPane.WARNING_MESSAGE);
}
} catch (NumberFormatException ex) {
[Link](this, "Error al
imprimir los datos", "Error", JOptionPane.ERROR_MESSAGE);
}
}
private void
jButton3ActionPerformed([Link] evt) {
// TODO add your handling code here:
[Link]("");
[Link]("");
[Link]("");
[Link]("");
[Link]("");
[Link]("");
[Link](0);
hab = null;
cli = null;
[Link](null, "Campos limpiados
correctamente, ingrese nuevos datos", "Informacion",
JOptionPane.INFORMATION_MESSAGE);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
Aporte:
Problema:
Utilizando la clase persona, realizar un programa, que permita crear dos clases
de trabajador, fijo y jornalero heredando de la clase persona, fijo deberá calcular
la cantidad a pagar dependiendo de su sueldo fijo y comisiones y jornalero del
costo por hora y horas trabajadas.
Diagrama:
Codificación:
Clase Persona:
package Entidades;
/**
* @author Marcos
* @version 1.0
* @created 12-nov.-2024 15:52:43
*/
public class Persona {
public Persona() {
public Persona(String Ced, String Nom, String Ape, int Ed, char
Sex) {
[Link] = Ced;
[Link] = Nom;
[Link] = Ape;
[Link] = Ed;
[Link] = Sex;
}
Clase Fijo:
package Entidades;
import [Link];
/**
* @author Marcos
* @version 1.0
* @created 12-nov.-2024 15:52:51
*/
public class Fijo extends Persona {
public Fijo() {
super();
}
public Fijo(String Ced, String Nom, String Ape, int Ed, char Sex,
double SueF, double Com) {
super(Ced, Nom, Ape, Ed, Sex);
[Link] = SueF;
[Link] = Com;
}
Clase Jornalero:
package Entidades;
import [Link];
/**
* @author Marcos
* @version 1.0
* @created 12-nov.-2024 15:52:56
*/
public class Jornalero extends Persona {
public Jornalero() {
super();
}
public Jornalero(String Ced, String Nom, String Ape, int Ed, char
Sex, double HorT, double CostH) {
super(Ced, Nom, Ape, Ed, Sex);
[Link] = HorT;
[Link] = CostH;
}
Formulario:
package Formularios;
import [Link];
import [Link];
/**
*
* @author Marcos
*/
public class fmr_HerenciaPOO extends [Link] {
public fmr_HerenciaPOO() {
initComponents();
}
@SuppressWarnings("unchecked")
Fijo of;
Jornalero oj;
if([Link]().toString().equals("Jornalero")){
[Link]("Horas");
[Link]("Costo");
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
Codificación:
Clase libro:
package Entidades;
/**
* @author Marcos
* @version 1.0
* @created 23-nov.-2024 20:24:33
*/
public class Libro {
public Libro() {
}
Clase Biblioteca:
package Entidades;
import [Link];
import [Link];
/**
* @author Marcos
* @version 1.0
* @created 23-nov.-2024 20:24:16
*/
public class Biblioteca {
public Biblioteca() {
[Link] = new ArrayList<>();
}
}
Formulario:
package Formulario;
import [Link];
import [Link];
import [Link];
/**
*
* @author Marcos
*/
public class frm_Agregacion extends [Link] {
public frm_Agregacion() {
initComponents();
biblioteca = new Biblioteca();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void jButton1ActionPerformed([Link]
evt) {
// TODO add your handling code here:
String aut = [Link]();
String tit = [Link]();
Libro lib = new Libro(aut, tit);
[Link](lib);
[Link](this, "Libro agregado: " +
[Link]());
}
4.4. Composición
Composición es una forma fuerte de composición donde la vida de la clase
contenida debe coincidir con la vida de la clase contenedor. Los componentes
constituyen una parte del objeto compuesto. De esta forma, los componentes no
pueden ser compartidos por varios objetos compuestos. La supresión del objeto
compuesto conlleva la supresión de los componentes. [2]
Aporte:
Quiere decir, que la composición es una asociación fuerte donde una clase
contiene otra como parte de su estructura interna, si el objeto contenedor deja
de existir, los objetos contenidos también se destruyen.
Problema:
Creación de casas con n número de habitaciones
Diagrama:
Codificación:
Clase Casa:
package Entidades;
import [Link];
import [Link];
/**
* @author Marcos
* @version 1.0
* @created 23-nov.-2024 21:39:31
*/
public class Casa {
public Casa() {
[Link] = new ArrayList<>();
}
Clase Habitación:
package Entidades;
/**
* @author Marcos
* @version 1.0
* @created 23-nov.-2024 21:39:38
*/
public class Habitacion {
public Habitacion() {
}
}
Formulario:
package Formulario;
import [Link];
import [Link];
import [Link];
/**
*
* @author Marcos
*/
public class frm_Composicion extends [Link] {
public frm_Composicion() {
initComponents();
habitaciones = new Habitacion();
casa = new Casa();
}
@SuppressWarnings("unchecked")
[Link](dire);
[Link](numHab);
[Link](hab);
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Create and display the form */
[Link](new Runnable() {
public void run() {
new frm_Composicion().setVisible(true);
}
});
}
Codificación:
Clase OrdenDeTrabajo:
package Entidades;
import [Link];
import [Link];
/**
* @author Marcos
* @version 1.0
* @created 23-nov.-2024 23:40:07
*/
public class OrdenDeTrabajo {
public OrdenDeTrabajo() {
[Link] = new ArrayList<>();
}
public OrdenDeTrabajo(String Desc) {
[Link] = Desc;
[Link] = new ArrayList<>();
}
@Override
public String toString() {
return "Orden de trabajo: " + Descripcion + "\n" + "Total
servicios: " + [Link]() + "\n" + "Costo total: " +
calcularCostoTotal();
}
Clase Servicio:
package Entidades;
/**
* @author Marcos
* @version 1.0
* @created 23-nov.-2024 23:40:14
*/
public class Servicio {
public Servicio() {
}
@Override
public String toString() {
return "Descripcion: " + Descripcion + "\n" + "Costo: " +
Costo;
}
Formulario:
package Formulario;
import [Link];
import [Link];
import [Link];
import [Link];
/**
*
* @author Marcos
*/
public class frm_Dependencia extends [Link] {
public frm_Dependencia() {
initComponents();
orden = new OrdenDeTrabajo();
}
@SuppressWarnings("unchecked")
[Link]("");
[Link]("");
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
public Persona() {
}
public Persona(String Nom, String Ape, int Ed, char Sex, String
Est) {
[Link] = Nom;
[Link] = Ape;
[Link] = Ed;
[Link] = Sex;
[Link] = Est;
}
Clase paciente:
package Entidades;
/**
* @author Marcos
* @version 1.0
* @created 24-nov.-2024 17:22:33
*/
public class Paciente extends Persona {
public Paciente() {
super();
}
public Paciente(String Nom, String Ape, int Ed, char Sex, String
Est, int id) {
super(Nom, Ape, Ed, Sex, Est);
[Link] = id;
}
@Override
public String obtenerDatos() {
return [Link]() + "\nID: " + ID;
}
}
Clase Doctor:
package Entidades;
/**
* @author Marcos
* @version 1.0
* @created 24-nov.-2024 17:22:28
*/
public class Doctor extends Persona {
public Doctor() {
super();
}
public Doctor(String Nom, String Ape, int Ed, char Sex, String
Est, String Esp) {
super(Nom, Ape, Ed, Sex, Est);
[Link] = Esp;
}
@Override
public String obtenerDatos() {
return [Link]() + "\nEspecialidad: " +
Especialidad;
}
Clase Clínica:
package Entidades;
import [Link];
/**
* @author Marcos
* @version 1.0
* @created 24-nov.-2024 17:22:39
*/
public class Clinica {
public Clinica() {
pacientes = new ArrayList<>();
}
public Clinica(String Ubi, String NomCli, Paciente pac) {
[Link] = NomCli;
[Link] = new ArrayList<>();
[Link] = Ubi;
}
Clase Cita:
package Entidades;
import [Link];
/**
* @author Marcos
* @version 1.0
* @created 24-nov.-2024 17:22:54
*/
public class Cita {
Clase Consultorio:
package Entidades;
/**
* @author Marcos
* @version 1.0
* @created 24-nov.-2024 17:22:47
*/
public class Consultorio {
public Consultorio() {
}
Formulario:
package Formulario;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
/**
*
* @author Marcos
*/
public class frm_CasoPractico extends [Link] {
public frm_CasoPractico() {
initComponents();
pacientes = new Paciente();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation([Link].EXIT_ON_CLOSE);
[Link]([Link]);
[Link]("Sistema de creacion de citas");
[Link]([Link](null,
"Informacion del paciente",
[Link].DEFAULT_JUSTIFICATION,
[Link].DEFAULT_POSITION, new
[Link]("Segoe UI", 1, 12))); // NOI18N
[Link](true);
[Link]("Nombre:");
[Link]("Apellido:");
[Link]("Edad:");
[Link]("Sexo:");
[Link](new [Link]<>(new
String[] { "M", "F" }));
[Link]("Estado:");
[Link](new [Link]<>(new
String[] { "Casado", "Divorciado" }));
[Link]("ID paciente:");
[Link]([Link]
ADING)
.addGroup([Link]()
.addContainerGap()
.addGroup([Link]([Link]
[Link])
.addComponent(jLabel2)
.addComponent(jLabel3)
.addComponent(jLabel4,
[Link].PREFERRED_SIZE, 37,
[Link].PREFERRED_SIZE)
.addComponent(jLabel5,
[Link].PREFERRED_SIZE, 37,
[Link].PREFERRED_SIZE)
.addComponent(jLabel6)
.addComponent(jLabel13))
.addPreferredGap([Link],
[Link].DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup([Link]([Link]
[Link], false)
.addComponent(jTextField7,
[Link].DEFAULT_SIZE, 120, Short.MAX_VALUE)
.addGroup([Link]([Link]
[Link], false)
.addComponent(jTextField2,
[Link])
.addComponent(jTextField3,
[Link])
.addComponent(jComboBox1,
[Link], 0,
[Link].DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jComboBox2,
[Link], 0, 120, Short.MAX_VALUE)
.addComponent(jTextField1)))
.addContainerGap())
);
[Link](
[Link]([Link]
ADING)
.addGroup([Link]()
.addContainerGap()
.addGroup([Link]([Link]
[Link])
.addComponent(jTextField1,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE)
.addComponent(jLabel2))
.addPreferredGap([Link])
.addGroup([Link]([Link]
[Link])
.addComponent(jLabel3)
.addComponent(jTextField2,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE))
.addPreferredGap([Link])
.addGroup([Link]([Link]
[Link])
.addComponent(jLabel4)
.addComponent(jTextField3,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE))
.addPreferredGap([Link])
.addGroup([Link]([Link]
[Link])
.addComponent(jLabel5)
.addComponent(jComboBox1,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE))
.addPreferredGap([Link])
.addGroup([Link]([Link]
[Link])
.addComponent(jLabel6)
.addComponent(jComboBox2,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE))
.addPreferredGap([Link])
.addGroup([Link]([Link]
[Link])
.addComponent(jLabel13,
[Link].PREFERRED_SIZE, 16,
[Link].PREFERRED_SIZE)
.addComponent(jTextField7,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE))
.addContainerGap([Link].DEFAULT_SIZE,
Short.MAX_VALUE))
);
[Link]([Link](null,
"Informacion del doctor",
[Link].DEFAULT_JUSTIFICATION,
[Link].DEFAULT_POSITION, new
[Link]("Segoe UI", 1, 12))); // NOI18N
[Link]("Nombre:");
[Link]("Apellido:");
[Link]("Edad:");
[Link]("Sexo:");
[Link](new [Link]<>(new
String[] { "M", "F" }));
[Link]("Estado:");
[Link](new [Link]<>(new
String[] { "Casado", "Soltero" }));
[Link]("Especialidad:");
[Link](new [Link]<>(new
String[] { "Medicina General", "Pediatría", "Ginecología",
"Psiquiatría", "Cardiología", "Dermatología", "Oftalmología" }));
[Link]([Link]
ADING)
.addGroup([Link]()
.addContainerGap()
.addGroup([Link]([Link]
[Link])
.addComponent(jLabel7)
.addComponent(jLabel8)
.addComponent(jLabel9,
[Link].PREFERRED_SIZE, 37,
[Link].PREFERRED_SIZE)
.addComponent(jLabel10,
[Link].PREFERRED_SIZE, 43,
[Link].PREFERRED_SIZE)
.addComponent(jLabel11,
[Link].PREFERRED_SIZE, 43,
[Link].PREFERRED_SIZE)
.addComponent(jLabel12))
.addPreferredGap([Link],
21, Short.MAX_VALUE)
.addGroup([Link]([Link]
[Link], false)
.addComponent(jTextField4)
.addComponent(jTextField5)
.addComponent(jTextField6)
.addComponent(jComboBox3, 0,
[Link].DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jComboBox4, 0,
[Link].DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jComboBox5, 0,
[Link].DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
[Link](
[Link]([Link]
ADING)
.addGroup([Link]()
.addContainerGap()
.addGroup([Link]([Link]
[Link])
.addComponent(jLabel7)
.addComponent(jTextField4,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE))
.addPreferredGap([Link])
.addGroup([Link]([Link]
[Link])
.addComponent(jLabel8)
.addComponent(jTextField5,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE))
.addPreferredGap([Link])
.addGroup([Link]([Link]
[Link])
.addComponent(jLabel9)
.addComponent(jTextField6,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE))
.addPreferredGap([Link])
.addGroup([Link]([Link]
[Link])
.addComponent(jLabel10)
.addComponent(jComboBox3,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE))
.addPreferredGap([Link])
.addGroup([Link]([Link]
[Link])
.addComponent(jLabel11)
.addComponent(jComboBox4,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE))
.addPreferredGap([Link])
.addGroup([Link]([Link]
[Link])
.addComponent(jLabel12)
.addComponent(jComboBox5,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE))
.addContainerGap(11, Short.MAX_VALUE))
);
[Link]([Link](null,
"Detalles de la cita",
[Link].DEFAULT_JUSTIFICATION,
[Link].DEFAULT_POSITION, new
[Link]("Segoe UI", 1, 12))); // NOI18N
[Link]("Direccion:");
[Link]("Consultorio:");
[Link]("Fecha:");
[Link]("Descripcion");
[Link]([Link]
ADING)
.addGroup([Link]()
.addContainerGap()
.addGroup([Link]([Link]
[Link])
.addGroup([Link]()
.addComponent(jLabel14)
.addPreferredGap([Link],
[Link].DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jTextField8,
[Link].PREFERRED_SIZE, 120,
[Link].PREFERRED_SIZE))
.addGroup([Link]()
.addComponent(jLabel17)
.addPreferredGap([Link],
7, Short.MAX_VALUE)
.addComponent(jTextField10,
[Link].PREFERRED_SIZE, 120,
[Link].PREFERRED_SIZE))
.addGroup([Link],
[Link]()
.addGroup([Link]([Link]
[Link])
.addComponent(jLabel15)
.addComponent(jLabel16))
.addPreferredGap([Link],
[Link].DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup([Link]([Link]
[Link], false)
.addComponent(jTextField9)
.addComponent(jDateChooser1,
[Link].DEFAULT_SIZE, 120, Short.MAX_VALUE))))
.addContainerGap())
);
[Link](
[Link]([Link]
ADING)
.addGroup([Link]()
.addContainerGap()
.addGroup([Link]([Link]
[Link])
.addComponent(jLabel14)
.addComponent(jTextField8,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE))
.addPreferredGap([Link])
.addGroup([Link]([Link]
[Link])
.addComponent(jTextField9,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE)
.addComponent(jLabel15))
.addPreferredGap([Link])
.addGroup([Link]([Link]
[Link])
.addComponent(jDateChooser1,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE)
.addComponent(jLabel16))
.addPreferredGap([Link])
.addGroup([Link]([Link]
[Link])
.addComponent(jLabel17)
.addComponent(jTextField10,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE))
.addContainerGap([Link].DEFAULT_SIZE,
Short.MAX_VALUE))
);
[Link]("Ingresar");
[Link](new [Link]()
{
public void actionPerformed([Link]
evt) {
jButton1ActionPerformed(evt);
}
});
[Link]("Imprimir");
[Link](new [Link]()
{
public void actionPerformed([Link]
evt) {
jButton2ActionPerformed(evt);
}
});
[Link](new
[Link](getClass().getResource("/Imagenes/[Link]"
))); // NOI18N
[Link]([Link])
.addGroup([Link]()
.addContainerGap()
.addGroup([Link]([Link]
.LEADING)
.addComponent(jLabel1,
[Link].DEFAULT_SIZE,
[Link].DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup([Link],
[Link]()
.addGroup([Link]([Link]
.TRAILING)
.addComponent(jPanel3,
[Link],
[Link].DEFAULT_SIZE,
[Link].DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel1,
[Link].DEFAULT_SIZE,
[Link].DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap([Link])
.addGroup([Link]([Link]
.LEADING, false)
.addGroup([Link]()
.addComponent(jButton2,
[Link].PREFERRED_SIZE, 88,
[Link].PREFERRED_SIZE)
.addPreferredGap([Link],
[Link].DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton1,
[Link].PREFERRED_SIZE, 88,
[Link].PREFERRED_SIZE))
.addComponent(jPanel2,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE)
.addGroup([Link]()
.addGap(69, 69, 69)
.addComponent(jLabel18)))))
.addContainerGap())
);
[Link](
[Link]([Link])
.addGroup([Link]()
.addContainerGap()
.addComponent(jLabel1)
.addGap(18, 18, 18)
.addGroup([Link]([Link]
.LEADING, false)
.addComponent(jPanel2,
[Link].DEFAULT_SIZE,
[Link].DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel1,
[Link].DEFAULT_SIZE,
[Link].DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap([Link])
.addGroup([Link]([Link]
.LEADING)
.addComponent(jPanel3,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE)
.addGroup([Link]()
.addComponent(jLabel18,
[Link].PREFERRED_SIZE, 112,
[Link].PREFERRED_SIZE)
.addPreferredGap([Link])
.addGroup([Link]([Link]
.BASELINE)
.addComponent(jButton2)
.addComponent(jButton1))))
.addContainerGap([Link].DEFAULT_SIZE,
Short.MAX_VALUE))
);
pack();
setLocationRelativeTo(null);
}// </editor-fold>
[Link](frm_CasoPractico.[Link]()).l
og([Link], null, ex);
} catch (InstantiationException ex) {
[Link](frm_CasoPractico.[Link]()).l
og([Link], null, ex);
} catch (IllegalAccessException ex) {
[Link](frm_CasoPractico.[Link]()).l
og([Link], null, ex);
} catch ([Link] ex) {
[Link](frm_CasoPractico.[Link]()).l
og([Link], null, ex);
}
//</editor-fold>
[1] V. Paradigm, «Visual Paradigm,» Visual Paradigm, 24 Noviembre 2023. [En línea].
Available: [Link]
uml-class-diagrams/. [Último acceso: 24 Noviembre 2024].
[2] SEAS, «SEAS,» SEAS Estudios Superiores Abiertos, n.d. n.d. n.d.. [En línea]. Available:
[Link]
clases-uml/. [Último acceso: 24 Noviembre 2024].
[3] Guru99, «Guru99,» Guru99, n.d. n.d. n.d.. [En línea]. Available:
[Link] [Último acceso: 22
Noviembre 2024].