0% encontró este documento útil (0 votos)
34 vistas35 páginas

JF 3 5 SG Esp

El documento aborda conceptos fundamentales de Java, incluyendo la creación de comportamientos aleatorios y el uso de constructores. Se explica cómo utilizar el método getRandomNumber() para generar números aleatorios y la notación de puntos para acceder a métodos de clases. Además, se discuten operadores de comparación y la implementación de sentencias if-else para controlar el flujo del programa.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
34 vistas35 páginas

JF 3 5 SG Esp

El documento aborda conceptos fundamentales de Java, incluyendo la creación de comportamientos aleatorios y el uso de constructores. Se explica cómo utilizar el método getRandomNumber() para generar números aleatorios y la notación de puntos para acceder a métodos de clases. Además, se discuten operadores de comparación y la implementación de sentencias if-else para controlar el flujo del programa.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

1

Java Fundamentals
3-5
Selección aleatoria y constructores

Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados.

2
Objetivos
• En esta lección se abordan los siguientes objetivos:
−Crear comportamientos asignados de forma aleatoria
−Definir operadores de comparación
−Crear sentencias de control if-else
−Crear una instancia de una clase
−Reconocer y describir la notación de puntos

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 3

3
Método getRandomNumber()
• El método getRandomNumber() es un método estático
que devuelve un número aleatorio entre cero y un
límite de parámetro
• Este método se utiliza para eliminar la previsibilidad en
el programa
• Firma de método:

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 4

La selección aleatoria nos permite crear juegos que variarán en cada partida y, por lo tanto, son
más divertidos.

Los métodos estáticos son métodos que pertenecen a una clase en lugar de a una instancia.
Esta idea no resultará fácil de entender llegados a este punto, pero ya los ha utilizado en el
método isKeyDown. Se explicará la diferencia más adelante en el curso.

4
Notación de puntos
• Las nuevas subclases que se crean no heredan el
método getRandomNumber()
• Este método debe llamarse desde la clase Greenfoot
mediante la notación de puntos
• Ejemplo:

Cuando quiera usar un método no heredado por la clase que está


programando, especifique la clase u objeto que contiene el método
antes del nombre del método, seguido de un punto y del nombre del
método. Esta técnica se denomina notación de puntos.

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 5

Para acceder al método getRandomNumber, debemos indicar a java que puede encontrarse en
la clase Greenfoot. Por lo tanto, debemos escribir Greenfoot.getRandomNumber().

5
Formato de la notación de puntos
• El formato para el código de la notación de puntos
incluye:
−Nombre de la clase u objeto al que pertenece el método
−Punto
−Nombre del método al que se llama
−Lista de parámetros
−Punto y coma

className.methodName (parameters);
objectName.methodName (parameters);

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 6

Al hacer referencia a la clase que estamos codificando, podemos utilizar la palabra opcional
"this" para representar la clase actual. Así pues, cuando anteriormente utilizamos move(2),
podríamos haber dicho this.move(2).
"This" representa el objeto para el que estamos editando el código, pero es opcional y suele
omitirse.

6
Ejemplo de notación de puntos
• Método getRandomNumber() que se muestra a
continuación:
−Llama a un número aleatorio entre 0 y hasta 15 (sin incluirlo)
−Devuelve un número aleatorio entre 0 y 14

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 7

Greenfoot.getRandomNumber(15) significa que devolverá uno de los 15 números aleatorios


entre el 0 y el 14.

¿Qué sucedería si deseásemos un número aleatorio entre el 1 y el 10? Podemos usar


simplemente Greenfoot.getRandomNumber(10)+1;

7
API de Greenfoot
• Consulte la interfaz de programadores de la aplicación
Greenfoot (API) para examinar métodos adicionales
para la llamada mediante la notación de puntos

La API de Greenfoot muestra todos los métodos y clases


disponibles en Greenfoot.

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 8

8
Pasos para ver métodos en la clase Greenfoot
• En el entorno de Greenfoot, seleccione el menú Help.
• Seleccione Greenfoot Class
Documentation

• Haga clic en la clase de Greenfoot


• Revise las firmas y las descripciones del método

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 9

9
Interfaz API de Greenfoot

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 10

Al crear actores, se hereda de la clase Actor.


Al crear mundos, se hereda de la clase World. Merece la pena conocer qué métodos están
disponibles en ambos.

10
Operadores de comparación
• Utilice operadores de comparación para comparar un
valor de selección aleatoria con otro valor en una
sentencia de control
• El siguiente ejemplo determina si el número aleatorio
es inferior a 20
• Si es así, el objeto gira diez grados

Los operadores de comparación son símbolos que comparan dos valores.

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 11

Recuerde que el método getRandomNumber(100) generará un número entre 0 y 99.

11
Símbolos del operador de comparación
Símbolo Descripción
< Menor que
> Mayor que

<= Menor o igual que

>= Mayor o igual que


== Igual
!= Distinto de

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 12

Un error común al realizar una comparación de iguales consiste en agregar solamente un signo
de igual "=". Este, a continuación, intenta asignar el segundo valor al primero y, en la mayoría
de los casos, genera un error de sintaxis.

12
Problema del juego solucionado con el
comportamiento aleatorio
• Problema:
−Un objeto mosca debe moverse de forma aleatoria, de modo
que sea más difícil para el objeto controlado por el teclado,
una abeja, atraparlo
• Solución:
−La mosca debe girar un poco mientras se mueve
−Para codificar esta solución, gire la mosca un número de
grados aleatorio, hasta 20 grados (un 10% del tiempo
mientras se mueve)

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 13

13
Formato de comportamiento aleatorio
• La siguiente sentencia de programación incluye:
−Sentencia de control IF con el método getRandomNumber()
• Límite de parámetro de 100
• Operador de comparación <
• Número 10 para limitar el rango de valores de devolución de 0-9
−Cuerpo del método con la sentencia para indicar que el
objeto debe girar un máximo de 20 grados si la condición es
true

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 14

14
Formato de comportamiento aleatorio
• El problema con el ejemplo anterior es que la mosca
siempre gira de forma circular hacia la derecha
• Podemos cambiarlo modificando el parámetro en el
método de giro, tal y como se indica a continuación
• De este modo se generará un número aleatorio entre
-45 y +44
• Recuerde que un valor de giro negativo gira hacia la
izquierda

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 15

Puede utilizar unos cuantos números aleatorios de su elección para probar la lógica del
movimiento de la mosca utilizando un papel y un lápiz si no está convencido del rango que se
obtendrá.

15
Comportamiento condicional
• Las instancias pueden programarse para realizar
comportamientos específicos si no se cumple una
condición, mediante una sentencia if-else
• Por ejemplo, si se programa una instancia para que gire
el 6% del tiempo, ¿qué hace el 94% del tiempo
restante?

Una sentencia if-else ejecuta su primer segmento de código si


se cumple una condición, y el segundo segmento de código si una
condición no se cumple, pero no ambas.

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 16

Debemos decidir si necesitamos dos sentencias IF o una sentencia if-else. Si desea que las dos
secciones del código se puedan ejecutar, tenemos dos sentencias IF. Si solo desea que se
ejecute una o la otra, se debe utilizar la sentencia if-else.

16
Ejecución de la sentencia if-else

Evaluar
la
Verdadero condición Falso

Ejecutar la Ejecutar la
sentencia IF sentencia ELSE

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 17

En una sentencia IF – ELSE, solo se ejecutará una de las sentencias de código.

17
Formato de la sentencia if-else

if (condition)
{
statements;
}
else
{
statements;
}

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 18

Tenga en cuenta que no aparece el punto y coma después del paréntesis de un comando IF.

18
Ejemplo de sentencia if-else
• Si se selecciona un número aleatorio entre 0-6, se gira
10 grados
• De lo contrario, se gira 5 grados

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 19

19
Automatizar la creación de instancias
• Con la subclase World, las instancias de actor se
pueden programar para que aparezcan
automáticamente en el mundo cuando se inicializa un
escenario
• En Greenfoot, el comportamiento por defecto para las
instancias es el siguiente:
−La instancia de la subclase World se agrega automáticamente
al entorno tras la compilación o inicialización del escenario
−El jugador debe agregar manualmente las instancias de la
subclase Actor

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 20

Más adelante veremos que existe un método más rápido mediante el comando "Save the
World".

20
Automatizar la creación de instancias en un escenario
• Problema:
−Cuando se inicia un escenario Greenfoot (como hojas y
vombátidos), el jugador debe agregar manualmente las
instancias para jugar la partida

• Solución:
−Programe las instancias para que se agreguen
automáticamente al mundo cuando se inicializa el escenario

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 21

21
Código fuente de la clase World
• El nombre por defecto de la subclase World es
MyWorld

• Para identificar claramente el valor World actual,


puede que sea útil cambiar el nombre
• Actualice todas las incidencias de MyWorld en el
código fuente
a BeeWorld

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 22

22
Código fuente de la clase World
• Para entender cómo se debe automatizar la creación
de instancias Actor, es necesario que entienda cómo se
estructura el código fuente de la clase World
−El constructor World se utiliza para automatizar la creación de
las instancias Actor cuando se inicializa el escenario

Cabecera de la clase

Comment
Constructor

Constructor
JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 23

Un constructor se define normalmente por


public <nombre de la clase>( )
En el ejemplo anterior tenemos public BeeWorld()

23
Constructores
• Constructores:
−Definen el tamaño y la resolución de la instancia
−No tienen un tipo de retorno
−Tienen el mismo nombre que el nombre de la clase. Por
ejemplo, un constructor World tiene el nombre World

Un constructor es un tipo especial de método que se ejecuta


automáticamente cuando se crea una instancia nueva de una clase.

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 24

Se analizarán los constructores en mayor detalle más adelante, pero proporcionan un


mecanismo excelente para configurar valores por defecto para sus campos de clase en la
instancia de objeto.

24
Ejemplo de constructor World
• El constructor del siguiente ejemplo construye la
instancia de la superclase World de la siguiente
manera:
−Tamaño: x = 600, y = 400
−Resolución: 1 píxel por celda
−La palabra clave super en el cuerpo del constructor llama a la
superclase World para cada instancia de la subclase
BeeWorld

Size

Resolución

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 25

Podemos modificar fácilmente los valores del mundo aquí. Una vez cambiados, el escenario
reflejará el nuevo tamaño tras una compilación.

25
Crear automáticamente instancias Actor
• Este constructor World agrega un nuevo objeto Bee en
coordenadas X e Y especificadas mediante el método
addObject()

X Y

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 26

Como el constructor BeeWorld() solo se llama cuando se crea BeeWorld, este código solo se
ejecuta una vez.

26
Método addObject()
• El método addObject() es un método de clase World
que agrega un nuevo objeto al mundo en coordenadas
x e y específicas
• Incluye:
−La palabra clave new para indicar a Greenfoot que cree un
nuevo objeto de una clase específica
−Parámetros de método:
• Objeto con nombre desde la clase Actor
• Valor entero de la coordenada X
• Valor entero de la coordenada Y
• Definición de método:

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 27

Al llamar a new <nombre de la clase>(), busca un constructor para esa clase. Si no existe
ninguno, usa los valores de campo de clase por defecto con el tipo por defecto, es decir, los
números enteros se convierten en 0

27
Palabra clave new
• La palabra clave new crea nuevas instancias de clases
existentes
• Comienza con la palabra clave new, seguida del
constructor al que llamar
−La lista de parámetros transfiere los argumentos (valores) al
constructor que son necesarios para inicializar las variables
instancia del objeto
−El constructor por defecto tiene una lista de parámetros vacía
y define las variables de la instancia del objeto en sus valores
por defecto

new ConstructorName()

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 28

Si no se define ningún constructor para sus clases, el compilador Java genera uno por defecto.
No lo verá en el código.

28
Sistema de coordenadas World de Greenfoot

0 X
0

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 29

La parte superior izquierda es el punto (0,0) y la inferior derecha corresponde a las dimensiones
del mundo.

29
Ejemplo de cómo agregar objetos mediante el
constructor World

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 30

Podemos ver cómo se crea una nueva instancia de la clase Bee y se posiciona en el punto (150,
100).

30
Save the World
• Greenfoot tiene otra forma de configurar la ubicación
inicial de los actores mediante "Save the World"
• Podemos colocar nuestros actores en el mundo de
forma manual en una posición inicial
• A continuación, seleccione Tools -> Save the World

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 31

31
Save the World
• Crea un nuevo método en su mundo denominado
prepare() y crea una llamada a este método dentro del
constructor
• El método prepare() creará instancias del actor y, a
continuación, las agregará al mundo en la ubicación en
la que las colocó
• Resulta útil si tiene que colocar muchos objetos

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 32

Bee bee = new Bee() crea una nueva instancia Bee a la que se puede acceder a través de la
variable de referencia denominada bee. Recordar que Java es sensible a mayúsculas y
minúsculas, por lo que Bee y bee se tratan de forma diferente. Por lo tanto, en lugar de decir
addObject (new Bee(), 100,100), se sustituye por
Bee bee = new Bee();
addObject(bee, 100,100);
De este modo se nos ofrecen otras opciones que analizaremos más adelante.

32
Terminología
• Términos clave que se han utilizado en esta lección:
−Operadores de comparación
−Constructor
−Notación de puntos
−Palabra clave new

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 33

33
Resumen
• En esta lección, debe haber aprendido a:
−Crear comportamientos asignados de forma aleatoria
−Definir operadores de comparación
−Crear sentencias de control if-else
−Crear una instancia de una clase
−Reconocer y describir la notación de puntos
−Función Save the World

JF 3-5
Selección aleatoria y constructores Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 34

34
35

También podría gustarte