Ingeniería en sistemas computacionales. Programación orientada a objetos
Enviado por lil-keferbu • 16 de Marzo de 2024 • Apuntes • 2.742 Palabras (11 Páginas) • 40 Visitas
[pic 1] | INSTITUTO TECNOLÓGICO SUPERIOR DE [pic 2] SAN ANDRÉS TUXTLA | [pic 3] |
INGENIERÍA EN SISTEMAS COMPUTACIONALES | ||
REPORTE DE PRÁCTICA | PROGRAMACIÓN ORIENTADA A OBJETOS | |
UNIDAD ll. CLASES Y OBJETOS |
FECHA: | 14/03/2024 |
NOMBRE DEL ALUMNO | Fernando Martinez Paxtian Diego Hernández Garrido |
PRÁCTICA NO. | NOMBRE DE LA PRÁCTICA |
4 | Sobrecarga de Métodos |
OBJETIVO | Implementar la sobrecarga de método y/o constructor. |
FUNDAMENTO TEÓRICO | |
[1]Clase: Una clase es un tipo definido por el usuario que describe los atributos y los métodos de los objetos que se crearán a partir de la misma, la definición de una clase consta de dos partes: el nombre de la clase precedido por la palabra reservada class, y el cuerpo de clase encerrado entre llaves. [2]Objeto: un objeto es una instancia de una clase. Una clase es una plantilla que define el comportamiento y las propiedades comunes a un conjunto de objetos. Cuando se crea un objeto, se reserva memoria para almacenar sus datos y se asigna una referencia a ese objeto. Los objetos pueden interactuar entre sí mediante el intercambio de mensajes, lo que implica llamar a los métodos de otros objetos o acceder a sus atributos. Cada objeto tiene un estado (datos almacenados en sus atributos) y un comportamiento (acciones que puede realizar, definidas por los métodos de su clase).
[10] Metodo isEmpty: El método isEmpty() en Java es un método de la clase String. Este método devuelve true si la longitud de la cadena es cero, es decir, si la cadena está vacía, y false si la cadena tiene uno o más caracteres. Es una forma conveniente de verificar si una cadena no tiene contenido sin tener que comparar su longitud explícitamente con cero. [11] Object: En Java, Object es una clase fundamental que es la superclase de todas las demás clases. Esto significa que todas las clases en Java son subclases de Object, ya sea directa o indirectamente. La clase Object contiene métodos que son comunes a todos los objetos en Java. [12] Star UML: Un modelo es una simplificación de la realidad que se consigue mediante una abstracción. El modelado de un sistema pretende capturar las partes fundamentales o esenciales de un sistema. El modelado se representa mediante una notación gráfica. Un modelo se expresa en un lenguaje de modelado y consta de notación símbolos utilizados en los modelos y un conjunto de reglas que instruyen cómo utilizarlas. Las reglas son sintácticas, semánticas y pragmáticas.
| |
EQUIPO | |
Laptop Procesador AMD Ryzen 7 512 GB de almacenamiento 16 GB de memoria RAM Pantalla 15.6” FHD | |
SOFTWARE | |
Windows 11 Home Microsoft Word 2019 Google Chrome StarUML V6 6.0.1 Revisión (2023/09/18) | |
DESARROLLO | |
Definir la clase base Animal que considere tipo de animal, nombre, edad, tamaño del animal. Sobrecargar un método Modificar que permita: Modificar el nombre y edad Modificar tipo de animal, nombre y edad Modificar el nombre, tamaño y edad Definir la clase Principal donde permita al usuario crear un Animal y después se invoque el método Modificar pasándole los argumentos necesarios. Deberán ir mostrando los cambios para comprobar que se realizaron las modificaciones. | |
RESULTADOS | |
Clase principal package com.mycompany.main; import javax.swing.JOptionPane; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // Creando la instancia del animal Animal miAnimal = new Animal("", "", 0, 0.0); // Solicitar al usuario que ingrese el tipo, nombre y edad del animal System.out.println("Digite Tipo, Nombre y Edad "); String tipo = sc.nextLine(); String nombre = sc.nextLine(); int edad = sc.nextInt(); /*Se establecen los valores del tipo, nombre y edad del animal utilizando los métodos setters de la clase Animal*/ // Estableciendo los valores del animal miAnimal.setTipo(tipo); miAnimal.setNombre(nombre); miAnimal.setEdad(edad); // Mostrando información inicial del animal System.out.println("Información inicial del animal:"); miAnimal.mostrarInformacion();// de la clase Animal public void mostrarInformacion() /*Se muestra en la consola la información inicial del animal utilizando el método mostrarInformacion() de la clase Animal.*/
// Realizando modificaciones utilizando diferentes sobrecargas de métodos System.out.println("Digite Nuevo Nombre y Edad "); sc.nextLine(); // Consumir el carácter de nueva línea pendiente nombre = sc.nextLine(); edad = sc.nextInt(); miAnimal.modificarNombreEdad(nombre, edad); System.out.println("Digite Nuevo Tipo, Nombre y Edad "); sc.nextLine(); // Consumir el carácter de nueva línea pendiente tipo = sc.nextLine(); nombre = sc.nextLine(); edad = sc.nextInt(); miAnimal.modificarTipoNombreEdad(tipo, nombre, edad); System.out.println("Digite Nuevo Nombre, Tamaño y Edad "); sc.nextLine(); // Consumir el carácter de nueva línea pendiente nombre = sc.nextLine(); double tamaño = sc.nextDouble(); edad = sc.nextInt(); miAnimal.modificarNombreTamañoEdad(nombre, tamaño, edad); // Lista para almacenar instancias de animales List<Animal> listaAnimales = new ArrayList<>(); listaAnimales.add(miAnimal); // Agregamos el animal creado anteriormente // Solicitar al usuario que ingrese el nombre del animal que desea eliminar System.out.println("Digite el nombre del animal que desea eliminar:"); // No necesitamos consumir el carácter de nueva línea pendiente aquí, // ya que no vamos a leer ninguna entrada después de esta línea String nombreAEliminar = sc.next(); // Si el nombre coincide con el nombre del animal, "eliminamos" la instancia if (nombreAEliminar.equals(miAnimal.getNombre())) { miAnimal = null; // Marcar la instancia como null para que el recolector de basura la recolecte System.gc(); // Llamar explícitamente al recolector de basura JOptionPane.showMessageDialog(null, "La instancia del animal '" + nombreAEliminar + "' ha sido eliminada.");
// Mostrar el número de animales restantes int animalesRestantes = listaAnimales.size() - 1; // Se calcula el número de animales restantes en la lista restando 1 (debido a que hemos eliminado uno) y se muestra en un mensaje de diálogo. JOptionPane.showMessageDialog(null, "Número de animales restantes: " + animalesRestantes, "Animales restantes", JOptionPane.INFORMATION_MESSAGE); } else { System.out.println("No se encontró ningún animal con ese nombre.");// Si el nombre proporcionado por el usuario no coincide con el nombre del animal almacenado, se imprime un mensaje } } } Clase Animal package com.mycompany.main; public class Animal { // Atributos private String Tipo; private String Nombre; private int edad; private double Tamaño; // Constructor public Animal(String Tipo, String Nombre, int edad, double Tamaño) { this.Tipo = Tipo; this.Nombre = Nombre; this.edad = edad; this.Tamaño = Tamaño; } // Getters y Setters public String getTipo() { return Tipo; } public void setTipo(String tipo) { Tipo = tipo; } public String getNombre() { return Nombre; } public void setNombre(String nombre) { Nombre = nombre; } public int getEdad() { return edad; } public void setEdad(int edad) { this.edad = edad; } public double getTamaño() { return Tamaño; } public void setTamaño(double tamaño) { Tamaño = tamaño; } // Métodos de modificación public void modificarNombreEdad(String nuevoNombre, int nuevaEdad) { this.Nombre = nuevoNombre; this.edad = nuevaEdad; mostrarInformacion(); } public void modificarTipoNombreEdad(String nuevoTipo, String nuevoNombre, int nuevaEdad) { this.Tipo = nuevoTipo; this.Nombre = nuevoNombre; this.edad = nuevaEdad; mostrarInformacion(); } public void modificarNombreTamañoEdad(String nuevoNombre, double nuevoTamaño, int nuevaEdad) { this.Nombre = nuevoNombre; this.Tamaño = nuevoTamaño; this.edad = nuevaEdad; mostrarInformacion(); } // Método para mostrar información public void mostrarInformacion() { System.out.println("Tipo: " + Tipo); System.out.println("Nombre: " + Nombre); System.out.println("Edad: " + edad); System.out.println("Tamaño: " + Tamaño); System.out.println(); } // Método finalize para liberar recursos (aunque su uso no es recomendado) @Override protected void finalize() throws Throwable { System.out.println("La instancia del animal '" + Nombre + "' está siendo recolectada por el recolector de basura."); super.finalize(); } } Compilación [pic 4] [pic 5] [pic 6] Animal.java P4_U2_HGFM.java | |
CONCLUSIONES | |
Es claro el uso de los métodos para esta solución de problemas, ya que al sobrecargarlos da una facilidad al usuario su manejo, además de que tomando en cuenta que los constructores son un método especial, permite inicializar los objetos dentro del programa justo cuando la información solicitada es ingresada por medio del setter y getter. Ademas de solicitar información es capaz de borrarla por medio de un destructor pero como se esta utilizando el lenguaje java se ocupa la palabra clave null para poder darle una posible solución sin que el código presente error. | |
REFERENCIAS | |
[4 ]S. García, "Programación Orientada a Objetos en Java," Escuela Técnica Superior de Ingenieros de Sistemas Informáticos, Universidad Politécnica de Madrid, [En línea]. Available: https://www.etsisi.upm.es/sites/default/files/curso_2013_14/MASTER/MIW.JEE.POOJ.pdf.
|
...