Want to create interactive content? It’s easy in Genially!

Get started free

Presentación POO

Juan Tamboleo

Created on October 30, 2023

Start designing with a free template

Discover more than 1500 professional designs like these:

Frayer Model

Math Calculations

Interactive QR Code Generator

Interactive Scoreboard

Interactive Bingo

Interactive Hangman

Secret Code

Transcript

Programación Orientada a Objetos en Java

Programación Orientada a Objetos en Java

Asignatura: Programación y Bases de Datos

Primera Actividad

Bloque temático 1

Módulo Profesional: Programación (Código: 0485) Técnico Superior en Desarrollo de Aplicaciones Web

Juan Tamboleo López-Brea

1. Fundamentos de Programación Orientada a Objetos (POO)
2. Definición de Clases
3. Herencia
4. Conceptos de Java

1. Fundamentos de Programación Orientada a Objetos (POO)

1.1. ¿Qué es POO? 1.2. Objetos, Clases y Atributos 1.3. Métodos

1.1. ¿Qué es POO?

  • Es un paradigma de programación que se centra en modelar el mundo en objetos.
  • También toma conceptos del mundo real y los implementa en la programación:
    • Herencia
    • Abstracción
    • Ocultación
    • Polimorfismo
    • ...
  • El objetivo de POO es combinar los datos y las funciones para conseguir una abstracción.

1.2. Objetos, Clases y Atributos

Los objetos son las unidades básicas y repesentan entidades reales. Representan instancias de clases. Están compuestos por atributos, que forman al propio objeto.

Las clases representan los datos que define el usuario, es decir, describen los tipos de objetos. La clase es una definición de forma abstracta.

1.2. Objetos, clases y atributos

1.3. Métodos

Un método es una función que se define dentro de una clase y se utiliza para representar el comportamiento de un objeto.

Atacar
Destruir

Repaso

2. Definición de Clases

2.1. Cabecera 2.2. Atributos 2.3. Constructores 2.4. Métodos 2.5. Instanciación

2.1. Cabecera

Videojuego
public
class

Esta palabra está reservada para definir el tipo de clase. Hay 5 tipos:

  • class: clases normales.
  • abstract class: no se pueden crear instancias de estas clases.
  • interface: se utilizan para definir métodos.
  • final class: no se permite la herencia.
  • enum: representa un número fijo de constantes.

Esta palabra está reservada para definir la visibilidad de la clase. Hay 2 tipos:

  • public: es accesible desde cualquier paquete.
  • default (no poner nada): solo se puede acceder desde el mismo paquete.

El nombre de la clase. Los nombres de las clases siempre comienzan en mayúscula y además siguen el camelCase (UpperCamelCase).

Ejemplo

2.2. Atributos

Tipos
También se conocen como variables
Visibilidad

Para empezar tenemos los tipos primitivos:

  • byte: entero con tamaño de un byte.
  • short: entero con tamaño de 2 bytes.
  • int: entero con tamaño de 4 bytes.
  • long: entero con tamaño de 8 bytes.
  • float: representación en punto flotante.
  • double: representación en punto flotante usando 8 bytes.
  • char: representa un carácter unicode
  • boolean: representa un booleano, True o False.
También tendríamos los tipos de referencia:
  • A otra clase.
  • String: secuencias de caracteres.
  • ...

Al igual que para las clases, encontramos variedad en la visibilidad, ahora son 4:

  • public: accesible desde cualquier parte del programa.
  • protected: solo accesible desde clases en el mismo paquete y clases hijas.
  • private: solo accesible desde dentro de esa clase.
  • default (no poner nada): solo accesible desde clases en el mismo paquete.

Almacenan los datos de manera persistente.
Se nombran utilizando lowerCamelCase

Ejemplo

2.3. Constructores

Concepto Es un método especial en una clase que se utiliza para inicializar objetos de esa clase.

Constructor por defecto Si no se proporciona ningún constructor, Java propociona uno básico que no toma argumentos.

Sobrecarga de constructores Se pueden tener varios constructores en una clase para poder crear instancias de diferentes maneras.

Sintaxis Tienen el mismo nombre que la clase y no se le especifica un tipo de retorno explícito.

Palabra clave this Se utiliza para hacer referencia a los atributos de la instancia actual.

Uso de constructores Se necesitan para poder establecer los valores iniciales de los atributos.

Ejemplo

2.4. Métodos

Sintaxis

  • Nombre: indicamos el nombre de la función. Utiliza el lowerCamelCase.
  • Tipo de retorno: tipo de dato que devuelve la función.
    • Se utiliza la palabra reservada return para devolver el valor.
    • Se puede utilizar void para indicar que la función no devolverá nada.
  • Parámetros: argumentos que se pasan a la función.

Concepto Un método es un bloque de código que realiza una tarea específica.

Getters y Setters Normalmente se crean métodos get y set para recuperar y modificar valores de atributos.

Ejemplo

2.5. Instanciación

Al definir una clase, estamos creando su estructura, pero cuando queremos usarla (comprobar sus atributos, usar sus métodos, etc) tenemos que instanciar la clase en un objeto. Para eso tenemos que crear una nueva instancia y se hace con la palabra reservada new.

¡Por fin podré ajustar el precio de las espadas!

Para poder ejecutar código necesitamos un método main que sirve de punto de entrada en un programa. La sintaxis es: public static void main(String[] args) { // Código }

Ejemplo

Repaso

3. Herencia

3.1. Definición 3.2. Sintaxis 3.3. Polimorfismo

3.1. Definición

La herencia permite que se puedan definir nuevas clases basadas de unas ya existentes a fin de reutilizar el código, generando así una jerarquía de clases dentro de una aplicación.

La clase de la que se hereda se denomina superclase o clases padre. Mientras que las que heredan son las subclases o clases hijas.

Clase Videojuego

Clase Sandbox

Clase RPG

3.2. Sintaxis

El uso de la palabra final en la definición de clase hace que no se pueda heredar de ella.

Para poder heredar de una clase debemos usar la palabra reservada extend.

Asimismo tenemos la palabra reservada super, para llamar a métodos de la superclase. Se utiliza también para llamar al constructor padre desde la clase hija.

3.3. Polimorfismo

Polimorfismo se refiere a muchas formas, y ocurre cuando tenemos clases relacionadas por la herencia. Nos permite llamar a métodos con el mismo nombre, pero que funcionan de formas diferentes. Es importante usar la palabra reservada @override para facilitar la lectura del código y forzar al compilador a saber que estás sobreescribiendo un método.

¡Prueba el código!
Dos tipos de polimorfismo:

Polimorfismo en tiempo de compilación o polimorfismo estático.

Polimorfismo en tiempo de ejecución o polimorfismo dinámico

Repaso

4. Conceptos de Java

4.1. Colecciones 4.2. Funciones lambda 4.3. Streams

4.1. Colecciones

Las colecciones usan tipos de estructuras comunes como:

  • Arrays
  • Linked list
  • Hash sets
  • Hash maps
  • Stacks
  • Queue
  • ...

Muchas veces necesitamos tratar con multitud de datos. Las colecciones nos permiten almacenar, organizar y manipular conjuntos de elementos.

¡Comprueba que funciona bien!

Para recorrer las colecciones se usa el for-each.

Además, se define la interfaz Collection y tiene operaciones como: add, remove, size, isEmpty, etc

4.2. Funciones lambda

Sintaxis La forma más sencilla de expresar una función lambda sería: parametro -> expresión Si se quiere usar más de un parámetro se deben poner entre paréntesis: (parámetro1, parámetro2) -> expresión Si se quiere desarrollar algo más complejo, se pueden usar bloques de código entre corchetes: (parámetro1, parámetro2) -> { bloqueDeCódigo }

Son funciones anónimas que se pueden pasar como parámetros a otras funciones o se pueden asignar a variables,

Las funciones lambda se pueden definir en interfaces funcionales. Son interfaces con un solo método y usan la anotación @FunctionalInterface.

¡Pruébalo tú!

4.3. Streams

Definición
Declaración

Un stream es una secuencia de elementos que se pueden procesar de manera funcional.

A partir del método .of() de la clase Stream. A partir de una colección con el método .stream().

Los streams permiten realizar operaciones de manera declarativa en datos, como mapear, filtrar y reducir, sin la necesidad de escribir bucles explícitos.

Operaciones más usadas:

Ejemplo

  • collect: convertir stream a una colección.
  • filter: para filtrar elementos de la colección.
  • map: para realizar una operación por cada elemento.
  • count: nos permite contar el número de elementos en el stream.
  • anyMatch: devuelve un booleano si algún elemento cumple el filtro puesto.

Repaso

Bibliografía

https://www.geeksforgeeks.org/introduction-of-object-oriented-programming/ https://wordwall.net/es https://learningapps.org/ https://paiza.io/ https://www.w3schools.com/java/ Barnes, D.J. & Kolling, M. (2017). Programación orientada a objetos con Java usando BlueJ. https://www.mygreatlearning.com/blog/oops-concepts-in-java/