Вы находитесь на странице: 1из 19

PARADIGMA ORIENTADO A OBJETOS

UNIDAD Nº II
COMPORTAMIENTO DE OBJETOS

[Escribir texto]
SEMANA 3

INTRODUCCIÓN
Hasta ahora hemos visto como crear los objetos y escenario en un proyecto
Greenfoot. Usamos código Java con las clases y métodos de la herramienta.
Aprendimos como compilar el código, instanciar los objetos y ejecutar el proyecto.
Definimos las variables y usamos los métodos que generan la acción en los
diferentes actores en un escenario. En esta tercera semana consideraremos los
siguientes objetivos:

 Entender y programar una conducta aleatoria


 Comprender la probabilidad en el comportamiento
 Acceder a métodos dinámicos y estáticos
 Refactorizar el código.

www.iplacex.cl
IDEAS FUERZA

1. Conducta aleatoria: Una conducta aleatoria comienza con un proceso


de cálculos de una fórmula predeterminada que se producen por fórmulas
determinadas.
1. métodos estáticos: Están disponibles para su uso en cualquier
instante. puede llamarse sin tener que crear un objeto de dicha clase. Un
método estático es accesible sin necesidad de instanciar su clase. Basta
con escribir el nombre de la clase donde reside, punto y el método. Este
tipo de método siempre está disponible para usar en cualquier momento.
2. métodos dinámicos: son aquéllos, que tienen en cuenta el hecho de
que los capitales tienen distintos valores en los diferentes momentos del
tiempo.
3. Refactorización: Una limpieza de código, básicamente. La
refactorización no arregla errores ni incorpora funcionalidades
Altera la estructura interna del código sin cambiar su comportamiento
externo
Si durante una refactorización se ha cambiado el comportamiento del
software o web, es que has generado un error o bug.

www.iplacex.cl
Desarrollo
Organiza la idea

 ¿Qué es una conducta aleatoria?

Proceso de cálculo: Una conducta aleatoria comienza con un proceso de cálculos


de una fórmula predeterminada.

Datos aleatorios: Los resultados arrojan valores numéricos al azar.

Reflejado en comportamientos: Los valores al azar pueden ser canalizados hacia


un objeto causando diferentes comportamientos.

 ¿En qué utilizamos la conducta aleatoria?

Los datos aleatorios son producidos por fórmulas matemáticas.

Estos resultados servirán para establecer diversidad en el comportamiento de los


objetos en Greenfoot.

Clase Métodos con Objetos


datos aleatorios

 Métodos para generar conducta aleatoria

En los videojuegos es frecuente visualizar objetos moviéndose al azar.

Greenfoot tiene un método llamado: getRandomNumber() que permite obtener


valores aleatorios para usar en el comportamiento de los objetos.

En los videojuegos es frecuente visualizar objetos moviéndose al azar.

www.iplacex.cl
Greenfoot tiene un método llamado: getRandomNumber() que permite obtener
valores aleatorios para usar en el comportamiento de los objetos.

Un ejemplo sería que asteroides presenten diferentes movimientos dentro del


escenario de tal manera que haya una nave deba esquivarlos. Estos movimientos
nunca tendrán los mismos desplazamientos ya que intervienen movimientos al
azar.

www.iplacex.cl
 Qué son los métodos estáticos:

Un método estático es accesible sin necesidad de instanciar su clase.

Basta con escribir el nombre de la clase donde reside, punto y el método.

Este tipo de método siempre está disponible para usar en cualquier momento.

Se utiliza este método de tipo estático para obtener el número random:

www.iplacex.cl
¿Cómo utilizamos los métodos estáticos?

En el código ejemplo de la figura anterior los valores son obtenidos al azar de tal
manera que el asteroide pueda tener diferentes movimientos. La clase Greenfoot
accede a un método getRandomNumbre(50); que retorna valores al azar entre 0 y
49. Luego una estructura if evalúa considerando solo los valores menores o
iguales a 20. Si esto último se cumple hace girar el asteroide y lo desplaza.

Es importante señalar que el método getRandomNumber es un método de sistema


que nos entrega a través de cálculos matemáticos los valores al azar que
necesitemos. Por lo tanto anteponemos el nombre de la clase (Greenfoot), un
punto y el método estático.

PREGUNTA DE REFLEXIÓN
En tu vida diaria, dónde piensas están presentes los métodos estáticos?

www.iplacex.cl
 ¿Qué son los métodos dinámicos?

Un método dinámico es accesible solo al crear o instanciar un objeto de la clase.

Recordemos que la palabra new permite instanciar un nuevo objeto.

 Probabilidad en una conducta aleatoria

Pueden calcular una probabilidad de acción en un actor.

Un valor 100 en getRandomNumber arroja un valor aleatorio.

Al especificar menor que 10, la probabilidad es de 10%.

www.iplacex.cl
 Refactorización:Consiste en generar un código claro: escribir código
con nombres y variables entendibles. Funcionalmente bien diseñados: Que
cumplan la tarea completa. Con métodos breves. Esta técnica también es
llamada Cohesión.

¿Por qué es importante refactorizar el código?

Refactorizar es una manera eficiente de generar métodos que cumplan tareas


específicas donde estos sean invocados desde un método inicial. Esto permite un
orden y legibilidad.

Ejemplo de refactorización:

En este ejemplo el método inicial es act() mientras que llama al método desplazar
durante toda la ejecución del proyecto. Dicho de otra forma,” será como tener
distintas piezas que conforman una maquinaria

www.iplacex.cl
 Conducta aleatoria seleccionando comportamientos:

Recordemos que un bloque if ejecuta entre llaves cuando la condición es


verdadera.

Un método estático aleatorio getRandomNumber puede seleccionar un


comportamiento.

El código dice que si el número aleatorio es menor al valor 10, se ejecutará un giro
de valor 5. Si no, entonces no ocurrirá nada.

De esta forma, podemos seleccionar un movimiento de manera aleatoria.

 Otro caso de selección de comportamiento

www.iplacex.cl
Nota que la conducta aleatoria ahora tiene otro comportamiento adicional.

Si la condición es verdadera, el
objeto Abeja girará. Si no lo es, se
moverá.

 Creando una probabilidad


con conducta aleatoria

La probabilidad de veces que se


ejecute un bloque de código
dependerá de nuestra condición.

Considerar que getRandomNumber incluye número enteros entre. Si es 100,


considera entre 0 a 99.

www.iplacex.cl
Si la condición indica menor (<) que 10, equivale a un 10% de probabilidad de que
el bloque de código se ejecute.

En esta imagen, nota que el bloque de código que icluye turn(5) tiene un 10% de
probabilidad de ejecutarse.

El método getRandomNumber(100) por definición es un método estático, ya


que le antecede la clase Greenfoot.

Pregunta de reflexión.

¡Para qué sirve crear una probabilidad de conducta aleatoria?

www.iplacex.cl
 Refactorizando código

Observa el siguiente código:


La clase puede contener otros métodos que sean invocados.
Este tipo de técnica se conoce como una refactorización del código.
El método act hace una llamada al método girarAbeja.
Con eso se logra una mejora en el desarrollo del código.

www.iplacex.cl
Observa este código para que
veamos de manera más práctica lo
que hemos aprendido. Lo que
estamos haciendo aquí es crear
una variable, cuyo valor es
aleatorio. Luego le indicamos al
objeto que gire de acuerdo a ese
valor aleatorio.

int numero: es el nombre de la


variable que creamos. Primero
indicamos de es de tipo número
entero (int), luego indicamos que
se llama número. Cada vez que
llamemos a esta variable, será por su nombre, numero.

Greenfoot.getRandomNumber(50): Luego indicamos que la variable número es


igual a este valor. Lo que nos dará esto será un número aleatorio, entre 0 a 49.

turn(numero);: lo que indicamos aquí es que el objeto gire(turn), pero en vez de


ingresar un número entero como lo hemos hecho otras veces, hacemos un
llamado a nuestra variable aleatoria.

Como la variable ha sido creada dentro del método act, veremos que cada vez
que el método act se repite, la variable obtiene un nuevo valor, de 0 a 49, ya que
vuelve a sacar un número aleatorio. Si por ejemplo, creáramos nuestra variable
antes del método act, obtendría su valor aleatorio una sola vez al momento de
reproducir el juego. Pero como está dentro de act, el valor vuelve a cambiar cada

www.iplacex.cl
que act se repite. Por esta razón, podemos saber que el movimiento del objeto no
será completamente constante.

Ahora observa este código que ha


sido modificado:

Lo que vemos ahora es que el


comportamiento del objeto cambia de
acuerdo a una probabilidad.

Se ha agregado una condición, en la que indicamos que solo si el número es


menor a 10, ocurrirá una acción. Si no, ocurrirá otra. Usamos una condición if para
tener un 10% de probabilidad de que se active la acción de girar.

www.iplacex.cl
Observa este código: Tiene una pequeña diferencia con el anterior.

Hemos movido todo nuestro código fuera del método act, y le hemos dado un
nuevo nombre al método. Se llama probabilidadGirar().

Como se encuentra el código ahora, al momento de correr el juego, no ocurrirá


nada, ya que no hay nada que esté activando nuestro nuevo método. Sólo se
reproducirá lo que se encuentra en act, pero ya que está vacío, no veremos
ningún comportamiento en el objeto.

www.iplacex.cl
Para activar nuestro método, debemos hacer una llamada a él desde act. Para
hacerlo, solamente escribimos el
nombre del método y; dentro de act

La siguiente imagen tiene una refactorización un poco más compleja:

Observa que desde el método act se hace una llamada al método comportamiento
Completo (), y a su vez, desde este método se hace una llamada al método
probabilidad().

www.iplacex.cl
Conclusión
Los temas de programación ya estudiados, son la base que te permitirá crear
programas, sistemas, aplicaciones, videojuegos, etc.

A su vez, consiente crear el código modular y reutilizable. Esta encapsulación es


la que admite la modularidad entre los componentes.

Por una parte se vio la parte de abstracción de los datos, el cómo modelar un
problema de la vida real a un entorno que una computadora lo pueda comprender,
primeramente diseñando las clases y su relación entre ellas.

Es importante destacar que tanto los métodos y las propiedades de las mismas
pueden tener un acceso restringido a otras clases, de modo que la interacción se
diera en un contexto seguro.

www.iplacex.cl
www.iplacex.cl

Вам также может понравиться