PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8...

106
www.iplacex.cl PARADIGMA ORIENTADO A OBJETOS UNIDAD Nº I OBJETOS EN EL MUNDO

Transcript of PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8...

Page 1: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl

PARADIGMA ORIENTADO A OBJETOS UNIDAD Nº I

OBJETOS EN EL MUNDO

Page 2: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 2

Desarrollo

Introducción

Antes de empezar este curso, es necesario que tengas una pequeña introducción a la

programación.

Programación:

Es un lenguaje para que te entiendas con la máquina, imagínate que vas a otro

país que habla otro idioma, sería necesario que supieras algunas reglas del idioma

para poder comunicarte y se genere algún entendimiento común.

El proceso comienza por el programador, quien se encarga de crear un código

fuente. Este código es revisado por un Compilador y cuando es correcto, se produce

un Programa o Software.

Formas de Programar

Existen 3 grandes formas que un programador utiliza para crear un código.

1. Programación Estructurada:

Es un paradigma de programación orientado a mejorar la claridad,

calidad y tiempo de desarrollo de un programa de computadora, utilizando

únicamente subrutinas y 3 estructuras: secuencia, selección e iteración.

2. Programación Funcional:

Es un paradigma de programación declarativo basado en el uso de

funciones matemáticas.

3. Programación Orientada a Objetos:

Es un paradigma que busca representar objetos observables

tangibles o intangibles mediante su comportamiento y estados.

SEMANA 1

Page 3: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 3

Paradigma Orientado a Objetos

En esta asignatura nos dedicaremos a representar la programación mediante el

enfoque de los paradigmas orientado a objetos.

Observar los objetos:

La observación de objetos se basa en identificar que representa y darle un

nombre, por ejemplo, Perro y tiene características tales como color, tipo de pelaje, a

este conjunto cuando cambia de valor en el tiempo se le llama estado, por ejemplo, el

color del perro cambia cuando está limpio.

Representar los comportamientos:

Los objetos tienen formas de actuar, por lo que asociar un verbo a partir de lo

que hace, crea la representación de su comportamiento.

Programar plantillas de objetos (Clases):

Cuando uno quiere representar esto en un programa, esto se hace mediante

archivos que declaran todo lo observado del objeto, a este archivo de le llama “Clase”.

Greenfoot

Greenfoot es un ambiente interactivo de desarrollo Java para propósitos educacionales.

Permite la creación de aplicaciones gráficas en dos dimensiones, como simulaciones y

juegos.

Lo primero que debes hacer, es instalar Greenfoot en tu computador. Podrás

descargarlo en el siguiente link

https://www.greenfoot.org/download

Puedes hacer click en el ícono de Windows para descargarlo y seguir las instrucciones

de instalación.

Page 4: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 4

Interfaz de usuario de Greenfoot

Para comenzar a usar el programa, debes hacer doble click en el ícono de

Greenfoot que apareció en tu escritorio.

También puedes ir a Windows y escribir Greenfoot para buscar el programa y

abrirlo. Esta es la interfaz de Greenfoot que verás una que el programa este abierto.

Page 5: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 5

Lo primero que debes hacer es crear un nuevo escenario. Para eso, debes hacer

click en la parte superior izquierda, en la pestaña Scenario

.

Se desplegará la pestaña y podrás hacer click en donde dice new Java Scenario.

Page 6: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 6

Aparecerá esta ventana, en donde debes escribir el nombre de tu archivo, y

presionar el botón create.

Se abrirá tu nuevo proyecto y podrás ver lo siguiente:

Page 7: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 7

Veamos una descripción de algunas de las partes de la interfaz de Greenfoot:

Clases: En este espacio se encuentran las clases de tu juego. En

ellas podrás crear a tus personajes y sus comportamientos, así como

cambiar el tamaño, apariencia y características del fondo.

Mundo: Este espacio en blanco que aparece al centro de

la interfaz se llama mundo, y es el lienzo en el que podrás

colocar las piezas de tu videojuego y verlo funcionar.

Botón Act: Este botón te permitirá ver un paso a paso de lo que está

ocurriendo en tu juego, y comprobar cómo está funcionando.

Botón Run: El botón Run hace que corra el juego, es decir, lo inicia

para que puedas jugarlo y ver su funcionamiento. A diferencia del

botón Act, no se verá el paso a paso.

Botón Reset: Este botón hará que el juego regrese a su estado inicial.

Speed: Con este control deslizante podrás

aumentar o disminuir la velocidad a la que corre tu

juego.

Page 8: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 8

¿Qué es paradigma orientado a objetos?

Es una forma de codificación que se popularizó a mediados de los 80´.

Es una representación del mundo real a través de objetos prediseñados.

Estos objetos ofrecen funcionalidades particulares para resolver un problema.

¿Qué es un objeto?

Un objeto es una entidad, que tiene sus propias características y comportamientos.

Aquí tenemos algunos ejemplo:

¿Qué es una clase?

Es una serie de atributos y métodos que definen comportamientos en los objetos.

Es decir, es un diseño, un molde, que puede producir uno o muchos objetos.

¿Qué es un método?

Es un comportamiento que tiene un objeto.

Una clase puede tener muchos métodos.

Se pueden activar en el momento y orden deseado para controlar el comportamiento

del objeto.

Page 9: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 9

Pensemos en un ejemplo:

Imagina que tenemos la clase Vehículo. Sus características (atributos) podrían

ser que tiene ruedas y pedales. Sus comportamientos (métodos) pueden ser acelerar o

frenar.

A partir de esta descripción, podrías crear varios vehículos diferentes, que

compartan estas características. Por ejemplo, un auto, una camioneta o un furgón.

Crear clases en Greenfoot

Ahora que ya sabes lo que son los Objetos, Clases y Métodos, vamos a crearlos y ver

cómo funcionan en Greenfoot para comenzar a hacer tu propio videojuego.

Para crear una nueva clase en Grennfoot, debes hacer click derecho en la clase Actor

que ya viene por defecto al crear tu proyecto. Al desplegarse un ventana, debes elegir

la opción New subclass. Al elegir esta opción, crearás una subclase de la clase Actor.

Esto significa, que tu nueva clase será una extensión de Actor y heredará sus métodos.

Page 10: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 10

Luego verás una ventana en que podrás colocarle un nombre a tu clase y elegir una

imagen de ícono. Recuerda que en Java, los nombres de las clases deben escribirse

siempre con la primera letra mayúscula.

Page 11: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 11

Una vez este creada tu clase, podrás verla de esta forma:

Ya que la clase ha sido creada, ahora podrás instanciarla en el escenario. Esto

quiere decir que puedes colocar a tu personaje en el mundo de Greenfoot para

observarlo y ver su comportamiento, pero además, ya que es una instancia, puedes

copiarlo las veces que quieras, y tener a muchos personajes en el escenario.

Para instanciar la clase, primero debes hacer click derecho sobre la clase que creaste y

seleccionar la opción new persona(). Al hacer esto, aparecerá el ícono que

seleccionaste para tu clase, y podrás arrastrarlo con el mouse y dejarlo en el mundo,

en la posición que desees.

Page 12: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 12

Veamos el código

Pasaremos a ver el código fuente que se encuentra

dentro de nuestro personaje, con el que podremos

controlar su comportamiento.

Para entrar al código de la clase que haz creado,

debes hacer doble click sobre la clase.

Al hacerlo, se abrirá otra ventana con el código que

contiene esta clase.

Page 13: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 13

Este código aparece por defecto al crear una clase. Si te fijas, ya existe un método que

se encuentra vacío, llamado act(). Este método es el encargado principal de controlar el

comportamiento de esta clase, y es aquí en donde podrás escribir todas las acciones

que deseas que realice. El método act se ejecuta automáticamente al momento de que

le pongas play al juego, y se repite una y otra vez de forma cíclica.

Page 14: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 14

Page 15: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl

PARADIGMA ORIENTADO A OBJETOS UNIDAD Nº I

OBJETOS EN EL MUNDO

Page 16: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 2

Desarrollo

¿Qué es el código fuente?

Es el código escrito por un programador.

El código debe ser traducido posteriormente a lenguaje binario para ser entendido por

la máquina.

En Greenfoot, utilizaremos el lenguaje de programación Java.

Tipos de Código Fuente

El término código fuente se utiliza para describir el tipo de codificación. Dependerá del

lenguaje de programación que se use, como por ejemplo, HTML, Php, JavaScript o

Java

¿Cómo se organiza el código?

Los códigos en Java son organizados en orden, generalmente por bloques de código.

Los bloques de código inician y finalizan con una llave { }

SEMANA 2

Page 17: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 3

Importe de paquetes de clases

Comentarios

Cáscara de la clase

Definición de atributos

Definición de métodos

Page 18: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 4

Frames

Como haz visto, el código de Greenfoot se encuentra dividido en bloques o frames de

diferentes colores, verde, amarillo y blanco.

Esto nos ayudará a mantener el

código ordenado y entenderlo

rápidamente.

El frame blanco cubre el área de

instrucciones.

El frame verde cubre el área de la

clase.

El frame amarillo cubre el área de los

métodos.

Page 19: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 5

Método act

Como ya hemos visto, en Greenfoot el método act() aparece por defecto al crear una

clase.

Act() es un método con la particularidad de que se repita una y otra vez al momento de

correr tu juego, de forma cíclica.

Observa este código. Se ha agregado el código move(5); dentro del método act.

Lo que se ha indicado aquí es que el personaje al que pertenece este código se mueva

con una velocidad de 5.

Lo que ocurrirá aquí será que, una vez instancies el personaje en el Mundo y corras el

juego, verás que este se mueve hacia la derecha, hasta chocar contra el borde del

Mundo. El método act() se está repitiendo de forma cíclica, es decir, cada vez vuelve a

repetirse el código que está dentro de él, por lo que el personaje se mueve

continuamente, hacia la derecha a la velocidad indicada.

Page 20: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 6

Uso de parámetros

El parámetro es un dato que puede o no venir entre paréntesis en un método. Por

ejemplo, puede ser un nombre, o una cantidad, de la que podremos disponer al

momento de usar el método.

Si te fijas, el método act tiene un paréntesis al final ( ). Todos los métodos tienen ese

paréntesis, que a veces puede estar vacío (cuando hablamos de un método sin

parámetros) o puede contener uno o varios datos (en ese caso, hablamos de un

método con parámetros).

Método sin parámetros

Método con parámetro

El parámetro que se encuentra en el método, tiene primero la palabra int. Cuando

colocamos un parámetro, lo primero que debemos hacer es señalar qué tipo de dato

es. Si es un número entero, se llama int. Si es un valor de tipo alfanumérico, como un

nombre, se llama string. Luego, puedes agregar el nombre del dato, que en este caso,

se llama distancia.

Lo que vemos aquí, es que el dato distancia es de tipo numérico, y que ha sido

utilizado dentro del método para señalar la velocidad a la que se moverá este objeto.

Page 21: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 7

Cuidados de sintaxis e indentación

Es común equivocarse al momento de escribir el código, y encontrarnos con que éste

no funciona.

Puede encontrar incompleto (que falte un punto y coma al final, o que no se encuentra

una llave de cierre).

Para mantener ordenado el código, se coloca una tabulación entre la clase y el método,

o entre el método y la instrucción, como se ve en la imagen. Estos espacios son

llamados indentación.

Page 22: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 8

Compilación

Cuando haz terminado de escribir un código, debes presionar el botón Compilar que

se encuentra en la parte superior izquierda en Greenfoot.

Inmediatamente después, podrá ver en la parte inferior un mensaje que dirá que el

código ha compilado correctamente o que hay un error.

Page 23: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 9

Detalla la Idea

Proceso de compilación

El código fuente escrito por un programador genera un archivo .java

Al compilarlo y estar correcto, se genera el Bitecode archivo .class

Luego, archivo.class es interpretado por la máquina en código binario.

Page 24: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 10

Orden del código fuente

Importación de paquetes de clases:

En la primera línea, vemos un import que permite acceder a clases del sistema

de Greenfoot. Esto significa, como veremos en detalle más adelante, que podremos

colocar métodos en nuestro código que ya se encuentran preparados en Greenfoot y

que nos permitirán lograr nuestros objetivos de manera más rápida y eficiente.

Comentarios de la clase:

En todo código fuente, existe la posibilidad de colocar comentarios. Estos son

indicaciones que deja el programador para mantener el código ordenado y usarlos

como una guía, pero realmente, no producen cambios en el comportamiento de los

objetos, como si no fueran parte del código.

Cáscara de la clase:

La cáscara de la clase es el nombre que se la da a esta línea de código en la

que se encuentra escrito el nombre de la clase, en donde inicia el código para esta

clase.

Atributos de la clase:

Los atributos son datos o variables pertenecientes a esta clase. Al igual que

cuando colocamos un parámetro, se escribe primero qué tipo de dato es (int o string

por ejemplo), y luego se coloca el nombre de la variable. Más adelante, en el código, se

le da el valor a esta variable.

Métodos de la clase:

Finalmente, se encontrarán los métodos, dentro de los frames de color amarillo.

Pueden ser todos los que sean necesarios, y definirán el comportamiento del objeto.

Los métodos pueden ser agregados al código, pero no necesariamente producirán un

efecto. Para eso, es necesario activar o llamar al método. En Greenfoot, el método act()

es el único que se activa automáticamente al correr el juego. Por lo tanto, todo lo que

coloques dentro de act() será lo que ocurra en el juego. Para mantener un orden en el

código, lo que hacemos es crear métodos fuera de act(), y luego, dentro de act()

colocamos una llamada a esos métodos, lo que hará que se activen y comiencen a

funcionar.

Page 25: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 11

Código por defecto y código agregado

Cuando hablamos de código por defecto, nos referimos al código que ya viene en

Greenfoot, el cual nos ayuda a trabajar más rápido que si hiciéramos todo desde cero.

Por ejemplo, el método act() ya viene al momento de crear tus clases. También lo son

los códigos que vienen en el importe de paquetes de clases.

Pero también podemos crear un código desde cero. Cuando queremos agregar

funcionalidad, es necesario agregar nuestro propio código. Instrucciones, atributos,

métodos o llamadas a métodos son códigos que es posible agregar.

Herencia

public class Abeja extends Actor

¿Recuerdas esta línea de código? Esta es la cáscara de la clase que hemos

mencionado anteriormente. Si te fijas, dice extends Actor. Lo que nos está diciendo

esta línea es que la clase Abeja es una clase que extiende de Actor.

Esto señala que la clase Abeja es una especialización de la clase Actor, Abeja

es un tipo de Actor. Significa que Abeja tiene acceso a todos los métodos que se

encuentren dentro de Actor. Por ejemplo, cuando agregamos el código move(5); este

es un método que hace que la Abeja se mueva, pero el código específico se encuentra

en la clase Actor, y solamente lo llamamos desde Abeja. Es decir, cuando escribimos

move(5); solamente estamos activando un método que ya existe, pero que podemos

llamar desde las subclases de Actor.

Actor es una superclase y Abeja es una subclase.

En la imagen, vemos la flecha que señala que

Abeja es una subclase de Actor.

Abeja también es un Actor, que hereda todos los

métodos que provee la superclase Actor.

Page 26: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 12

Llamadas a métodos

En programación, es normal crear nuevos métodos y hacer que a su vez, estos sean

llamados desde otro método.

Esto mejora la calidad del código, haciéndolo más ordenado y legible. Nos da la

posibilidad de utilizar un mismo método varias veces si es que es necesario, en vez de

tener que escribirlo de nuevo cada vez que sea necesario realizar una acción.

Métodos privados y métodos públicos

Los métodos de una clase pueden ser públicos o privados.

El término privado o público se denomina modificador de acceso

Método público:

Significa que quedan disponibles para otras clases del proyecto. Los

métodos pueden ser llamados de una clase a otra.

Ejemplo:

public void girarAbeja()

{

}

Método privado:

Corresponde a los métodos que solo son accesibles dentro de la misma

clase.

Ejemplo:

Private void girarAbeja()

{

}

Page 27: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 13

Demuestra

Ahora veremos de forma práctica lo que hemos aprendido a hacer en Greenfoot.

Cómo crear un escenario nuevo en Greenfoot.

Para crear una escena nueva en Greenfoot, lo primero que debes hacer, una vez

abierto el programa, es click en la pestaña Scenario, que se encuentra en la parte

superior izquierda de la interfaz. Al desplegarse la pestaña, debes elegir la opción New

Java Scenario Aparecerá una ventana nueva, en la que deberás elegir en dónde se

guardará tu nuevo archivo y podrás colocarle un nombre.

Page 28: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 14

Cómo setear la imagen de fondo.

Al crear tu proyecto, lo primero que verás será lo siguiente.

Puedes ver que la clase MyWorld aparece creada por defecto. Si queremos, por

ejemplo, cambiar la imagen de fondo de nuestro escenario, debemos modificarlo dentro

de esta clase, la que está representando el Mundo. Para eso, debes hacer click

derecho sobre MyWorld y seleccionar la opción set Image. Aparecerá una ventana en

la que podrás elegir una imagen. Ya que estamos hablando del fondo del escenario,

deberías seleccionar la imagen de la carpeta que dice Backgrounds.

Crear nuevos actores (clases)

Page 29: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 15

Para crear una clase nueva de tipo actor, que serán los personajes del videojuego,

debes hacer click derecho en la clase Actor . Luego debes elegir la opción New

sublcass. Con esto, estarás creando una clase nueva, que sea una subclase de Actor.

Luego aparecerá una ventana en la que podrás ingresar el nombre de la clase, y

seleccionar una imagen.

Page 30: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 16

Cómo hacer que un objeto se mueva

Lo primero que debes hacer es ingresar al objeto que quieres que se mueva. Para eso,

debes hacer doble click sobre la clase. En una ventana nueva se abrirá el código por

defecto que tiene el objeto.

Para que el objeto se mueva, simplemente debes colocar el siguiente código dentro del

método act()

move(5);

El número que aparece dentro del paréntesis indica la velocidad a la que se

moverá el objeto. Si quieres que se mueva más rápido, debes ingresar un número

mayor. Si quieres que se mueva más lento, debes ingresar un número menor.

En Greenfoot, el movimiento de los objetos está definido por el eje x (horizontal )

y el y (vertical). El eje x comienza al inicio del mundo del lado izquierdo, lo que significa

que irá aumentando hacia la derecha. Por esto, en este caso, el personaje se mueve

hacia la derecha del mundo, aumentando en el eje x. Si por ejemplo, cambiamos el

código a move(-5); el objeto se movería a la misma velocidad hacia el lado izquierdo

del mundo, hasta chocar con el borde.

Page 31: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 17

Cómo hacer que un objeto gire

El código para que un objeto gire es similar al código para que un objeto se mueva:

turn(5);

Al igual que en el anterior, el número en el paréntesis se puede cambiar para elegir la

velocidad a la que gira el objeto. Si es un número positivo, el objeto girará hacia la

derecha, si es un número negativo, el objeto gira hacia la izquierda.

Instanciar un objeto en el escenario

Para crear un objeto en el escenario, simplemente debes hacer click derecho sobre la

clase que quieres colocar en el mundo y elegir la opción new. Verás que en el cursor

del mouse aparece la imagen que haz elegir para tu personaje. Debes mover el mouse

hasta el lugar el mundo en donde quieres dejar a tu personaje y hacer click ahí. Esto

significa que haz instanciado a tu personaje en el mundo. Puedes instanciar a tu

personaje la cantidad de veces que quieras.

Luego puedes hacer click en Run y verás el comportamiento que tiene el

personaje que haz instanciado.

Ahora observa el siguiente código:

Page 32: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 18

isAtEdge() es una función que tiene Greenfoot. Significa “está al borde”. Lo que este

código quiere decir, es que si el objeto está al borde del mundo, se cumple una

condición y entrará al código dentro de ésta, que es girar. Pero si no se cumple la

condición, solamente continuará moviéndose.

Lo que veremos a correr este código es que el objeto se mueve continuamente hacia la

derecha, en una velocidad constante. Pero en el momento en que toca el borde el

mundo, el objeto cambia de dirección. Luego continuar avanzando a una velocidad

constante. Al chocar con otro borde del mundo, volverá a girar, y seguirá repitiendo

este ciclo continuamente.

Esta es una forma de usar las condiciones en programación, logrando que el objeto

tenga diferentes comportamientos de acuerdo a lo que sucede en el juego.

Page 33: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 19

Page 34: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

[Escribir texto]

PARADIGMA ORIENTADO A OBJETOS UNIDAD Nº II

COMPORTAMIENTO DE OBJETOS

Page 35: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

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.

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.

Clase Métodos con

datos aleatorios Objetos

SEMANA 3

Page 36: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

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:

Page 37: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

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

Page 38: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl

Refactorización

Código claro: escribir código con nombres y variables entendibles.

Funcionalmente bien diseñados: Que cumplan la tarea completa.

Métodos breves: Esta técnica también se llama Cohesión.

Page 39: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl

Detalla la idea

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

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

Page 40: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl

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.

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.

Page 41: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

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.

Page 42: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl

Demuestra

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 numero. Cada vez que

llamemos a esta variable, será por

su nombre, numero.

Greenfoot.getRandomNumber(50): Luego indicamos que la variable numero 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

que act se repite. Por esta razón, podemos saber que el movimiento del objeto no

será completamente constante.

Page 43: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl

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 numero

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.

Page 44: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

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.

Page 45: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

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

comportamientoCompleto(), y a su vez, desde este método se hace una llamada al

método probabilidad().

Page 46: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl

Page 47: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl

PARADIGMA ORIENTADO A OBJETOS UNIDAD Nº II

COMPORTAMIENTO DE OBJETOS

Page 48: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 2

Desarrollo

Colisión en los juegos

Existe colisión cuando dos objetos tienen la misma coordenada x e y.

Ambas coordenadas pueden producir un nuevo comportamiento.

Por ejemplo: “Cerdo come manzana”

Comentarios

Muchas veces es necesario comentar nuestro propio código fuente.

Con el fin de describir cuál es la funcionalidad de los componentes de la clase.

Esto servirá para que otros programadores comprendan mejor el código. Incluso a

nosotros mismos.

o Comentarios de línea múltiple

Utilizamos este formato cuando queremos escribir varias líneas de

comentarios:

/**

*Este es el comentario

*de línea múltiple

*/

o Comentarios de línea simple

SEMANA 4

Page 49: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 3

Utilizamos este formato cuando queremos escribir una sola línea de comentario:

//Este es un comentario de línea simple

Planificar programación

o Top-Down

Una estrategia de programación es comenzar de lo más general a lo más particular.

A esta forma de programar se le conoce como Top-Down.

Este diseño consiste en una serie de descomposiciones sucesivas del problema inicial.

o Bottom-Up

Esta estrategia de programación considera diseñar con detalle y luego enlazar

componentes mayores.

A esta forma de programar se le conoce como: Bottom-Up.

Page 50: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 4

Reutilización del código

La reutilización considera invocar los métodos que ya se encuentran escritos.

Si un programa o clase requiere ejecutar el mismo código, sólo se invoca al método

que lo contiene.

Ahorra trabajo y tiempo formando parte de un buen diseño.

El ejemplo muestra como la ClaseA y ClaseC reutilizan el métodoHacer de la ClaseB.

Page 51: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 5

Usuarios

El término usuario hace mención a la persona que utiliza el producto aplicación.

El usuario es la persona final que hará uso de la herramienta.

Normalmente, no tiene acceso al código de programación del lenguaje.

Entrada corresponde al ingreso de datos de parte del usuario hacia la aplicación.

Salida, será los datos procesados por la aplicación produciendo la “información”.

La información ayuda a los usuarios a tomar mejores decisiones dependiendo del

contexto de la aplicación.

Page 52: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 6

Método act

Como hemos visto anteriormente, en Greenfoot el método Act() aparece por defecto al

crear una clase.

Act() es un método con la particularidad de que se repite una y otra vez al momento de

correr tu juego, ejecutándose de forma cíclica.

Page 53: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 7

Detalla la Idea

Detectar colisiones

Como se mencionó, Greenfoot utiliza coordenadas para establecer ubicación de los

objetos.

Podemos generar colisión de los objetos y hacer que produzca un nuevo

comportamiento.

Page 54: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 8

Colisiones en Greenfoot

Observemos este código.

Vemos un método comer(), el cual es invocado desde el método act() de Cerdo.

Utilizando el método getOneObjectAtOffset() señala que las coordenadas de

Cerdo con respecto a la manzana son 0,0 de distancia.

De ser así, entrega el objeto Manzana.

Por otra parte, mundo corresponde a una subclase de World.

Finalmente, se remueve (usando el método removeObject()) el objeto manzana

del mundo.

Este evento hace que se produzca un nuevo comportamiento entre los actores.

Page 55: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 9

Comentarios en Greenfoot

Los comentarios nos permiten documentar nuestro código.

Esto permite aclarar más la codificación.

Los comentarios pueden ir en la cabecera de la firma del método, como líneas

múltiples.

O bien, puedes ser de línea simple con //

Page 56: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 10

Comentarios Javadoc

Como hemos visto, los comentarios nos permiten documentar nuestro código.

Los comentarios javadoc permiten la documentación del código cuando lo agregamos

sobre la firma del método.

Note que son comentarios de línea múltiple.

Page 57: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 11

Visualizar documentación

En el lenguaje Java, existe un archivo llamado Javadoc, el cual se hace a partir de los

comentarios que dejamos en el código, transformándolos en un documento.

En Greenfoot, al hacer click en la parte superior derecha generamos la documentación

Javadoc.

Nuestros comentarios se convierten automáticamente en un documento de nuestro

proyecto.

Este documento nos servirá para futuras consultas técnicas del proyecto.

Page 58: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 12

Planificar Top-Down

Si ponemos la planificación de programación Top-Down en greenfoot, comenzando

desde lo más general a lo particular, iniciaríamos el Fondo desde la clase World.

Posteriormente, comenzaríamos por los actores y sus detalles.

Page 59: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 13

Planificar Bottom-Up

Al contrario, si ponemos la planificación de programación Bottom-Up en Greengoot,

desde lo particular a lo general, comenzaríamos por los actores con detalle.

Posteriormente hasta al código de World.

Page 60: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 14

Reutilizar el código

Reutilizar código permite ahorrar tiempo y trabajo.

Si el código está en un método este puede ser invocado las veces que sea necesario.

De esta manera se evita reescribir nuevamente código que ya existe.

Page 61: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 15

Detectar teclado

En un videojuego, necesitamos detectar el teclado o mouse, que utilizará el jugador

para interactuar.

En la documentación o API de Greentoo existen métodos que facilitan la lectura de las

teclas y click del mouse.

El método isKeyDown() puede leer casi cualquier tecla del teclado estándas.

El método mouseClicked(); en cambio, leerá los click que hagamos en el proyecto.

Page 62: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 16

Leer teclado

El método isKeyDown() puede leer inclusa las flechas de dirección del teclado

(derecha, izquierda, arriba, abajo).

El método mouseClicked(); en cambio, lee mediante el mouse cuando hacen un click

sobre “este” (this) objeto.

De esta forma, podemos darle al jugador el control del personaje.

Page 63: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 17

Este código nos indica que si una tecla

es presionada, la flecha derecha, el

personaje se moverá “5” hacia la

derecha.

En este caso, se indica lo mismo, pero

en dirección a la izquierda al presionar

la flecha a la izquierda.

En este código, se indica que el

personaje se moverá hacia arriba en el

eje Y al presionar la tecla hacia arriba.

Aquí también podemos ver que se

indica lo mismo, pero en dirección hacia

abajo, al presionar la flecha hacia abajo

en el teclado.

En este último código, podemos ver que

se indica que el personaje se moverá al

ocurrir un click en el mouse.

Finalizar un juego

Page 64: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 18

Finalizar un juego requiere utilizar el método estático stop() de Greenfoot.

Al pasar la ejecución del proyecto por esa línea, se detendrá en forma automática.

En el ejemplo, el if pregunta si el

objeto manzana tiene un valor

(distinto de null).

De ser así, se detendrá el juego.

Page 65: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 19

Leer documentación

Al igual que nuestras clases, hemos visto que Greenfoot posee sus propias clases y

métodos.

Pueden ser consultadas en Internet y revisar tanto clases y métodos a las cuales

tenemos acceso a utilizar en nuestros proyectos.

La API de Greenfoot es la documentación oficial de la herramienta.

Page 66: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 20

Demuestra

Vamos a practicar lo que hemos aprendido.

Comenzaremos por crear un nuevo proyecto de Greenfoot, con un Fondo. En este

caso, crea 2 actores, para que podamos hacerlos colisionar entre sí.

Como se ve en la imagen, hemos creado la clase Abeja, y la clase Flor como Actores.

También está la clase Fondo, para el escenario.

Lo primero que debes hacer es entrar al código de la clase Abeja, haciendo doble click

en la clase.

El siguiente es el código que hemos usado para que exista colisión entre la Abeja y la

Flor, haciendo que esta última desaparezca del escenario al momento de ocurrir la

colisión:

Page 67: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 21

Observémoslo paso a paso:

En primer lugar, hemos

agregado este código en

el método act.

En las dos primeras

líneas simplemente le

hemos dado movimiento

(move (1)) y giro (turn(1))

a la clase Abeja, para

que se mueva al momento de correr el juego. En la tercera línea, llamamos a un

método que será creado por nosotros en el código que continúa, el cual es el

encargado de la colisión de los dos objetos.

En segundo lugar, vemos el método que hemos creado, llamado

comportamientoColisión()

Lo que hacemos aquí es llamar a otro método que ya existe en Greenfoot, llamado

getOneIntersectingObject(), que es el encargado de saber cuándo dos objetos han

Page 68: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 22

intersectado. Ya que nos encontramos dentro de la clase Abeja, lo que queremos saber

es si la Abeja ha intersectado con otro objeto, el cual debe indicarse dentro de los

paréntesis, al final del método, en donde dice Flor.class. Es decir, aquí indicamos que

queremos saber si Abeja ha intersectado con la clase Flor.

El método getOneIntersectingObject de Greenfoot nos dará una respuesta, verdadero o

falso. Lo que quiere decir que Actor Flor es igual a verdadero o a falso.

Actor flor = True/false

Por lo que, en la siguiente línea de código, lo que colocamos es una acción que

depende de esta respuesta.

Lo que hacemos aquí es pregunta si Actor flor es nulo (falso). Al colocar el signo de

exclamación ! , indicamos lo opuesto a lo que dice. Es decir, esta línea pregunta si flor

no es igual a nulo. En caso de que no sea nulo, es decir, en caso de que sea

verdadero, ingresaremos a este código.

Lo que indica la siguiente parte del código es que se remueva al objeto flor del

escenario si es que flor no es nulo.

Page 69: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 23

Observando el código de la clase Abeja, nos damos cuenta de que la programación

comienza desde el método act.

Luego, invoca otros métodos, es decir, ejecuta desde aspectos generales a

particulares.

A este concepto se le conoce como Top-Down.

Page 70: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 24

Comentarios

Los cometarios Javadoc son

una manera de documentar

nuestro código de

programación. Para ellos,

escribimos sobre la firma del

método. Se escribe /** luego

presionamos enter y el resto de

los símbolos aparecen por sí

solos.

Es código es ignorado por el

compilador de Java, por lo cual

no se ejecuta.

Page 71: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 25

Para ver nuestros comentarios en un documento o informe, debemos hacer en la parte

superior derecha del código, en donde dice Source Code y elegir la opción

Documentation.

Al elegir esta opción, podremos ver el siguiente documento:

Page 72: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 26

Ahora observa el siguiente código. Hemos agregado un nuevo método con el que

podemos controlar el movimiento usando el teclado.

Con este código,

indicamos que la Abeja

avance hacia adelante

solamente al presionar la

tecla derecha del teclado.

También hemos hecho un

llamado a este método

desde el método act. De

esta forma, podemos

hacer que el personaje

sea controlado por el

jugador.

Page 73: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 27

Por último, vamos a agregar un código para que el juego se detenga al momento de

que la Abeja se coma a la Flor.

Observa el código. Hemos agregado al

final la siguiente línea:

Greenfoot.stop();

Este es un método estático que tiene

Greenfoot, por eso escribimos la palabra

Greenfoot antes del punto. Esto hará que

el juego se detenga. Lo colocamos

después de que se ha removido la Flor del

mundo, para que el juego termine cuando

el jugador se ha comido a la Flor.

Page 74: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 28

Page 75: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl

PARADIGMA ORIENTADO A OBJETOS UNIDAD Nº III

ESTRUCTURAS DE CONTROL

Page 76: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 2

Desarrollo

Organiza la Idea

Métodos constructores

Un método constructor tiene por finalidad inicializar atributos de una clase.

Se escribe exactamente igual a la clase.

Es el primer método que se ejecuta en una clase.

Un constructor en ocasiones podría recibir un valor. De ser así, tiene un parámetro de

entrada.

Los parámetros se declaran en el paréntesis.

El parámetro de entrada servirá para entregar el valor al atributo, estos tienen el mismo

nombre.

La palabra this indica que es el atributo de esta clase y que recibe el valor del

parámetro.

Constructor sin parámetros

Constructor con parámetros

SEMANA 5

Page 77: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 3

Estado inicial de un objeto

Un método constructor inicializa el estado de un objeto.

El estado del objeto es el valor que tienen sus atributos en ese momento.

Esto puede ser muy útil para tener un mejor control inicial de los atributos de nuestra

clase.

Por ejemplo, observa este código. Tiene los atributos girar y

velocidad.

En la parte azul del código, estos atributos inicializan en un

estado. En este caso, girar inicia con valor 10, velocidad inicia

con valor 5.

Add object en Greenfoot

Para agregar un objeto al escenario de Greenfoot utilizamos el método addObject();

Indicamos el objeto y las coordenadas donde queremos que aparezca.

Page 78: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 4

Animar imágenes en Greenfoot

La animación de imágenes permite dar más realismo al personaje.

La técnica clásica de colocar varias imágenes con diferentes posiciones.

En videojuego, el conjunto de imágenes recibe el nombre de: Sprite.

Se crea un objeto de un sprite y luego se actualiza con el método setImage();

Variables de instancia

Una variable de instancia también es llamada miembro de dato.

Está relacionada con la instancia de una clase.

El objeto lleva consigo estas variables que determinan su “estado”.

Page 79: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 5

Private o public

Un atributo y un método pueden presentar un modificar de acceso: público o privado.

Public será cuando creemos que este método debe ser accedido por otros desde otras

clases.

Private cuando consideramos que solo la clase a la que pertenece tiene acceso.

Variables de objetos

Una variable de objeto es producida a partir de una clase.

La palabra new está asociada a esta nueva variable.

El objeto y punto accede a los métodos que generan el comportamiento.

Detalla la idea

Como crear una variable de instancia

Page 80: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 6

Una variable de instancia se declara fuera de un método, a continuación de la cáscara

de la clase.

Las variables son declaradas con visibilidad privada de manera que para cambiar el

valor se hará dentro de un método.

Esto conlleva el concepto llamado “Encapsulamiento”.

Variable de instancia

Page 81: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 7

Encapsulamieno

Normalmente, las variables de instancia permanecen encapsuladas.

Definidas como privadas en la clase y

ocultas dentro de métodos.

La idea es ocultar los detalles de la

clase frente a las demás.

Como ventaja da al programar más

libertad en la implementación de los

detalles de un sistema.

Constructor de la clase.

Como sabemos, los constructores inicializan el estado de un objeto.

Es el primer método en ejecutar al

momento de instanciar.

Un constructor se escribe público y

con el mismo nombre de la clase.

En la imagen apreciamos como las

variables de instancia son

inicializadas.

Métodos constructores

Page 82: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 8

Hemos visto que los constructores

inicializan el estado de un objeto.

Cuando instanciamos un objeto

podemos hacerlo con datos

iniciales en un constructor sin

parámetros.

Cuando necesitamos instanciar un

objeto con datos ingresados

agregamos parámetros en el

paréntesis del constructor.

Intercalar imágenes

Greenfoot incluye código que hace

posible trabajar las imágenes para dar el efecto de movimiento.

Para ello necesitamos algunas imágenes secuenciales también llamadas “sprite”.

Estas imágenes las agregamos en la carpeta image de nuestro proyecto.

Para intercalar las imágenes debemos definirlas como variables de instancia.

Luego instanciar objetos de cada imagen.

Page 83: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 9

Para mostrarla, debemos invocar el método setImage();

En el ejemplo, un if pregunta si la tecla flecha a la derecha ha sido presionada, de ser

así, moverla (velocidad 5), con la imagen 2,

El comportamiento del objeto Iron irá cambiando de acuerdo a la tecla presionada.

Define variables de imágenes

Instancia objetos con las imágenes

Muestra la imagen

Page 84: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 10

Variable de objeto en la imagen

Para intercalar las imágenes debemos definirlas como variables de instancia

Estas variables son llamadas también como variables de objetos.

Variables de objetos debido a que en el método constructor utiliza la palabra new para

instanciar un objeto de la imagen.

Page 85: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 11

Demuestra

Vamos a practicar lo que hemos aprendido.

Comienza por crear un nuevo escenario de java en greenfoot, con un fondo y un actor.

Ahora, entremos al código del actor para comenzar a modificarlo.

Observa el siguiente código:

Una variable de instancia contiene un valor que define el estado del objeto.

Un método puede definir y recibir un parámetro de entrada y luego pasar el valor a la

variable de instancia.

Una variable de instancia puede ser usada en todos los métodos de la clase que lo

requieran.

Ahora observa lo que ocurre cuando

instancias la clase en el escenario.

Aparece una ventana, en la que debes

ingresar un número.

Page 86: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 12

Observemos el código nuevamente.

Encontramos que existe un constructor. Un constructor es un método que se escribe

con el mismo nombre de la clase.

Un método

constructor sólo se

ejecuta una vez y al

inicio de la ejecución

puede recibir uno,

muchos o ningún

parámetro.

Los parámetros, como

hemos visto, son

asignados a las variables de instancia marcadas con this.

Page 87: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 13

Ahora veamos cómo hacer un personaje, cuyos movimientos sean animados.

Para comenzar, necesitamos buscar un grupo de imágenes que funcionen como una

animación. Debes estar recortadas en formato png y debes agregarlas a la carpeta

“images” de tu proyecto de Greenfoot. Así estarán listas para usarlas.

Para crear a tu personaje animado, lo siguiente que debes hacer es crear una nueva

clase. Esta vez, debes

elegir una de las imágenes

que ha guardado al

momento de crearlo, y

darle un nuevo nombre.

Page 88: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 14

Ya que haz creado a tu personaje, entra al código haciendo doble click en la clase.

Lo primero que haremos, será

crear 3 variables antes del

método act, con los nombres

imagen1, 2 y 3. Estas variables

serán las que contendrán las 3

imágenes que queremos que

tenga el personaje.

Luego, dentro del

método act,

indicamos cuáles

serán las

imágenes que

estarán

contenidas en las

variables que ya

creamos. Esto es

lo que se ve en las 3 primeras líneas de código.

En la línea siguiente, indicamos que el personaje aparecerá con la imagen1 primero.

Y por último, hacemos un llamado al método mover, que se explica más adelante.

Page 89: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 15

En el método mover, primero se coloca una if, indicando que el código sólo se activará

al presionar la flecha derecha del teclado.

Luego, al entrar al

if, lo primero es que

el personaje tiene

un movimiento de

velocidad 5. Lo

siguiente, es que la

imagen del

personaje cambia

por la segunda

imagen. Luego,

llamamos a un

método delay, que

hace una espera antes de cambiar a la imagen siguiente. Y así es como las imágenes

se van alternando con una pequeña pausa entre sí.

Esto hace el efecto de un personaje animado.

Este es el código completo.

Page 90: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 16

Page 91: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl

PARADIGMA ORIENTADO A OBJETOS UNIDAD Nº III

ESTRUCTURAS DE CONTROL

Page 92: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 2

Desarrollo

Estado en Greenfoot

El estado es un concepto que está relacionado con el valor que tiene el objeto.

Las variables de instancia son las que toman el valor y dan el estado al objeto.

Estado complementado con comportamiento

El comportamiento de un objeto puede ir variando en el transcurso de la ejecución del

proyecto.

El estado-el valor del objeto- puede afectar el comportamiento.

Veamos el siguiente ejemplo.

Un parámetro con el mismo nombre de la variable de instancia es evaluada. Si cumple

la condición mayor que cero, se suma a la velocidad actual.

La palabra this hace referencia a la variable de instancia declarada al principio de la

clase.

SEMANA 6

Page 93: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 3

Diferencias entre = y ==

Existen diferencias notorias entre = y ==

En java, usamos = para asignar un valor a una variable.

El primer recuadro asigna 5 a

la variable velocidad.

Por otra parte, el signo ==

significa igualdad.

Por otra parte, el signo ==

significa igualdad.

En el ejemplo del segundo

recuadro, la condicionante if

pregunta si velocidad es igual

a 0.

Usando código if –else de Java, es posible cambiar el flujo de la ejecución de un

proyecto.

El if hace una pregunta (si velocidad es mayor que cero) si la respuesta es verdadera,

ejecuta un bloque de código.

Page 94: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 4

Si la respuesta del if es false, ejecuta el bloque else.

Con esto, el flujo de bifurcación afectará

comportamiento dependiendo de una

condicionante.

Flujo de bifurcación con if-else

Al llevar la lámina anterior al código, apreciamos

que existe una bifurcación del flujo a seguir.

Dependerá de la respuesta que genere el if

Si la respuesta es verdadera, ejecuta el primer

bloque de código entre llaves.

Si la respuesta es falsa ejecuta el bloque else

restando 1 a velocidad.

Desde una subclase de World

podemos codificar métodos que

permitan el conteo de elementos del

escenario. comerManzana aparece

como una variable de instancia de

una clase Fondo.

Si encuentra un objeto de la clase

Manzana, invoca el método comer y

suma 1 a la variable comerManzana.

Page 95: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 5

Detalla la idea

Creando un contador

En este ejemplo, un contador es una variable que nos permitirá contabilizar las

manzanas a comer.

Un contador es declarado como variable de instancia de esta manera, para ser usada

en los métodos de la clase.

El if evalúa presionar la tecla flecha derecha, mueve 5 y luego invoca al método

comer().

Page 96: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 6

Agregar contador

Continuando el código anterior, manzana obtiene un objeto si las coordenadas 0, 0

coinciden.

Luego if pregunta si es distinto de null, es decir, si manzana tiene un valor asignado.

De ser así, remueve el objeto manzana, ejecuta un sonido con el método playSound.

Suma 1 al contador. La idea que cuenta el número de manzanas que come el

personaje (clase Cerdo).

El signo = en el contador significa asignación donde contador es actualizado con la

suma +1.

Un segundo if pregunta si contador es igual (==) a 10. De ser así, ejecuta un archivo de

sonido “felicitaciones.wav” al método comer().

Page 97: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 7

Flujo de bifurcación

Revisemos los if del método comer.

Las estructuras if pueden presentar bifurcación en el flujo del código.

El primer if como hemos revisado, pregunta si la variable actor de manzana tiene un

valor.

Si tiene un valor remueve el objeto manzana.

El segundo if pregunta si la variable contador es igual a 10. Si la respuesta es

verdadera, ejecuta el archivo de audio felicitaciones.wav y luego detiene la ejecución.

Si l respuesta del if es falsa, ejecuta el bloque else acciona un archivo de audio

comer.wav y suma 1 al contador.

Con esto, confirmamos que la estructura if varía la bifurcación del flujo de la ejecución.

Page 98: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 8

Contar objetos del mundo

Contar objetos puede ser de utilidad si pensamos en que puede afectar el

comportamiento de objetos.

Tal como revisamos en el ejemplo anterior, una variable contador suma 1 por cada

“manzana” comida.

Por lo tanto, es el contador que nos indica la cantidad de objetos.

Page 99: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 9

Mostrar puntajes

Desde una subclase de World instanciar (new) objeto de una clase Contador.

Luego agregarlo al fondo con el método addObject en las coordenadas 100, 40

Page 100: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 10

Mostrar datos de puntaje

La clase Contador como subclase de Actor tiene una variable puntaje.

El método setImage muestra el título Puntaje con el tamaño y color.

Null significa que el texto no tendrá color de fondo.

Para usar estos parámetros descritos se debe importar el paquete de clases java.awt

en la cabecera del archivo.

Page 101: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 11

Demuestra

Vamos a practicar lo que hemos aprendido.

Para comenzar, crea un escenario nuevo en Greenfoot, con una Fondo y una Clase.

Luego, entra al código de la clase que hayas creado.

Lo primero que haremos será crear un Contador. Para esto comenzamos agregando el

código public int contarDistancia antes del método act, en la clase, como se ve en la

siguiente imagen.

Con esto, hemos creado una variable que usaremos para contar.

Page 102: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 12

Ahora, vamos a crear el método avanzar, para darle movimiento al personaje y,

además, contar la distancia que avanza, usando el contador. Así debe ser el código:

Con esto, hemos creado el método avanzar y le hemos hecho un llamado desde el

método act,, para activarlo.

Page 103: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 13

Sólo nos falta una cosa. Debemos crear un constructor el cual le dará un estado inicial

a la variable contarDistancia que habíamos creado. Recuerda que la variable existe,

pero el programa aún no sabe cuál es su valor. Con el siguiente código, le indicamos

que el valor de la variable comienza en 0.

Fíjate que hemos agregado el

constructor arriba del método

act, y ya le hemos dado un

valor inicial a la variable

contarDistancia.

Observemos de cerca el código

que hemos creado. Ya

sabemos que creamos la

variable, y que le dimos un valor

de inicio. Lo siguiente que nos

indica el código, es que cada

vez que el jugador presiona la

tecla derecha, el personaje

avanzará con velocidad 5 y,

además, la variable

contarDistancia tendrá un

aumento de 1.

Cuando tengas tu código listo, presiona el botón compile y asegúrate de que está

escrito correctamente. Luego, haz una prueba de tu juego. Lo que debe ocurrir, es que

el personaje se mueva cada vez que presiones la tecla derecha en el teclado. Aún no

podemos ver el contador, aunque ya lo hemos creado.

Lo siguiente que debemos hacer, es agregar un contador en pantalla, para que

podamos ver el avance del personaje. Para eso, entra de nuevo al código de la clase.

Necesitamos cambiar un pequeño detalle del código.

Page 104: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 14

Para poder usar la variable contarDistancia que ya creamos en otras clases, la

cambiaremos por una variable de tipo estática. Para eso, solamente debes cambiar el

código public int contarDistancia por public static int contarDistancia.

Ahora que nuestra variable es de tipo estática, compila ese código y abre el código de

la clase MyWorld o la que hayas creado para el Fon del escenario.

Verás que esta clase, a diferencia de los actores, no tiene un código act por defecto.

Pero eso no importa, ya que puedes crear el tuyo propio.

Luego, colocaremos el código para que mostrar texto en pantalla, como se ve en la

siguiente imagen

Page 105: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 15

Ahora puedes compilar tu código, y hacer una prueba de nuevo de cómo está

funcionando tu juego. Verás que, al momento de mover a tu personaje, aparece un

contador, sumando la distancia que avance.

Page 106: PARADIGMA ORIENTADO A OBJETOS - IPLACEXbiblioteca.iplacex.cl/MED/Paradigma orientado a objetos.pdf8 ¿Qué es paradigma orientado a objetos? Es una forma de codificación que se popularizó

www.iplacex.cl 16