SlideShare una empresa de Scribd logo
3
La abstracción se puede definir de varias formas. Nos centraremos en la idea de alejarnos de una función
específica para adoptar una más general.
Piense en abstracción como el proceso de pasar de una tarea más específica a una tarea más general. Por
lo tanto, en lugar de llamar a un constructor que siempre realice las mismas tareas, podríamos transferir
valores que nos permitieran cambiar la configuración inicial.
4
Ya hemos comenzado a realizar la abstracción mediante la creación de nuestros propios métodos y
constructores.
5
Cuando escriba código fuente y compruebe que algo que está escribiendo es muy parecido a otro código
que ha escrito, debe comprobar si puede abstraer su finalidad a otro método. A continuación, llámelo
desde las ubicaciones correctas. A continuación, producirá código que es más fácil de mantener.
6
Podríamos haber escrito
Fly fly1 = new Fly();
fly1.setSpeed(4); // un método definido
fly1.setRotation(90);
Tendríamos que repetir el código anterior para cada mosca. Al abstraer su propósito al constructor, reduce
en gran medida la repetición.
7
El equipo de programación de Greenfoot ha creado métodos para que la tarea de desarrollo le resulte más
sencilla. Puede abstraerlo aún más para que sea más potente.
8
Modificará con frecuencia constructores para que pueda transferirles la información inicial.
9
public void increaseScore(int value) {
score = score + value;
}
Podríamos llamarlo desde un área como increaseScore(5) y desde otra área como increaseScore(10).
10
Sumamos 1 a la velocidad porque getRandomNumber() puede devolver un 0. Una mosca con una velocidad
de cero es muy fácil de atrapar.
11
Si desea cambiar la velocidad, el giro, etc. durante un juego, debe crear una variable de clase para
almacenar el valor actual.
12
De este modo, se agregará una mosca en las coordenadas (150,150) con una velocidad máxima aleatoria de
2 a partir de una dirección de 90 grados.
13
Ahora se están agregando 4 moscas, cada una de ellas con una velocidad aleatoria máxima, una dirección
inicial y un punto de partida distinto. Todas ellas con solo 4 líneas de código en el constructor BeeWorld.
14
Escribir líneas de código que presiente que se han escrito anteriormente suele ser el detonante de la
abstracción.
15
16
Creamos 10 moscas, cada una con una dirección y posición aleatorias en la pantalla.
Esto se realiza mediante un bucle for. El bucle for ejecutará el código entre paréntesis un número
determinado de veces. En este ejemplo hay 10 bucles. Nos centraremos en los bucles a medida que avance
el curso.
Podríamos aumentar la velocidad máxima de las moscas, ya que el juego hace que sea cada vez más difícil
atraparlas.
17
Si va a contar con actores que comparten funcionalidades, es mejor crear una subclase de actor, agregar la
funcionalidad y, a continuación, crear una subclase de esa clase. Recuerde que la clase Movement puede
contener varias subclases.
18
private static final int SPEED= 4
Crea una clase constante que podemos utilizar en nuestro código. Su ventaja es que se hace que nuestro
código más legible al utilizarlo y también nos permite cambiar un valor para aumentar la velocidad de todos
los actores que la usan.
19
setLocation() mueve un actor sin tener que cambiar su giro. En algunos casos, es mejor que move() y
rotate(). En el ejemplo, deseamos que un bebé se mueva por la pantalla. No queremos que gire, sino que
esté siempre erguido, pero que se siga moviendo por la pantalla en distintas direcciones.
20
Si el bebé se movió en una dirección tras estar en contacto con otro actor, también podríamos llamar a este
método en esta ubicación.
if (leftBump()) {
moveLeft();
}
21
En algunos escenarios, no tendrá que preocuparse por las acciones que se producen lejos de los actores
principales, pero en otros juegos tendrá que supervisarlos constantemente.
22
En algunos escenarios, no tendrá que preocuparse por las acciones que se producen lejos de los actores
principales, pero en otros juegos tendrá que supervisarlos constantemente.
23
Tenga en cuenta que hemos mantenido la puntuación de propiedad en privado, de modo que ningún actor
ajeno a BeeWorld tenga acceso directo a la misma. Deben utilizar los métodos públicos getScore() y
updateScore().
24
Conversión es un término con el que le va a resultar muy familiar durante este curso.
25
No podemos convertir todo lo que deseemos para que sea algo diferente. Debe existir una relación como
entre World y BeeWorld o Actor y Bee. No podríamos convertir World en Actor, por ejemplo.
26
Debe tener en cuenta que esto es muy similar a nuestro último ejemplo. Creamos un campo de clase
privada para almacenar el tipo de datos a los que deseamos acceder. A continuación, creamos un método
público para devolver este valor.
27
BeeWorld myworld = (BeeWorld)getWorld();
Esta línea obtiene una referencia al mundo actual y la almacena en la variable myworld. Puesto que el tipo
de retorno de getWorld es World, tenemos que convertirlo en un tipo BeeWorld.
Bee bee = myworld.getBee();
Estas líneas crean una variable bee que hará referencia a la abeja que devuelve nuestro método getBee();
Una vez que tenemos esta referencia, podemos utilizar la abeja que se ha devuelto para acceder a métodos
de la instancia Bee.
Usamos los métodos getX() y getY() de la instancia Bee en el método de actor turnTowards. Esto significa
que la araña siempre girará para estar frente a la instancia Bee en el mundo.
28
29
30
Pra9

Más contenido relacionado

Similar a Pra9 (17)

Greenfoot 6
Greenfoot 6Greenfoot 6
Greenfoot 6
 
Jf 3 6_sg_esp(3) 6
Jf 3 6_sg_esp(3) 6Jf 3 6_sg_esp(3) 6
Jf 3 6_sg_esp(3) 6
 
Jf 3 6_sg_esp(3)
Jf 3 6_sg_esp(3)Jf 3 6_sg_esp(3)
Jf 3 6_sg_esp(3)
 
Greenfoot 6
Greenfoot 6Greenfoot 6
Greenfoot 6
 
CAPITULO 6 DE GREENFOOT
CAPITULO 6 DE GREENFOOTCAPITULO 6 DE GREENFOOT
CAPITULO 6 DE GREENFOOT
 
Greenfoot 6
Greenfoot 6Greenfoot 6
Greenfoot 6
 
Pra6
Pra6Pra6
Pra6
 
Capitulo 6
Capitulo 6Capitulo 6
Capitulo 6
 
Jf 3 6_sg_esp(3)
Jf 3 6_sg_esp(3)Jf 3 6_sg_esp(3)
Jf 3 6_sg_esp(3)
 
Capitulo 5 greenfoot
Capitulo 5 greenfootCapitulo 5 greenfoot
Capitulo 5 greenfoot
 
Greenfoot 5
Greenfoot 5Greenfoot 5
Greenfoot 5
 
Greenfoot 5
Greenfoot 5Greenfoot 5
Greenfoot 5
 
Greenfoot 5
Greenfoot 5Greenfoot 5
Greenfoot 5
 
Jf 3 5_sg_esp(2)(3)
Jf 3 5_sg_esp(2)(3)Jf 3 5_sg_esp(2)(3)
Jf 3 5_sg_esp(2)(3)
 
Capitulo 5
Capitulo 5Capitulo 5
Capitulo 5
 
Jf 3 5_sg_esp(2)(3) 5
Jf 3 5_sg_esp(2)(3) 5Jf 3 5_sg_esp(2)(3) 5
Jf 3 5_sg_esp(2)(3) 5
 
Greenfoot 5
Greenfoot 5Greenfoot 5
Greenfoot 5
 

Más de HUGOJAREDSANCHEZMARTINEZ (20)

Practicas de html
Practicas de htmlPracticas de html
Practicas de html
 
Las diversas topologias_de_red
Las diversas topologias_de_redLas diversas topologias_de_red
Las diversas topologias_de_red
 
Las características y las partes que debe tener un sitio web
Las características y las partes  que debe tener un sitio web Las características y las partes  que debe tener un sitio web
Las características y las partes que debe tener un sitio web
 
La teoria del_color_por_hugo_jared
La teoria del_color_por_hugo_jaredLa teoria del_color_por_hugo_jared
La teoria del_color_por_hugo_jared
 
Practica14 (1)
Practica14 (1)Practica14 (1)
Practica14 (1)
 
Practica13
Practica13Practica13
Practica13
 
Practica 12
Practica 12Practica 12
Practica 12
 
Practica 11
Practica 11Practica 11
Practica 11
 
Practice alice 10
Practice alice 10Practice alice 10
Practice alice 10
 
Practica 9
Practica 9Practica 9
Practica 9
 
Practica 8
Practica 8Practica 8
Practica 8
 
Practica 7
Practica 7Practica 7
Practica 7
 
Practica6
Practica6Practica6
Practica6
 
Practica4
Practica4Practica4
Practica4
 
3 practica
3 practica3 practica
3 practica
 
2 practica
2 practica2 practica
2 practica
 
Tarea
TareaTarea
Tarea
 
Pra10
Pra10Pra10
Pra10
 
Pra8
Pra8Pra8
Pra8
 
Pra7
Pra7Pra7
Pra7
 

Último

corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfYolandaRodriguezChin
 
diagnostico final (1). analisis - encuestas
diagnostico final (1). analisis - encuestasdiagnostico final (1). analisis - encuestas
diagnostico final (1). analisis - encuestasansomora123
 
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)JonathanCovena1
 
Fase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalFase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalYasneidyGonzalez
 
Presentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdf
Presentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdfPresentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdf
Presentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdfjuancmendez1405
 
Poemas de Beatriz Giménez de Ory_trabajos de 6º
Poemas de Beatriz Giménez de Ory_trabajos de 6ºPoemas de Beatriz Giménez de Ory_trabajos de 6º
Poemas de Beatriz Giménez de Ory_trabajos de 6ºCEIP TIERRA DE PINARES
 
Tema 14. Aplicación de Diagramas 26-05-24.pptx
Tema 14. Aplicación de Diagramas 26-05-24.pptxTema 14. Aplicación de Diagramas 26-05-24.pptx
Tema 14. Aplicación de Diagramas 26-05-24.pptxNoe Castillo
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETCESAR MIJAEL ESPINOZA SALAZAR
 
Proyecto Integrador 2024. Archiduque entrevistas
Proyecto Integrador 2024. Archiduque entrevistasProyecto Integrador 2024. Archiduque entrevistas
Proyecto Integrador 2024. Archiduque entrevistasELIANAMARIBELBURBANO
 
Material-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.ppt
Material-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.pptMaterial-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.ppt
Material-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.pptAntonioaraujo810405
 
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdfFerias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdfJudithRomero51
 
ESTEREOTIPOS Y ROLES DE GÉNERO (labor de grupo)
ESTEREOTIPOS  Y ROLES DE GÉNERO (labor de grupo)ESTEREOTIPOS  Y ROLES DE GÉNERO (labor de grupo)
ESTEREOTIPOS Y ROLES DE GÉNERO (labor de grupo)portafoliodigitalyos
 
Presentación Revistas y Periódicos Digitales
Presentación Revistas y Periódicos DigitalesPresentación Revistas y Periódicos Digitales
Presentación Revistas y Periódicos Digitalesnievesjiesc03
 
Lección 1: Los complementos del Verbo ...
Lección 1: Los complementos del Verbo ...Lección 1: Los complementos del Verbo ...
Lección 1: Los complementos del Verbo ...odalisvelezg
 
Creación WEB. Ideas clave para crear un sitio web
Creación WEB. Ideas clave para crear un sitio webCreación WEB. Ideas clave para crear un sitio web
Creación WEB. Ideas clave para crear un sitio webinformatica4
 
ACERTIJO LA RUTA DE LAS ADIVINANZAS OLÍMPICAS. Por JAVIER SOLIS NOYOLA
ACERTIJO LA RUTA DE LAS ADIVINANZAS OLÍMPICAS. Por JAVIER SOLIS NOYOLAACERTIJO LA RUTA DE LAS ADIVINANZAS OLÍMPICAS. Por JAVIER SOLIS NOYOLA
ACERTIJO LA RUTA DE LAS ADIVINANZAS OLÍMPICAS. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Presentación Propuesta de Proyecto Social Colorido y Juvenil Multicolor y Neg...
Presentación Propuesta de Proyecto Social Colorido y Juvenil Multicolor y Neg...Presentación Propuesta de Proyecto Social Colorido y Juvenil Multicolor y Neg...
Presentación Propuesta de Proyecto Social Colorido y Juvenil Multicolor y Neg...crcamora123
 
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfUn libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfsandradianelly
 
Cerebelo Anatomía y fisiología Clase presencial
Cerebelo Anatomía y fisiología Clase presencialCerebelo Anatomía y fisiología Clase presencial
Cerebelo Anatomía y fisiología Clase presencialDanita2111
 

Último (20)

corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdf
 
diagnostico final (1). analisis - encuestas
diagnostico final (1). analisis - encuestasdiagnostico final (1). analisis - encuestas
diagnostico final (1). analisis - encuestas
 
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
 
Fase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalFase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcional
 
Presentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdf
Presentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdfPresentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdf
Presentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdf
 
Poemas de Beatriz Giménez de Ory_trabajos de 6º
Poemas de Beatriz Giménez de Ory_trabajos de 6ºPoemas de Beatriz Giménez de Ory_trabajos de 6º
Poemas de Beatriz Giménez de Ory_trabajos de 6º
 
Tema 14. Aplicación de Diagramas 26-05-24.pptx
Tema 14. Aplicación de Diagramas 26-05-24.pptxTema 14. Aplicación de Diagramas 26-05-24.pptx
Tema 14. Aplicación de Diagramas 26-05-24.pptx
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
 
Proyecto Integrador 2024. Archiduque entrevistas
Proyecto Integrador 2024. Archiduque entrevistasProyecto Integrador 2024. Archiduque entrevistas
Proyecto Integrador 2024. Archiduque entrevistas
 
Material-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.ppt
Material-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.pptMaterial-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.ppt
Material-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.ppt
 
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdfFerias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
 
ESTEREOTIPOS Y ROLES DE GÉNERO (labor de grupo)
ESTEREOTIPOS  Y ROLES DE GÉNERO (labor de grupo)ESTEREOTIPOS  Y ROLES DE GÉNERO (labor de grupo)
ESTEREOTIPOS Y ROLES DE GÉNERO (labor de grupo)
 
Presentación Revistas y Periódicos Digitales
Presentación Revistas y Periódicos DigitalesPresentación Revistas y Periódicos Digitales
Presentación Revistas y Periódicos Digitales
 
Lección 1: Los complementos del Verbo ...
Lección 1: Los complementos del Verbo ...Lección 1: Los complementos del Verbo ...
Lección 1: Los complementos del Verbo ...
 
Creación WEB. Ideas clave para crear un sitio web
Creación WEB. Ideas clave para crear un sitio webCreación WEB. Ideas clave para crear un sitio web
Creación WEB. Ideas clave para crear un sitio web
 
ACERTIJO LA RUTA DE LAS ADIVINANZAS OLÍMPICAS. Por JAVIER SOLIS NOYOLA
ACERTIJO LA RUTA DE LAS ADIVINANZAS OLÍMPICAS. Por JAVIER SOLIS NOYOLAACERTIJO LA RUTA DE LAS ADIVINANZAS OLÍMPICAS. Por JAVIER SOLIS NOYOLA
ACERTIJO LA RUTA DE LAS ADIVINANZAS OLÍMPICAS. Por JAVIER SOLIS NOYOLA
 
Presentación Propuesta de Proyecto Social Colorido y Juvenil Multicolor y Neg...
Presentación Propuesta de Proyecto Social Colorido y Juvenil Multicolor y Neg...Presentación Propuesta de Proyecto Social Colorido y Juvenil Multicolor y Neg...
Presentación Propuesta de Proyecto Social Colorido y Juvenil Multicolor y Neg...
 
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfUn libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
 
Lec. 08 Esc. Sab. Luz desde el santuario
Lec. 08 Esc. Sab. Luz desde el santuarioLec. 08 Esc. Sab. Luz desde el santuario
Lec. 08 Esc. Sab. Luz desde el santuario
 
Cerebelo Anatomía y fisiología Clase presencial
Cerebelo Anatomía y fisiología Clase presencialCerebelo Anatomía y fisiología Clase presencial
Cerebelo Anatomía y fisiología Clase presencial
 

Pra9

  • 1.
  • 2.
  • 3. 3
  • 4. La abstracción se puede definir de varias formas. Nos centraremos en la idea de alejarnos de una función específica para adoptar una más general. Piense en abstracción como el proceso de pasar de una tarea más específica a una tarea más general. Por lo tanto, en lugar de llamar a un constructor que siempre realice las mismas tareas, podríamos transferir valores que nos permitieran cambiar la configuración inicial. 4
  • 5. Ya hemos comenzado a realizar la abstracción mediante la creación de nuestros propios métodos y constructores. 5
  • 6. Cuando escriba código fuente y compruebe que algo que está escribiendo es muy parecido a otro código que ha escrito, debe comprobar si puede abstraer su finalidad a otro método. A continuación, llámelo desde las ubicaciones correctas. A continuación, producirá código que es más fácil de mantener. 6
  • 7. Podríamos haber escrito Fly fly1 = new Fly(); fly1.setSpeed(4); // un método definido fly1.setRotation(90); Tendríamos que repetir el código anterior para cada mosca. Al abstraer su propósito al constructor, reduce en gran medida la repetición. 7
  • 8. El equipo de programación de Greenfoot ha creado métodos para que la tarea de desarrollo le resulte más sencilla. Puede abstraerlo aún más para que sea más potente. 8
  • 9. Modificará con frecuencia constructores para que pueda transferirles la información inicial. 9
  • 10. public void increaseScore(int value) { score = score + value; } Podríamos llamarlo desde un área como increaseScore(5) y desde otra área como increaseScore(10). 10
  • 11. Sumamos 1 a la velocidad porque getRandomNumber() puede devolver un 0. Una mosca con una velocidad de cero es muy fácil de atrapar. 11
  • 12. Si desea cambiar la velocidad, el giro, etc. durante un juego, debe crear una variable de clase para almacenar el valor actual. 12
  • 13. De este modo, se agregará una mosca en las coordenadas (150,150) con una velocidad máxima aleatoria de 2 a partir de una dirección de 90 grados. 13
  • 14. Ahora se están agregando 4 moscas, cada una de ellas con una velocidad aleatoria máxima, una dirección inicial y un punto de partida distinto. Todas ellas con solo 4 líneas de código en el constructor BeeWorld. 14
  • 15. Escribir líneas de código que presiente que se han escrito anteriormente suele ser el detonante de la abstracción. 15
  • 16. 16
  • 17. Creamos 10 moscas, cada una con una dirección y posición aleatorias en la pantalla. Esto se realiza mediante un bucle for. El bucle for ejecutará el código entre paréntesis un número determinado de veces. En este ejemplo hay 10 bucles. Nos centraremos en los bucles a medida que avance el curso. Podríamos aumentar la velocidad máxima de las moscas, ya que el juego hace que sea cada vez más difícil atraparlas. 17
  • 18. Si va a contar con actores que comparten funcionalidades, es mejor crear una subclase de actor, agregar la funcionalidad y, a continuación, crear una subclase de esa clase. Recuerde que la clase Movement puede contener varias subclases. 18
  • 19. private static final int SPEED= 4 Crea una clase constante que podemos utilizar en nuestro código. Su ventaja es que se hace que nuestro código más legible al utilizarlo y también nos permite cambiar un valor para aumentar la velocidad de todos los actores que la usan. 19
  • 20. setLocation() mueve un actor sin tener que cambiar su giro. En algunos casos, es mejor que move() y rotate(). En el ejemplo, deseamos que un bebé se mueva por la pantalla. No queremos que gire, sino que esté siempre erguido, pero que se siga moviendo por la pantalla en distintas direcciones. 20
  • 21. Si el bebé se movió en una dirección tras estar en contacto con otro actor, también podríamos llamar a este método en esta ubicación. if (leftBump()) { moveLeft(); } 21
  • 22. En algunos escenarios, no tendrá que preocuparse por las acciones que se producen lejos de los actores principales, pero en otros juegos tendrá que supervisarlos constantemente. 22
  • 23. En algunos escenarios, no tendrá que preocuparse por las acciones que se producen lejos de los actores principales, pero en otros juegos tendrá que supervisarlos constantemente. 23
  • 24. Tenga en cuenta que hemos mantenido la puntuación de propiedad en privado, de modo que ningún actor ajeno a BeeWorld tenga acceso directo a la misma. Deben utilizar los métodos públicos getScore() y updateScore(). 24
  • 25. Conversión es un término con el que le va a resultar muy familiar durante este curso. 25
  • 26. No podemos convertir todo lo que deseemos para que sea algo diferente. Debe existir una relación como entre World y BeeWorld o Actor y Bee. No podríamos convertir World en Actor, por ejemplo. 26
  • 27. Debe tener en cuenta que esto es muy similar a nuestro último ejemplo. Creamos un campo de clase privada para almacenar el tipo de datos a los que deseamos acceder. A continuación, creamos un método público para devolver este valor. 27
  • 28. BeeWorld myworld = (BeeWorld)getWorld(); Esta línea obtiene una referencia al mundo actual y la almacena en la variable myworld. Puesto que el tipo de retorno de getWorld es World, tenemos que convertirlo en un tipo BeeWorld. Bee bee = myworld.getBee(); Estas líneas crean una variable bee que hará referencia a la abeja que devuelve nuestro método getBee(); Una vez que tenemos esta referencia, podemos utilizar la abeja que se ha devuelto para acceder a métodos de la instancia Bee. Usamos los métodos getX() y getY() de la instancia Bee en el método de actor turnTowards. Esto significa que la araña siempre girará para estar frente a la instancia Bee en el mundo. 28
  • 29. 29
  • 30. 30