ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Ingeniería en sistemas computacionales. Programación orientada a objetos


Enviado por   •  16 de Marzo de 2024  •  Apuntes  •  2.742 Palabras (11 Páginas)  •  41 Visitas

Página 1 de 11

[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).

  1. Atributos: Un atributo en programación es una característica o propiedad que se asigna a un objeto, variable o elemento de código. Estos atributos se utilizan para describir y definir las características de un elemento en particular y pueden tomar diferentes formas dependiendo del lenguaje de programación que estés utilizando.
  2. Metodos: un método se define como una función que está vinculada a una clase y determina cómo se comportan los objetos de esa clase. Los métodos en Java guardan similitudes con las funciones de otros lenguajes de programación, pero están encapsulados dentro de una clase y tienen acceso a los campos (variables) de dicha clase.
  3. Get: El método get  es un método público, pero el get se encarga de mostrar un valor a una propiedad o atributo de un objeto, el cual está encapsulado en la clase correspondiente, es decir, esta declarado con la palabra reservada private o protected.
  4.  Set: El método set es un método público, el cual se encarga de darle un valor a una propiedad o atributo de un objeto, el cual está encapsulado en la clase correspondiente, es decir, esta declarado con la palabra reservada private o protected.
  5. Parámetros: La utilización de parámetros en los métodos de Java permite que dichos métodos sean más flexibles y reutilizables. Al definir parámetros, podemos transferir información relevante al método, lo que le permite operar con datos específicos según las necesidades del usuario.
  6. Constructores: Un constructor es un tipo especial de método que permite que un objeto se inicialice  a valores definidos para sus datos. El constructor tiene exactamente el mismo nombre que la clase a la cual pertenece; es un método public, es decir, un método al que puede accederse desde cualquier parte de un programa.
  7.  Metodo toString(): El texto hace referencia al método toString() que está presente en la clase base de todas las clases en Java, llamada Object. Este método es heredado por todas las clases que creemos en Java. Por defecto, si no lo sobrescribimos en nuestras clases, el método toString() retorna una representación de la instancia actual, que consiste en el nombre de la clase seguido de la dirección de memoria del objeto.

[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.

  1. Método Main: El método Main es el punto de entrada de un programa ejecutable; es donde se inicia y finaliza el control del programa. Main se declara dentro de una clase o estructura. El valor de Main debe ser static y no public .  
  2. Sobre carga de métodos: permite definir varios métodos con el mismo nombre en una clase, pero con diferentes parámetros. Esto significa que puede haber múltiples versiones de un método en la misma clase, y la versión específica que se llama depende de los tipos y la cantidad de parámetros pasados al método.
  3. Null: se refiere a un valor especial que se puede asignar a variables de referencia a objetos. null indica la ausencia de un objeto válido en esa variable. Esto es diferente de un objeto con un estado definido; null significa que la variable no apunta a ningún objeto en absoluto.
  4. Destructor: Un destructor es un método opuesto a un constructor, éste método en lugar de crear un objeto lo destruye liberando la memoria de nuestra computadora para que pueda ser utilizada por alguna otra variable u objeto. En java no existen los destructores, esto es gracias al recolector de basura de la máquina virtual de java. Como su nombre lo dice, el recolector de basura recolecta todas las variables u objetos que no se estén utilizando y que no haya ninguna referencia a ellos por una clase en ejecución, liberando así automáticamente la memoria de nuestra computadora.

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

  1. J. Doe, "Set en Java: Métodos Getter y Setter," Clases de Informática Web, [En línea]. Available: https://www.clasesdeinformaticaweb.com/java-desde-cero/set-en-java-metodos-getter-y-setter/.
  1. A. Smith, "¿Qué es el método estático en Java? Variables y Métodos Estáticos," Guru99, [En línea]. Available: https://www.guru99.com/es/java-static-variable-methods.html#:~:text=%C2%BFQu%C3%A9%20es%20el%20m%C3%A9todo%20est%C3%A1tico,no%20al%20objeto%20(instancia).
  1. T. Rodríguez, "Método isEmpty() y otros métodos para cadenas en Java," Tutoriales Programación Ya, [En línea]. Available:

[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.

  1. R. López, "Programación Orientada a Objetos en Java," Centro Universitario de Artes Digitales, Universidad Autónoma Metropolitana, [En línea]. Available: https://www.cua.uam.mx/pdfs/revistas_electronicas/libros-electronicos/2016/2intro-poo/programacion_web.pdf.
  2. Barragán, A. (2023, 24 de octubre). Introducción a Java: Métodos, parámetros y argumentos. OpenWebinars.net. https://openwebinars.net/blog/introduccion-a-java-metodos-parametros-y-argumentos/
  3. Cómo funciona el método main() en Java - OCAJ8P. (s.f.). JavAutodidacta. https://javautodidacta.es/metodo-main-en-java/

...

Descargar como (para miembros actualizados) txt (16 Kb) pdf (331 Kb) docx (202 Kb)
Leer 10 páginas más »
Disponible sólo en Clubensayos.com