Full Transcript

FSE + Fondo Social Europeo Plus PROGRAMACIÓN ORIENTADA A OBJETOS CLASES Y OBJETOS FSE + Fondo Social Europeo Plus QUÉ ES UNA CLASE En Java, una clase es una estructura fundamental en la programación orientada a objetos. Se puede pensar en una clase como un plano o molde que define las característica...

FSE + Fondo Social Europeo Plus PROGRAMACIÓN ORIENTADA A OBJETOS CLASES Y OBJETOS FSE + Fondo Social Europeo Plus QUÉ ES UNA CLASE En Java, una clase es una estructura fundamental en la programación orientada a objetos. Se puede pensar en una clase como un plano o molde que define las características y comportamientos (atributos y métodos) que los objetos creados a partir de ella tendrán. Atributos: También conocidos como campos o propiedades, son las variables que almacenan los datos y/o estados de los objetos. Por ejemplo, en la clase Persona, tendríamos atributos como nombre y edad. Métodos: Son las funciones o procedimientos que definen lo que un objeto puede hacer. Los métodos pueden modificar los atributos del objeto y/o realizar operaciones utilizando esos atributos. Los métodos también pueden devolver datos. Por ejemplo, en una clase Persona, tendríamos métodos como caminar() o hablar(). FSE + Fondo Social Europeo Plus TIPOS DE DATO O RETORNO Se trata del tipo de dato de los atributos de una clase y los tipos de retorno que pueden tener los métodos Tipos de Dato Primitivos int: valor entero. double: valor de coma flotante. boolean: valor verdadero o falso. char: carácter único. Objetos String: cadena de caracteres. ArrayList: lista de elementos. Persona: Una instancia de la clase Persona que se define en la aplicación. Arrays/Maps: Tanto de tipos primitivos como de objetos (Un Array de Personas) Void Si un método no necesita retornar ningún valor, se utiliza el tipo void. Este es comúnmente usado en métodos que solo modifican el estado interno del objeto o realizan alguna operación sin necesidad de informar un resultado. FSE + Fondo Social Europeo Plus MODIFICADORES DE ACCESO PUBLIC El atributo es accesible desde cualquier otra clase. No es una práctica común usar public para los atributos, ya que viola los principios de encapsulamiento. PRIVATE El atributo sólo es accesible dentro de la misma clase. Es el modificador recomendado para la mayoría de los atributos, ya que promueve el encapsulamiento al ocultar los datos internos de la clase. PROTECTED El atributo es accesible dentro de la misma clase y por clases derivadas (subclases), incluso si están en paquetes diferentes. Sin modificador (default) Si no se especifica un modificador, el atributo es accesible sólo dentro de clases en el mismo paquete. FSE + Fondo Social Europeo Plus MÉTODOS Son las funciones o procedimientos que definen lo que un objeto puede hacer. Los métodos pueden modificar los atributos del objeto y/o realizar operaciones utilizando esos atributos. Algunos métodos devuelven datos al ejecutarse y otros no. Un método puede aceptar datos de entrada y producir datos de salida. El tipo de retorno de un método en Java indica el tipo de dato que el método promete devolver cuando se complete su ejecución. Este tipo debe ser especificado como parte de la declaración del método. El método se declara mediante los modificadores de Acceso, los modificadores especiales, el tipo de retorno, y el nombre. Después entre paréntesis, se indican los parámetros de entrada. Es decir: public static void main (String args[]) En el método básico y punto de acceso de Java, vemos que es un método público, estático -pues no hace falta instanciar la clase para lanzarlo- que no devuelve datos -por tanto es void- y que se llama “main” o principal. Acepta como parámetros un array de Strings. Es decir, los argumentos pasados al ejecutarlo por línea de comandos. FSE + Fondo Social Europeo Plus EJERCICIO Desarrollar una clase ejecutable en Java llamada Calculadora que pueda recibir parámetros desde la línea de comandos y realice operaciones básicas de matemáticas como sumar, restar, multiplicar y dividir. Descripción del Problema: Debes crear una clase llamada Calculadora. La clase debe ser capaz de aceptar argumentos desde la línea de comandos. Estos argumentos representarán los números involucrados en la operación y la operación misma. Las operaciones válidas serán: suma, resta, multiplicación y división. La clase debe determinar qué operación realizar basándose en un argumento (por ejemplo, +, -, *, /) y luego ejecutar esa operación usando dos números proporcionados como argumentos adicionales. Después de realizar la operación, el resultado debe ser mostrado en la consola. Requisitos: Entrada: La clase debe tomar tres argumentos desde la línea de comandos. El primer argumento será un número entero. El segundo argumento será un carácter que indica la operación (+, -, *, /). El tercer argumento será otro número entero. Procesamiento: La clase debe interpretar los argumentos para determinar la operación a realizar. Realizar la operación matemática correspondiente. Salida: Imprimir el resultado de la operación en la consola. FSE + Fondo Social Europeo Plus CONSTRUCTORES Los constructores son métodos especiales en una clase que se llaman automáticamente cada vez que se crea una instancia de esa clase. Su principal propósito es inicializar el objeto recién creado. No tiene un tipo de retorno, ni siquiera void, y su nombre debe ser exactamente igual al nombre de la clase. A los constructores se les llama cuando se ejecuta el método new FSE + Fondo Social Europeo Plus EJERCICIO Partiendo de la clase anterior, Calculadora, añadirle un constructor vacío, y llevar el método main a una nueva clase MainClass. Descripción del Problema: Debes reutilizar la clase calculadora Hay que crear en ella un constructor sin parámetros Debemos eliminar el método public static void main, pues no queremos que esta clase sea el punto de inicio de la aplicación Tenemos que poder llamar a las mismas operaciones desde la nueva clase MainClass (es decir, crear allí un punto de inicio) Desde ese nuevo punto de inicio instanciaremos la clase calculadora, y ejecutaremos el método de operar Requisitos: Entrada: Debe recibir los mismos parámetros Salida: Que el programa tenga la misma salida que en el ejercicio anterior FSE + Fondo Social Europeo Plus EJERCICIO Partiendo de la clases anteriores Calculadora y MainClass, añadir la clase Operación para pasar “operaciones” a la calculadora Descripción del Problema: Debes reutilizar la clase calculadora El método de operar, ahora debe recibir un Objeto de tipo “Operación” El objeto operación tendrá los atributos: “operando1, signo, operando2”. Los operandos de tipo entero, y el signo de tipo String. Tenemos que poder llamar a las mismas operaciones desde la nueva clase MainClass pero ahora pasando un objeto Operación que crearemos para pasarlo al método Operar. El objeto operar contendrá además el atributo “resultado” de tipo entero. La función de operar de la calculadora deberá devolver la operación pero con el resultado informado. La función MainClass, debe imprimir lo mismo, pero partiendo de los Valores del resultado guardado en el objeto operación Requisitos: Entrada: Debe recibir los mismos parámetros Salida: Que el programa tenga la misma salida que en el ejercicio anterior FSE + Fondo Social Europeo Plus EL MODIFICADOR STATIC El modificador static aplicado a los miembros de una clase en Java tiene un significado especial y es útil en varias circunstancias comunes en la programación orientada a objetos. Cuando se usa con variables y métodos de una clase, static indica que el miembro pertenece a la clase, en lugar de a cualquier instancia de la clase. Static en Variables (Campos Estáticos) Una variable estática, también conocida como variable de clase, es compartida por todas las instancias de esa clase. Cualquier cambio que una instancia haga en una variable estática afecta a todas las demás instancias porque la variable no reside en ninguna de las instancias sino en la clase misma. Las variables estáticas son útiles para mantener valores que son constantes en concepto o que deben ser compartidos entre todas las instancias. Ejemplos comunes incluyen contadores de instancias o constantes configurables que deben ser accesibles en varios puntos del programa. Static en Métodos (Métodos Estáticos) Un método estático pertenece a la clase en lugar de a cualquier instancia. Esto significa que puede ser llamado sin crear una instancia de la clase. Los métodos estáticos son útiles para realizar operaciones que no dependen del estado de una instancia particular. Por ejemplo, funciones de utilidad o cálculos que son generales para todos los objetos de esa clase. FSE + Fondo Social Europeo Plus public class DatabaseHelper { private static int numberOfConnections = 0; public static void openConnection () { numberOfConnections++; // código para abrir una nueva conexión a la base de datos } public static void closeConnection () { numberOfConnections--; // código para cerrar una conexión a la base de datos } public static int getNumberOfConnections () { return numberOfConnections; } } En este ejemplo, numberOfConnections es una variable estática que rastrea cuántas conexiones están abiertas en cualquier momento, independientemente de las instancias de DatabaseHelper. FSE + Fondo Social Europeo Plus public class MathUtils { public static int sumar(int a, int b) { return a + b; } } // Llamada al método estático int resultado = MathUtils.sumar(5, 3); En este ejemplo, sumar es un método estático que proporciona funcionalidad reutilizable sin requerir una instancia de MathUtils. FSE + Fondo Social Europeo Plus EJERCICIO Partiendo de la clase anterior, Calculadora, vamos a convertir el método de operación a estático. Después, utilizaremos este método estático en nuestra clase principal, sin instanciar la clase Calculadora. Descripción del Problema: Debes reutilizar las clases Calculadora, Operación y MainClass Debemos modificar los métodos de operación para que sean STATIC. Tenemos que poder llamar a las mismas operaciones desde la nueva clase MainClass, pero sin instanciar la clase Calculadora Requisitos: Entrada: Que el programa acepte la misma salida que en el ejercicio anterior Salida: Que el programa tenga la misma salida que en el ejercicio anterior FSE + Fondo Social Europeo Plus PALABRA RESERVADA THIS En Java, la palabra clave this tiene un significado especial y se utiliza dentro de una clase para referirse a la instancia actual de esa clase. Es decir, al crear un objeto de la clase Coche, nos referiremos al coche en particular que acabamos de crear. Es un punto de referencia que ayuda a los métodos a acceder a las variables de instancia y otros métodos de la misma clase. En resumen, this es una referencia al objeto actual cuyos métodos o constructores están siendo invocados. Ayuda a evitar confusiones entre variables de instancia y parámetros y facilita ciertos patrones de diseño y técnicas de programación en Java. FSE + Fondo Social Europeo Plus public class Persona { private String nombre; public Persona(String nombre) { this.nombre = nombre; // `this.nombre` se refiere al atributo, `nombre` al parámetro } public void imprimirNombre() { System.out.println(this.nombre); clase } } // Aquí `this` clarifica que se refiere al atributo de la En este ejemplo, utilizamos this para acceder a los atributos del objeto instanciado FSE + Fondo Social Europeo Plus public class Caja { private int ancho; private int alto; private int profundidad; // Constructor principal public Caja(int ancho, int alto, int profundidad) { this.ancho = ancho; this.alto = alto; this.profundidad = profundidad; } // Constructor que asume que todos los lados son iguales public Caja(int lado) { this(lado, lado, lado); // Llama al constructor principal } } En este ejemplo, utilizamos this para llamar a un constructor desde el otro, en el momento de la construcción del objeto FSE + Fondo Social Europeo Plus public class Evento { private String nombreEvento; public Evento(String nombreEvento) { this.nombreEvento = nombreEvento; } public void registrarEvento(ManejadorEvento manejador) { manejador.procesarEvento(this); // Pasando la instancia actual } } En este ejemplo, utilizamos this para enviar la instancia en uso de la clase evento al método procesarEvento() FSE + Fondo Social Europeo Plus public class ConstructorComplejo { private int parteA; private int parteB; public ConstructorComplejo setParteA(int parteA) { this.parteA = parteA; return this; // Devuelve la instancia actual } public ConstructorComplejo setParteB(int parteB) { this.parteB = parteB; return this; // Devuelve la instancia actual } public void construir() { System.out.println("Parte A: " + this.parteA + " Parte B: " + this.parteB); } } En este ejemplo, utilizamos this para devolver el objeto instanciado al completo en los dos constructores FSE + Fondo Social Europeo Plus // Definición de la clase Lámpara public class Lampara { // Atributos de la clase private boolean encendida; // Indica si la lámpara está encendida o apagada private int intensidad; // Nivel de intensidad de la luz de la lámpara private String color; // Color de la luz emitida por la lámpara // Constructor de la clase Lampara public Lampara() { // Inicializa la lámpara apagada, con intensidad media (50) y luz blanca this.encendida = false; this.intensidad = 50; this.color = "blanca"; } // Método para encender la lámpara public void encender() { encendida = true; System.out.println( "Lámpara encendida." ); } // Método para apagar la lámpara public void apagar() { encendida = false; System.out.println( "Lámpara apagada."); } // Método para cambiar la intensidad de la luz public void cambiarIntensidad(int nuevaIntensidad) { if (nuevaIntensidad >=0 && nuevaIntensidad

Use Quizgecko on...
Browser
Browser