0% encontró este documento útil (0 votos)
30 vistas45 páginas

TC9 Grupo 5

Este documento presenta un ejemplo de herencia en Java mediante la creación de una clase padre "Persona" y varias clases hijas que heredan sus atributos y métodos. Se definen clases hijas "Empleado" y "Cliente" que heredan de "Persona". También se definen clases "DocenteC/N" y "EstudianteB/R" con una jerarquía más profunda, donde "DocenteC/N" y "EstudianteB/R" heredan de una clase intermedia "Persona". Finalmente, se programa

Cargado por

Javier Pucurimay
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descargue como DOCX, PDF, TXT o lea en línea desde Scribd
Descargar como docx, pdf o txt
0% encontró este documento útil (0 votos)
30 vistas45 páginas

TC9 Grupo 5

Este documento presenta un ejemplo de herencia en Java mediante la creación de una clase padre "Persona" y varias clases hijas que heredan sus atributos y métodos. Se definen clases hijas "Empleado" y "Cliente" que heredan de "Persona". También se definen clases "DocenteC/N" y "EstudianteB/R" con una jerarquía más profunda, donde "DocenteC/N" y "EstudianteB/R" heredan de una clase intermedia "Persona". Finalmente, se programa

Cargado por

Javier Pucurimay
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descargue como DOCX, PDF, TXT o lea en línea desde Scribd
Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1/ 45

TRABAJO DE CAMPO 9

ENUNCIADO:
Realizar la siguiente actividad:

RUBRICA:

Caso Excelente Bueno Deficiente

Solución de práctica Solución de práctica No presenta nada


(diagrama de clases (diagrama de clases
mínimo 4 + proyectos
mínimo 3 + proyectos en
1
en Eclipse)
Eclipse)

20 puntos 15 puntos 0 puntos

CÓDIGOS DE INTEGRANTES PARTICIPACIÓN


ESTUDIANTE
N00288017 NIÑO DE GUZMAN BERMEJO, Participó
GABRIEL SAMUEL
N00309169 NIZAMA ZAPATA, WALTER Participó
ANGEL
N00212299 OVIEDO LLANO, RENATO Participó
PAOLO
N00274344 PUCURIMAY CONDORI, JAVIER Participó
ALEJANDRO
N00199491 SALAS ARRIVASPLATA, Participó
MARCELO ANTONIO
Herencia ejercicio 1: Cliente-Empleados, heredan atributos de la clase Persona.

-Creamos al padre, que será aquel que contendrá todo lo que los hijos van a contener por
defecto.

package padre;

public class Persona {


protected int cod, edad;
protected String nom, ape;
//
public Persona(int cod, int edad, String nom, String ape) {
this.cod = cod;
this.edad = edad;
this.nom = nom;
this.ape = ape;
}
public String CorreoElectronico(){
return cod+"_"+edad+"_"+nom+"_"+ape+"@123.com";
}
public String Datos_Persona(){
return "codigo: "+ cod+"\nEdad: "+edad+
"\nNombre: "+nom+"\nApellido: "+ape+"\nCorreo:
"+CorreoElectronico();

-Creamos a los hijos, en este caso, serán empleado y cliente, ambos con los mismos atributos
heredados del padre, solo que con algunas distinciones.

package hijos;

import padre.Persona;

public class Empleado extends Persona{


protected double sueldo;
protected String Cargo;
//
public Empleado(int cod, int edad, String nom, String ape, double
sueldo, String cargo) {
super(cod, edad, nom, ape);
this.sueldo = sueldo;
Cargo = cargo;
}
//
public String Datos_Empleado(){
return Datos_Persona() + "\nSueldo: " + sueldo + "\nCargo: " +
Cargo;
}

package hijos;

import padre.Persona;
public class Cliente extends Persona{
protected int telefono, DNI;
//

public Cliente(int cod, int edad, String nom, String ape, int
telefono, int dNI) {
super(cod, edad, nom, ape);
this.telefono = telefono;
DNI = dNI;
}
public String Datos_Cliente(){
return Datos_Persona() + "\nTeléfono: " + telefono + "\nDNI: " +
DNI ;
}

}
-Creamos a la ventana, en la cual procederemos a programar los botones, en este caso, serán
procesar y limpiar, en donde en el botón procesar llamaremos a todos los atributos y serán
convertidos, y en el botón limpiar, quitaremos cualquier texto de las cajas de manera
automática, adicionalmente se crean métodos y listado.

protected void do_btnLimpiar_actionPerformed(ActionEvent arg0) {

txtcodemp.setText(" ");
txtedademp.setText(" ");
txtnomemp.setText(" ");
txtapellidoemp.setText(" ");
txtsueldoemp.setText(" ");
txtcargoemp.setText(" ");
//
txtcodcli.setText(" ");
txtedadcli.setText(" ");
txtnomcli.setText(" ");
txtapellidocli.setText(" ");
txttelefono.setText(" ");
txtDNI.setText(" ");

txtS.setText(" ");
txtcodemp.grabFocus();
}
protected void do_btnProcesar_actionPerformed(ActionEvent arg0) {
//EMPLEADO
int codEmp = Integer.parseInt(txtcodemp.getText());
int edadEmp = Integer.parseInt(txtedademp.getText());
String nomEmp = txtnomemp.getText();
String ApeEmp = txtapellidoemp.getText();
int sueldoEmp = Integer.parseInt(txtsueldoemp.getText());
String CargoEmp = txtcargoemp.getText();
//CLIENTE
int codCli = Integer.parseInt(txtcodcli.getText());
int edadCli = Integer.parseInt(txtedadcli.getText());
String nomCli = txtnomcli.getText();
String ApeCli = txtapellidocli.getText();
int Telefono = Integer.parseInt(txttelefono.getText());
int DNI = Integer.parseInt(txtDNI.getText());
Empleado e = new Empleado(codEmp, edadEmp, nomEmp, ApeEmp,
sueldoEmp, CargoEmp);
Cliente c = new Cliente(codCli, edadCli, nomCli, ApeCli,
Telefono, DNI);
Listado(e, c);

}
void Imprimir(String S){
txtS.append(S+ "\n");
}
void Imprimir(){
txtS.append("==========================================\n");
}
void Listado(Empleado e, Cliente c){
Imprimir("EMPLEADO");
Imprimir(e.Datos_Empleado());
Imprimir();
Imprimir("CLIENTE");
Imprimir(c.Datos_Cliente());
Imprimir();

}
Herencia ejercicio 1: Diagrama de clases

Ambos apuntan a la persona, que es el padre, donde se ve que de una persona pueden salir
muchos empleados, y clientes.

Herencia ejercicio 1: DocenteC/N-EstudianteB/R, heredan atributos de la clase Persona.

Se ha desarrollado la clase padre, la cual contendrá de forma predeterminada todos los


elementos que los descendientes incorporarán

package padre;

public class Persona {


protected int cod;
protected String nom;
public Persona(int cod, String nom) {
super();
this.cod = cod;
this.nom = nom;
}
public String DatosP(){
return "\nCódigo: "+cod+"\nNombre: "+nom;
}

El proceso de instanciación de las clases hijas que también son padres. En este contexto, las
mencionadas clases corresponden al docente y al estudiante. Ambas clases heredan de la clase
padre exactamente los mismos atributos, si bien incorporan distinciones específicas

package hijos_padre;
import padre.Persona;

public class Docente extends Persona{


protected String profesión;

public Docente(int cod, String nom, String profesión) {


super(cod, nom);
this.profesión = profesión;
}
public String DatosD(){
return DatosP()+"\nProfesión: "+profesión;
}
}

---------------------------------------------------------------------------------------------------------------------

package hijos_padre;

import padre.Persona;

public class Estudiante extends Persona{


protected double n1,n2,n3;

public Estudiante(int cod, String nom, double n1, double n2, double n3) {
super(cod, nom);
this.n1 = n1;
this.n2 = n2;
this.n3 = n3;
}
public double Promedio(){
return (n1+n2+n3)/3;
}
public String DatosE(){
return DatosP()+"\nNota 1: "+n1+"\nNota 2: "+n2+"\nNota 3: "+n3+"El
promedio es: "+Promedio();
}
}

El proceso de instanciación de las clases hijas ha sido llevado a cabo. En este contexto, las
mencionadas clases corresponden al docente contratado/nombrado y al estudiante
becado/regular. Ambas clases heredan de la clase hijos_padre exactamente los mismos
atributos, si bien incorporan distinciones específicas

package hijos;

import hijos_padre.Docente;

public class DContratado extends Docente{


private double ht;
private double th;

public DContratado(int cod, String nom, String profesión, double ht, double
th) {
super(cod, nom, profesión);
this.ht = ht;
this.th = th;
}
public double Sueldo(){
return th*th;
}
public String DatosDC(){
return DatosD()+"\nEl sueldo es: "+Sueldo();
}
}

---------------------------------------------------------------------------------------------------------------------

package hijos;

import hijos_padre.Docente;

public class DNombrado extends Docente{


private double sueldo;

public DNombrado(int cod, String nom, String profesión, double sueldo) {


super(cod, nom, profesión);
this.sueldo = sueldo;
}
public String DatosDN(){
return DatosD()+"\nEl sueldo es: "+sueldo;
}
}

---------------------------------------------------------------------------------------------------------------------

package hijos;

import hijos_padre.Estudiante;

public class EBecado extends Estudiante{


private String sustento;

public EBecado(int cod, String nom, double n1, double n2, double n3, String
sustento) {
super(cod, nom, n1, n2, n3);
this.sustento = sustento;
}
public String DatosEB(){
return DatosE()+"\nEl sustento es: "+sustento;
}
}

---------------------------------------------------------------------------------------------------------------------

package hijos;

import hijos_padre.Estudiante;

public class ERuglar extends Estudiante {


private double pensión;
public ERuglar(int cod, String nom, double n1, double n2, double n3, double
pensión) {
super(cod, nom, n1, n2, n3);
this.pensión = pensión;
}
public String DatosER(){
return DatosE()+"\nLa pensión es: "+pensión;
}
}

Se ha creado la ventana en la que se procederá a programar los botones. En este caso, se


incluyen los botones 'Procesar' y 'Limpiar'. Cuando se selecciona el botón 'Procesar', se llaman
a los métodos para obtener y convertir todos los atributos, mientras que el botón 'Limpiar'
automáticamente elimina cualquier texto presente en las cajas. Adicionalmente, se han
implementado métodos adicionales y se ha generado una lista para uso posterior.

package gui;

import java.awt.BorderLayout;

import java.awt.EventQueue;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.border.EmptyBorder;

import hijos.DContratado;

import hijos.DNombrado;

import hijos.EBecado;

import hijos.ERuglar;

import javax.swing.JLabel;

import javax.swing.JTextField;

import javax.swing.JComboBox;
import javax.swing.DefaultComboBoxModel;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;

import javax.swing.JButton;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

public class V222 extends JFrame implements ActionListener {

private JPanel contentPane;

private JLabel lblNewLabel;

private JLabel lblCódigo;

private JLabel lblNombre;

private JLabel lblNota1;

private JLabel lblNota2;

private JLabel lblNota3;

private JTextField txtcodest;

private JTextField txtnomest;

private JTextField txtn1est;

private JTextField txtn2est;

private JTextField txtn3est;

private JLabel lblNewLabel_1;

private JComboBox cboTipoE;

private JLabel lblPensión;

private JLabel lblSustento;

private JTextField txtpensiónest;

private JTextField txtsustentoest;


private JButton btnProcesar;

private JScrollPane scrollPane;

private JTextArea txtS;

private JLabel lblDocente;

private JLabel label_1;

private JTextField txtcoddoc;

private JLabel label_2;

private JTextField txtnomdoc;

private JTextField txtprofedoc;

private JLabel lblProfesin;

private JLabel lblSueldo;

private JTextField txtsueldo;

private JLabel lblTipoDeDocente;

private JComboBox cboTipoD;

private JTextField txtTH;

private JTextField txtHT;

private JLabel lblHt;

private JLabel lblTh;

private JButton btnLimpiar;

/**

* Launch the application.

*/

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {

public void run() {

try {
V222 frame = new V222();

frame.setVisible(true);

} catch (Exception e) {

e.printStackTrace();

});

/**

* Create the frame.

*/

public V222() {

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setBounds(100, 100, 805, 727);

contentPane = new JPanel();

contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

setContentPane(contentPane);

contentPane.setLayout(null);

lblNewLabel = new JLabel("ESTUDIANTE");

lblNewLabel.setBounds(49, 45, 84, 16);

contentPane.add(lblNewLabel);

lblCódigo = new JLabel("C\u00F3digo");

lblCódigo.setBounds(72, 77, 84, 16);


contentPane.add(lblCódigo);

lblNombre = new JLabel("Nombre");

lblNombre.setBounds(72, 106, 84, 16);

contentPane.add(lblNombre);

lblNota1 = new JLabel("Nota 1");

lblNota1.setBounds(72, 135, 84, 16);

contentPane.add(lblNota1);

lblNota2 = new JLabel("Nota 2");

lblNota2.setBounds(72, 164, 84, 16);

contentPane.add(lblNota2);

lblNota3 = new JLabel("Nota 3");

lblNota3.setBounds(72, 193, 84, 16);

contentPane.add(lblNota3);

txtcodest = new JTextField();

txtcodest.setBounds(122, 74, 116, 22);

contentPane.add(txtcodest);

txtcodest.setColumns(10);
}

txtnomest = new JTextField();

txtnomest.setColumns(10);

txtnomest.setBounds(122, 106, 116, 22);

contentPane.add(txtnomest);

txtn1est = new JTextField();

txtn1est.setColumns(10);

txtn1est.setBounds(122, 135, 116, 22);

contentPane.add(txtn1est);

txtn2est = new JTextField();

txtn2est.setColumns(10);

txtn2est.setBounds(122, 164, 116, 22);

contentPane.add(txtn2est);

txtn3est = new JTextField();

txtn3est.setColumns(10);

txtn3est.setBounds(122, 190, 116, 22);

contentPane.add(txtn3est);

lblNewLabel_1 = new JLabel("Tipo de Estudiante");


lblNewLabel_1.setBounds(276, 45, 123, 16);

contentPane.add(lblNewLabel_1);

cboTipoE = new JComboBox();

cboTipoE.addActionListener(this);

cboTipoE.setModel(new DefaultComboBoxModel(new String[]


{"Regular", "Becado"}));

cboTipoE.setBounds(398, 42, 183, 22);

contentPane.add(cboTipoE);

lblPensión = new JLabel("Pensi\u00F3n");

lblPensión.setEnabled(false);

lblPensión.setBounds(408, 74, 56, 16);

contentPane.add(lblPensión);

lblSustento = new JLabel("Sustento");

lblSustento.setEnabled(false);

lblSustento.setBounds(408, 103, 56, 16);

contentPane.add(lblSustento);

txtpensiónest = new JTextField();

txtpensiónest.setEnabled(false);

txtpensiónest.setBounds(502, 71, 116, 22);

contentPane.add(txtpensiónest);
txtpensiónest.setColumns(10);

txtsustentoest = new JTextField();

txtsustentoest.setEnabled(false);

txtsustentoest.setColumns(10);

txtsustentoest.setBounds(502, 100, 116, 22);

contentPane.add(txtsustentoest);

btnProcesar = new JButton("Procesar");

btnProcesar.addActionListener(this);

btnProcesar.setBounds(654, 41, 97, 25);

contentPane.add(btnProcesar);

scrollPane = new JScrollPane();

scrollPane.setBounds(312, 179, 408, 432);

contentPane.add(scrollPane);

txtS = new JTextArea();

scrollPane.setViewportView(txtS);

lblDocente = new JLabel("DOCENTE");

lblDocente.setBounds(49, 332, 84, 16);


contentPane.add(lblDocente);

label_1 = new JLabel("C\u00F3digo");

label_1.setBounds(49, 367, 84, 16);

contentPane.add(label_1);

txtcoddoc = new JTextField();

txtcoddoc.setColumns(10);

txtcoddoc.setBounds(122, 361, 116, 22);

contentPane.add(txtcoddoc);

label_2 = new JLabel("Nombre");

label_2.setBounds(49, 396, 84, 16);

contentPane.add(label_2);

txtnomdoc = new JTextField();

txtnomdoc.setColumns(10);

txtnomdoc.setBounds(122, 393, 116, 22);

contentPane.add(txtnomdoc);

txtprofedoc = new JTextField();

txtprofedoc.setColumns(10);
txtprofedoc.setBounds(122, 422, 116, 22);

contentPane.add(txtprofedoc);

lblProfesin = new JLabel("Profesi\u00F3n");

lblProfesin.setBounds(49, 425, 84, 16);

contentPane.add(lblProfesin);

lblSueldo = new JLabel("Sueldo");

lblSueldo.setEnabled(false);

lblSueldo.setBounds(72, 635, 84, 16);

contentPane.add(lblSueldo);

txtsueldo = new JTextField();

txtsueldo.setEnabled(false);

txtsueldo.setColumns(10);

txtsueldo.setBounds(139, 632, 116, 22);

contentPane.add(txtsueldo);

lblTipoDeDocente = new JLabel("Tipo de Docente");

lblTipoDeDocente.setBounds(49, 504, 123, 16);

contentPane.add(lblTipoDeDocente);

{
cboTipoD = new JComboBox();

cboTipoD.addActionListener(this);

cboTipoD.setModel(new DefaultComboBoxModel(new String[]


{"Contratado", "Nombrado"}));

cboTipoD.setBounds(72, 533, 183, 22);

contentPane.add(cboTipoD);

txtTH = new JTextField();

txtTH.setEnabled(false);

txtTH.setColumns(10);

txtTH.setBounds(140, 568, 116, 22);

contentPane.add(txtTH);

txtHT = new JTextField();

txtHT.setEnabled(false);

txtHT.setColumns(10);

txtHT.setBounds(140, 603, 116, 22);

contentPane.add(txtHT);

lblHt = new JLabel("HT");

lblHt.setEnabled(false);

lblHt.setBounds(72, 606, 56, 16);

contentPane.add(lblHt);

{
lblTh = new JLabel("TH");

lblTh.setEnabled(false);

lblTh.setBounds(72, 568, 56, 16);

contentPane.add(lblTh);

btnLimpiar = new JButton("Limpiar");

btnLimpiar.addActionListener(this);

btnLimpiar.setBounds(654, 102, 97, 25);

contentPane.add(btnLimpiar);

public void actionPerformed(ActionEvent e) {

if (e.getSource() == btnLimpiar) {

do_btnLimpiar_actionPerformed(e);

if (e.getSource() == cboTipoD) {

do_cboTipoD_actionPerformed(e);

if (e.getSource() == btnProcesar) {

do_btnProcesar_actionPerformed(e);

if (e.getSource() == cboTipoE) {

do_cboTipoE_actionPerformed(e);

protected void do_cboTipoE_actionPerformed(ActionEvent e) {


if(TipoE()==0){

lblPensión.setEnabled(true);

txtpensiónest.setEnabled(true);

else {

lblSustento.setEnabled(true);

txtsustentoest.setEnabled(true);

int TipoE(){

return cboTipoE.getSelectedIndex();//retorna poasición(0,1);

protected void do_btnProcesar_actionPerformed(ActionEvent e) {

int codE=Integer.parseInt(txtcodest.getText());

String nomE=txtnomest.getText();

double n1=Double.parseDouble(txtn1est.getText());

double n2=Double.parseDouble(txtn2est.getText());

double n3=Double.parseDouble(txtn3est.getText());

if(TipoE()==0){

double pensión=Double.parseDouble(txtpensiónest.getText());

ERuglar er=new ERuglar(codE, nomE, n1, n2, n3, pensión);

ListadoR(er);

else{

String sustento=txtsustentoest.getText();

EBecado eb=new EBecado(codE, nomE, n1, n2, n3, sustento);


ListadoB(eb);

int codD=Integer.parseInt(txtcoddoc.getText());

String nomD=txtnomdoc.getText();

String profesiónD=txtprofedoc.getText();

if(TipoD()==0){

double ht=Double.parseDouble(txtHT.getText());

double th=Double.parseDouble(txtTH.getText());

DContratado dc= new DContratado(codD, nomD, profesiónD, ht, th);

ListadoC(dc);

} else{

double sueldo=Double.parseDouble(txtsueldo.getText());

DNombrado dn=new DNombrado(codD, nomD, profesiónD, sueldo);

ListadoN(dn);

void Imprimir(String s){

txtS.append(s+"\n");

void Imprimir(){

txtS.append("--------------------\n");

void ListadoR (ERuglar r){

Imprimir("Estudiante Regular");

Imprimir(r.DatosER());

Imprimir();
}

void ListadoB (EBecado b){

Imprimir("Estudiante Becado");

Imprimir(b.DatosEB());

Imprimir();

void ListadoN (DNombrado n){

Imprimir("Docente Nombrado");

Imprimir(n.DatosDN());

void ListadoC (DContratado c){

Imprimir("Docente Contratado");

Imprimir(c.DatosDC());

protected void do_cboTipoD_actionPerformed(ActionEvent e) {

if(TipoD()==0){

lblTh.setEnabled(true);

txtTH.setEnabled(true);

lblHt.setEnabled(true);

txtHT.setEnabled(true);

else {

lblSueldo.setEnabled(true);

txtsueldo.setEnabled(true);

}
int TipoD(){

return cboTipoD.getSelectedIndex();//retorna poasición(0,1);

protected void do_btnLimpiar_actionPerformed(ActionEvent e) {

txtcodest.setText("");

txtnomest.setText("");

txtn1est.setText("");

txtn2est.setText("");

txtn3est.setText("");

txtcoddoc.setText("");

txtnomdoc.setText("");

txtprofedoc.setText("");

txtcodest.grabFocus();

}
EL PROGRRAMA EXPLICARA LA AGREGACION ENTRE EL
AUTO Y LA BICICLETA CON LOS CLIENTES, PARA LO
CUAL SE NECESITARAN 3 CLASES CON ATRIBUTOS
ESPECIFICOS COMO COLOR,MODELO,CÓDIGO,APELLIDOS
NOMBRES,ETC.

package ejercicios;

public class Auto {


String modelo;
String color;
String placa;
public Auto(String modelo, String color, String placa) {
this.modelo = modelo;
this.color = color;
this.placa = placa;
}
public String getModelo() {
return modelo;
}
public void setModelo(String modelo) {
this.modelo = modelo;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getPlaca() {
return placa;
}
public void setPlaca(String placa) {
this.placa = placa;
}

package ejercicios;

public class Bicicleta {

String color;
String modelo;
public Bicicleta(String color, String modelo) {

this.color = color;
this.modelo = modelo;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getModelo() {
return modelo;
}
public void setModelo(String modelo) {
this.modelo = modelo;
}

package ejercicios;

public class Cliente {


int cod;
String nom,ape;
double edad;
public Cliente(int cod, String nom, String ape, double edad) {
this.cod = cod;
this.nom = nom;
this.ape = ape;
this.edad = edad;
}
public int getCod() {
return cod;
}
public void setCod(int cod) {
this.cod = cod;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public String getApe() {
return ape;
}
public void setApe(String ape) {
this.ape = ape;
}
public double getEdad() {
return edad;
}
public void setEdad(double edad) {
this.edad = edad;
}

}
Para brindar de manera rápida los
siguientes mensajes.
Al hacer referencia a las clases
Auto y Bicicleta dentro de la clase
Empleado se puede acceder a los
atributos de la bicicleta y del
auto desde adentro de la clase
Empleado.

package ejercicios;

import java.awt.BorderLayout;

import java.awt.EventQueue;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.border.EmptyBorder;

import javax.swing.JTextField;

import javax.swing.JLabel;

import javax.swing.JButton;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;
public class Agregacion extends JFrame implements ActionListener {

private JPanel contentPane;

private JTextField txtNombre;

private JLabel lblNombre;

private JTextField textField;

private JLabel lblCodigo;

private JTextField textField_1;

private JTextField textField_2;

private JTextField textField_3;

private JLabel lblNewLabel;

private JLabel lblNewLabel_1;

private JLabel lblNewLabel_2;

private JButton btnProcesar;

private JScrollPane scrollPane;

private JTextArea txtS;

/**

* Launch the application.

*/

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {

public void run() {

try {

Agregacion frame = new Agregacion();

frame.setVisible(true);

} catch (Exception e) {

e.printStackTrace();

}
}

});

/**

* Create the frame.

*/

public Agregacion() {

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setBounds(100, 100, 515, 520);

contentPane = new JPanel();

contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

setContentPane(contentPane);

contentPane.setLayout(null);

txtNombre = new JTextField();

txtNombre.setBounds(12, 40, 116, 22);

contentPane.add(txtNombre);

txtNombre.setColumns(10);

lblNombre = new JLabel("Nombre");

lblNombre.setBounds(151, 43, 56, 16);

contentPane.add(lblNombre);

textField = new JTextField();

textField.setBounds(12, 88, 116, 22);

contentPane.add(textField);

textField.setColumns(10);
}

lblCodigo = new JLabel("Codigo");

lblCodigo.setBounds(162, 91, 56, 16);

contentPane.add(lblCodigo);

textField_1 = new JTextField();

textField_1.setBounds(269, 40, 116, 22);

contentPane.add(textField_1);

textField_1.setColumns(10);

textField_2 = new JTextField();

textField_2.setBounds(269, 88, 116, 22);

contentPane.add(textField_2);

textField_2.setColumns(10);

textField_3 = new JTextField();

textField_3.setBounds(269, 139, 116, 22);

contentPane.add(textField_3);

textField_3.setColumns(10);

lblNewLabel = new JLabel("Modelo");

lblNewLabel.setBounds(408, 43, 56, 16);

contentPane.add(lblNewLabel);

{
lblNewLabel_1 = new JLabel("Color");

lblNewLabel_1.setBounds(408, 91, 56, 16);

contentPane.add(lblNewLabel_1);

lblNewLabel_2 = new JLabel("Placa");

lblNewLabel_2.setBounds(408, 142, 56, 16);

contentPane.add(lblNewLabel_2);

btnProcesar = new JButton("PROCESAR");

btnProcesar.addActionListener(this);

btnProcesar.setBounds(12, 198, 97, 25);

contentPane.add(btnProcesar);

scrollPane = new JScrollPane();

scrollPane.setBounds(25, 255, 460, 218);

contentPane.add(scrollPane);

txtS = new JTextArea();

scrollPane.setViewportView(txtS);

public void actionPerformed(ActionEvent arg0) {

if (arg0.getSource() == btnProcesar) {

do_btnProcesar_actionPerformed(arg0);

}
protected void do_btnProcesar_actionPerformed(ActionEvent arg0) {

Auto e = new Auto("CERATO","ROJO", "ASD-145");

Bicicleta a = new Bicicleta("ROJO", "BMX");

Cliente x = new Cliente(123, "Jorge", "Mendez", 20);

listado();

System.out.println("----------------- detalles del


empleado-----------");

System.out.println("código del empleado:"+x.cod);

System.out.println("nombre del empleado:"+x.nom);

System.out.println("apellido nombre del empleado:"+x.ape);

System.out.println("edad del empleado:"+x.edad);

System.out.println("----------------- detalles del


auto-----------");

System.out.println("modelo del auto :"+e.modelo);

System.out.println("color del auto :"+e.color);

System.out.println("placa del auto :"+e.placa);

System.out.println("----------------- detalles de la
bicicleta-----------");

System.out.println("color de la bicicleta :"+a.color);

System.out.println("modelo de la bicicleta:"+a.modelo);
DIAGRAMA DE CLASE
Ejercicio 3:Agregación y composición:

Creamos al dueño, En este constructor, se establece el valor del atributo "coddueño" en 0 y el


atributo "nombredueño" en null.

package comp;

public class Dueño {


private int coddueño;
private String nombredueño;
public Dueño(){
coddueño=0;
nombredueño=null;
}
public Dueño(int coddueño, String nombredueño) {
this.coddueño = coddueño;
this.nombredueño = nombredueño;
}
public int getCoddueño() {
return coddueño;
}
public void setCoddueño(int coddueño) {
this.coddueño = coddueño;
}
public String getNombredueño() {
return nombredueño;
}
public void setNombredueño(String nombredueño) {
this.nombredueño = nombredueño;
}

Creamos a la mascota: , En este constructor, se establece el valor del atributo "codmascota" en


0 y el atributo "nombremascota" en null.

package comp;

public class Mascota {


private int codmascota;
private String nombremascota;
public Mascota(){
codmascota=0;
nombremascota=null;
}
public Mascota(int codmascota, String nombremascota) {
this.codmascota = codmascota;
this.nombremascota = nombremascota;
}
public int getCodmascota() {
return codmascota;
}
public void setCodmascota(int codmascota) {
this.codmascota = codmascota;
}
public String getNombremascota() {
return nombremascota;
}
public void setNombremascota(String nombremascota) {
this.nombremascota = nombremascota;
}

Creamos la clase veterinaria: en su constructor se establecen los valores


“codveterinaria” en 0, nombreveterinariaen en null y mascota=new Mascota(); y en este
constructor no le establecemos ningún valor al atributo dueño.

package comp;

public class Veterinaria {


private int codveterinaria;
private String nombreveterinaria;
private Dueño dueño;
private Mascota mascota;

public Veterinaria(){
codveterinaria=0;
nombreveterinaria=null;
mascota=new Mascota();
}

public Veterinaria(int codveterinaria, String nombreveterinaria, Mascota


mascota) {
super();
this.codveterinaria = codveterinaria;
this.nombreveterinaria = nombreveterinaria;
this.mascota = mascota;
}

public int getCodveterinaria() {


return codveterinaria;
}

public void setCodveterinaria(int codveterinaria) {


this.codveterinaria = codveterinaria;
}

public String getNombreveterinaria() {


return nombreveterinaria;
}

public void setNombreveterinaria(String nombreveterinaria) {


this.nombreveterinaria = nombreveterinaria;
}

public Dueño getDueño() {


return dueño;
}

public void setDueño(Dueño dueño) {


this.dueño = dueño;
}

public Mascota getMascota() {


return mascota;
}

public void setMascota(Mascota mascota) {


this.mascota = mascota;
}

Por ultimo creamos la interfaz gráfica o ventana, donde vamos a diseñar la funcionalidad de
dos botones: "Procesar" y "Limpiar". Cuando el botón "Procesar" sea presionado, se tomarán
todos los atributos y se realizará una conversión necesaria. En cambio, al hacer clic en el botón
"Limpiar", se eliminará automáticamente cualquier texto presente en las cajas de entrada.
Además, se implementarán métodos adicionales y se establecerá una lista de funcionalidades
en la aplicación.

protected void do_btnLimpiar_actionPerformed(ActionEvent arg0) {


txtcoddueño.setText("");
txtcodmasco.setText("");
txtcodveterinaria.setText("");
txtnomdueño.setText("");
txtnommasco.setText("");
txtnomveterianaria.setText("");
textArea.setText("");
txtcodmasco.grabFocus();

}
protected void do_btnProcesar_actionPerformed(ActionEvent arg0) {
int coddueño=coddueño();
int codmasco=codmasco();
int codveterinaria=codveterinaria();
String nomveterinaria=nomveterinaria();
String nommasco=nommasco();
String nomdueño=nomdueño();
if(nomveterinaria==null && codveterinaria==0){
Dueño d=new Dueño(coddueño, nomdueño);
Mascota m=new Mascota();
Veterinaria v=new Veterinaria();
Listar(v);
Listar(v,d);
}

else{
Dueño d=new Dueño(coddueño, nomdueño);
Mascota m=new Mascota(codmasco, nommasco);
Veterinaria v=new Veterinaria(codveterinaria, nomveterinaria,m);
Listar(v);
Listar(v,d);
}
}

void Listar(Veterinaria v)
{ Imprimir("El codigo de la veterinaria es:
"+v.getCodveterinaria());
Imprimir("El nombre de la veterinaria es:
"+v.getNombreveterinaria());
Imprimir("El codigo de la mascota es:
"+v.getMascota().getCodmascota());
Imprimir("El nombre de la mascota es:
"+v.getMascota().getNombremascota());
Imprimir();
}
void Listar(Veterinaria v,Dueño d)
{ Imprimir("El codigo de la veterinaria es:
"+v.getCodveterinaria());
Imprimir("El nombre de la veterinaria es:
"+v.getNombreveterinaria());
Imprimir("El codigo del dueño es: "+d.getCoddueño());
Imprimir("El nombre del dueño es: "+d.getNombredueño());
}
void Imprimir(String x){
textArea.append(x+"\n");
}
void Imprimir(){

textArea.append("------------------------------------------------------------
--------------------\n");
}

int coddueño(){
if(txtcoddueño.getText().isEmpty()){
return 0;
}
else return Integer.parseInt(txtcoddueño.getText());
}
int codmasco(){
if(txtcodmasco.getText().isEmpty())return 0;
else return Integer.parseInt(txtcodmasco.getText());
}
int codveterinaria(){
if(txtcodveterinaria.getText().isEmpty())return 0;
else return Integer.parseInt(txtcodveterinaria.getText());
}
String nomveterinaria(){
if(txtnomveterianaria.getText().isEmpty())return null;
else return txtnomveterianaria.getText();
}
String nomdueño(){
if(txtnomdueño.getText().isEmpty())return null;
else return txtnomdueño.getText();
}
String nommasco(){
if(txtnommasco.getText().isEmpty())return null;
else return txtnommasco.getText();
}
Diagrama de clases: Agregación y composición

Ambos estarían apuntando a veterinaria

La clase "Mascota" tiene un atributo "veterinaria" que apunta a una instancia de la clase "Veterinaria".
Esto significa que cada mascota está relacionada con una única veterinaria.

La clase "Veterinaria" tiene una lista de mascotas (atributo "mascotas") y puede atender a varias
mascotas. Además, tiene una lista de dueños que no se muestra en el diagrama.

La clase "Dueño" también tiene un atributo "veterinaria" que apunta a una instancia de la clase
"Veterinaria", lo que significa que un dueño puede llevar a su mascota a una única veterinaria.
Relación reflexiva de clases:

En programación, una relación reflexiva es aquella en la que un objeto está relacionado


consigo mismo. En el contexto de Java, esto se puede implementar a través de clases y
objetos. Para crear una relación reflexiva en Java, sigue estos pasos:

Ejemplo:

En este ejemplo, la clase Mascota representa a los pacientes de la veterinaria. Cada Mascota
tiene un nombre, código, dueño, raza, edad que lo identifica. Hemos definido el método
esIgual en la clase Mascota, que verifica si una Mascota es igual a sí mismo mediante la
comparación de referencias. Luego, en el botón procesar de la clase Mascota, creamos dos
objetos de la clase Mascota(mascota1 y mascota2) y comprobamos si son iguales a sí mismos
utilizando el método esIgual.

Código:

package reflexiva;

public class Mascota {


private int idmascota;
private String nombre;
private String dueño;
private String raza;
private int edad;

public Mascota() {
}
public Mascota(int idmascota, String nombre, String dueño, String
raza, int edad) {
this.idmascota = idmascota;
this.nombre = nombre;
this.dueño = dueño;
this.raza = raza;
this.edad = edad;
}
public int getIdmascota() {
return idmascota;
}
public void setIdmascota(int idmascota) {
this.idmascota = idmascota;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getDueño() {
return dueño;
}
public void setDueño(String dueño) {
this.dueño = dueño;
}
public String getRaza() {
return raza;
}
public void setRaza(String raza) {
this.raza = raza;
}
public int getEdad() {
return edad;
}
public void setEdad(int edad) {
this.edad = edad;
}
public boolean esIgual(Mascota otroAnimal) {
return this == otroAnimal;
}
}
Gui:
package gui;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import reflexiva.Mascota;

import javax.swing.JScrollPane;
import javax.swing.JButton;
import javax.swing.JTextArea;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class ventana1 extends JFrame implements ActionListener {

private JPanel contentPane;


private JButton btnProcesar;
private JLabel lblCodigo;
private JLabel lblMascota;
private JLabel lblNombre;
private JLabel lblDueo;
private JLabel lblNewLabel;
private JLabel lblEdad;
private JScrollPane scrollPane;
private JTextArea txtS;
private JTextField txtcodigo;
private JTextField txtdueño;
private JTextField txtnombre;
private JTextField txtraza;
private JTextField txtedad;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ventana1 frame = new ventana1();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public ventana1() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 458, 364);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
{
btnProcesar = new JButton("Procesar");
btnProcesar.setBounds(156, 151, 97, 25);
btnProcesar.addActionListener(this);
contentPane.setLayout(null);
contentPane.add(btnProcesar);
}
{
lblCodigo = new JLabel("codigo:");
lblCodigo.setBounds(22, 46, 56, 16);
contentPane.add(lblCodigo);
}
{
lblMascota = new JLabel("Mascota:");
lblMascota.setBounds(12, 13, 56, 16);
contentPane.add(lblMascota);
}
{
lblNombre = new JLabel("Nombre:");
lblNombre.setBounds(158, 46, 62, 16);
contentPane.add(lblNombre);
}
{
lblDueo = new JLabel("due\u00F1o:");
lblDueo.setBounds(22, 103, 56, 16);
contentPane.add(lblDueo);
}
{
lblNewLabel = new JLabel("raza:");
lblNewLabel.setBounds(158, 103, 44, 16);
contentPane.add(lblNewLabel);
}
{
lblEdad = new JLabel("edad:");
lblEdad.setBounds(297, 103, 44, 16);
contentPane.add(lblEdad);
}
{
scrollPane = new JScrollPane();
scrollPane.setBounds(39, 189, 363, 115);
contentPane.add(scrollPane);
{
txtS = new JTextArea();
scrollPane.setViewportView(txtS);
}
}
{
txtcodigo = new JTextField();
txtcodigo.setBounds(65, 43, 81, 22);
contentPane.add(txtcodigo);
txtcodigo.setColumns(10);
}
{
txtdueño = new JTextField();
txtdueño.setColumns(10);
txtdueño.setBounds(65, 100, 81, 22);
contentPane.add(txtdueño);
}
{
txtnombre = new JTextField();
txtnombre.setColumns(10);
txtnombre.setBounds(211, 43, 81, 22);
contentPane.add(txtnombre);
}
{
txtraza = new JTextField();
txtraza.setColumns(10);
txtraza.setBounds(192, 100, 81, 22);
contentPane.add(txtraza);
}
{
txtedad = new JTextField();
txtedad.setColumns(10);
txtedad.setBounds(347, 100, 81, 22);
contentPane.add(txtedad);
}
}
public void actionPerformed(ActionEvent arg0) {
if (arg0.getSource() == btnProcesar) {
do_btnProcesar_actionPerformed(arg0);
}
}
protected void do_btnProcesar_actionPerformed(ActionEvent arg0)
{
int idmascota=idcodigo();
String nombre=nombre();
String dueño=dueño();
String raza=raza();
int edad=edad();
Mascota mascot=new Mascota(idmascota, nombre, dueño, raza,
edad);
Imprimir("codigo: "+mascot.getIdmascota()+"\n"+
"nombre: "+mascot.getNombre()+"\n"+
"dueño : "+mascot.getDueño()+"\n"+
"raza : "+mascot.getRaza()+"\n"+
"edad : "+mascot.getEdad()+"\n");
Imprimir("¿animal es igual a si
mismo: ?"+mascot.esIgual(mascot));
Imprimir();
}

int idcodigo(){
if(txtcodigo.getText().isEmpty()){
return 0;
}
else return Integer.parseInt(txtcodigo.getText());
}
int edad(){
if(txtedad.getText().isEmpty())return 0;
else return Integer.parseInt(txtedad.getText());
}

String nombre(){
if(txtnombre.getText().isEmpty())return null;
else return txtnombre.getText();
}
String dueño(){
if(txtdueño.getText().isEmpty())return null;
else return txtdueño.getText();
}
String raza(){
if(txtraza.getText().isEmpty())return null;
else return txtraza.getText();
}
void Listado(Mascota m){

}
void Imprimir(String s){
txtS.append(s+"\n");
}
void Imprimir(){

txtS.append("----------------------------------------------\n");
}
}
Diagrama Relacional:
+-------------------+
| Mascota |
+-------------------+
| IdMascota |
| Nombre |
| Dueño |
| Raza |
| Edad |
+-------------------+
| |
| |
| |
| |
| |
↓ |
+-------------------+
| Relación |
| esIgual |
En este diagrama, he añadido los atributos IdMascota, Nombre, Dueño, Raza y Edad a la
entidad "Mascota". Estos atributos representan información adicional sobre las mascotas que
pueden ser administradas en el sistema de la veterinaria. La relación reflexiva "esIgual" sigue
conectada a la entidad "Mascota" como se muestra en el diagrama anterior.

El diagrama debería verse más como una entidad que se relaciona consigo misma sin flechas ni
líneas, ya que no hay un "inicio" ni un "fin" en la relación, dado que la entidad está relacionada
con sí misma. En el caso de la relación reflexiva "esIgual," esta implica que una mascota es
igual a sí misma, por lo que no hay una dirección definida en la relación.

Este es un ejemplo básico de cómo se vería el diagrama de entidad-relación con los atributos
adicionales en la entidad "Mascota" en el contexto de una veterinaria. Ten en cuenta que, en
una aplicación real, probablemente habría relaciones adicionales entre las entidades, como
relaciones entre mascotas y sus registros médicos, o entre mascotas y sus citas veterinarias,
dependiendo de los requerimientos del sistema.

Diseño:

También podría gustarte