SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Conceptos fundamentales de Java
3-6
Definición de métodos
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Objetivos
En esta lección se abordan los siguientes objetivos:
• Describir la colocación adecuada de métodos en una
superclase o subclase
• Simplificar la programación creando y llamando a métodos
definidos
• Manejar las colisiones
JF 3-6
Definición de métodos
3
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Inserción eficaz de los métodos
• A veces, muchas de las líneas de código son necesarias para
programar un comportamiento.
• Por ejemplo, puede que desee programar una instancia para
que coma otros objetos, o que gire cuando llegue al borde del
mundo.
• Defina nuevos métodos para ahorrar tiempo y líneas de
código.
– Defina un nuevo método para una acción bajo el método act.
– Llame al nuevo método en el método act o dentro de otro método.
– Defina el método en la superclase si desea que sus subclases hereden
automáticamente el método.
JF 3-6
Definición de métodos
4
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Métodos definidos
• Los métodos definidos son nuevos métodos que crea el
programador.
• Estos métodos:
– Se pueden ejecutar inmediatamente, o bien guardarse y llamarse más
adelante.
– No cambie el comportamiento de la clase cuando esté guardada.
– Separe el código en métodos más cortos de modo que se facilite su
lectura.
Los métodos definidos crean un nuevo método que una clase no
poseía aún. Estos métodos se escriben en el código fuente de la clase
bajo la clase act.
JF 3-6
Definición de métodos
5
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Pasos para definir un nuevo método
• Seleccionar un nombre para el método.
• Abrir el editor de códigos para la clase que va a utilizar el
método.
• Agregar el código para la definición del método bajo el
método act.
• Llamar a este nuevo método desde el método act o guardarlo
para utilizarlo más adelante.
JF 3-6
Definición de métodos
6
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Pasos para definir un nuevo método
• Podríamos, por ejemplo, agregar nuestro código de
movimiento en act() a un nuevo método.
• Esto ayuda a mantener el código en act al mínimo y hace que
sus acciones sean más claras.
JF 3-6
Definición de métodos
7
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Giro al borde del mundo
• Problema:
– Las instancias se detienen y no pueden moverse cuando alcanzan el
borde del mundo.
– Las instancias deben girar y moverse cuando alcanzan el borde del
mundo.
• Solución:
– Cree una subclase de Actor que defina un método que pueda detectar
si el objeto se encuentra al borde del mundo y si gira de forma
adecuada.
– Llame a los nuevos métodos en las subclases que deben poder girar y
moverse al borde del mundo.
JF 3-6
Definición de métodos
8
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Probar si se encuentra al borde del mundo
• Greenfoot tiene un método en la clase Actor denominado
isAtEdge().
• Este devuelve la condición true si el actor se encuentra en
uno de los bordes.
• Podríamos utilizarlo para detectar y girar a los actores en el
mundo en lugar de que queden suspendidos en uno de los
bordes.
• Si nuestro programa necesitase saber en qué borde se
encontraba un actor, deberíamos definir un método para
recuperar el lado que estamos tocando, o 4 métodos
separados, uno por cada lado.
JF 3-6
Definición de métodos
9
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Probar la posición de un objeto en
el mundo
• Para probar si un objeto se encuentra cerca del borde del
mundo, necesita:
– Expresiones booleanas para expresar si una condición es true o false.
– Ejemplo: podríamos girar una instancia 180 grados si se encuentra al
borde del mundo.
JF 3-6
Definición de métodos
10
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Operadores lógicos
Operador
lógico
Significado Definición
Signo de
exclamación (!)
NO
Invierte el valor de una expresión booleana
(si b es true, !b es false. Si b es false, !b es
true).
Doble ampersand
(&&)
Y
Combina dos valores booleanos y devuelve
un valor booleano que es true solo si ambos
de sus operandos son true.
Dos líneas (II) O
Combina dos variables o expresiones
booleanas y devuelve un resultado que es
true si uno o ambos de sus operandos son
true.
Los operadores lógicos se pueden utilizar para combinar varias
expresiones booleanas en una expresión booleana.
JF 3-6
Definición de métodos
11
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Crear la superclase Bug
• Antes de crear los métodos definidos, cree una nueva
subclase de la clase Actor denominada Bug.
• Esta clase no tiene ninguna imagen y no tendrá instancias que
actúen en el escenario, pero contendrá algunos métodos
definidos que otras subclases van a heredar.
JF 3-6
Definición de métodos
12
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Crear las subclases Bug
• Podríamos recrear la araña y la mosca haciendo clic con el botón
derecho en Bug y seleccionando la nueva subclase.
• Pero, puesto que ya las hemos creado anteriormente, podemos
modificar el código fuente de la araña y de la mosca para que se
extiendan desde Bug en lugar de hacerlo desde Actor.
• Al hacer clic en Compile, Greenfoot actualizará la estructura de
clases.
JF 3-6
Definición de métodos
13
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Definir el método turnAtEdge en
Superclass
• Abra el editor de códigos para la clase Bug.
• Escriba el código para el método turnAtEdge, bajo el método
act.
• Compile el código y, a continuación, cierre el editor de
códigos.
JF 3-6
Definición de métodos
14
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Llamar al método turnAtEdge en Subclass
• Abra el editor de códigos para la subclase Fly.
• Agregue una llamada al método turnAtEdge dentro del
método Act.
JF 3-6
Definición de métodos
15
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Definir el método atRightEdge en la
clase Bee
• Abra el editor de códigos para la clase Bee.
• Escriba el código para el método atRightEdge, bajo el método
act.
• Compile el código y, a continuación, cierre el editor de
códigos.
JF 3-6
Definición de métodos
16
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Definir el método atBottomEdge en la
clase Bee
• Abra el editor de códigos para la clase Bee.
• Escriba el código para el método atBottomEdge, bajo el
método act.
• Compile el código y, a continuación, cierre el editor de
códigos.
JF 3-6
Definición de métodos
17
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Métodos en atRightEdge y atBottomEdge
• Los métodos utilizados en atRightEdge y atBottomEdge
incluyen:
– getX: Método de un actor que devuelve la coordenada x de la ubicación
actual del actor.
– getY: Método de un actor que devuelve la coordenada y de la ubicación
actual del actor.
– getWorld: Método de un actor que devuelve el mundo en el que vive
este actor.
– getHeight: Método de una clase GreenfootImage que devuelve la
altura de la imagen.
– getWidth: Método de una clase GreenfootImage que devuelve el ancho
de la imagen.
JF 3-6
Definición de métodos
18
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Llamar al método en Class
• Abra el editor de códigos para la clase Bee.
• Cree una sentencia IF que llame al método atRightEdge y
atLeftEdge como una condición en act.
• Si la abeja se encuentra a la izquierda, volverá a aparecer a la
derecha y viceversa.
JF 3-6
Definición de métodos
19
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Llamar al método en Class
• Compile el código y ejecute el escenario para probarlo.
• Complete la sentencia IF para atTopEdge y atBottomEdge.
JF 3-6
Definición de métodos
20
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Documentación de la clase
• La documentación de la clase Bug muestra el nuevo método
una vez definido.
• Todas las subclases de la superclase Bug heredan este
método.
JF 3-6
Definición de métodos
21
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Colisiones
• Por lo general, la mayoría de los proyectos detectarán si dos
actores entran en contacto, lo que se suele conocer como
colisión.
• En GreenFoot existen varias formas de detectarlo.
• Algunas de estas son:
– isTouching()
– getOneIntersectingObject(Class)
– getOneObjectAtOffset(Class)
– getIntersectingObjects(Class)
– getNeighbours(distance,diagonal)
– getObjectsAtOffset(dx,dy,Class)
JF 3-6
Definición de métodos
22
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Colisiones
Método ¿Cuándo utilizarlo?
isTouching Si simplemente desea detectar una colisión con
un objeto
getOneIntersectingObject Si desea devolver una referencia al objeto con el
que ha colisionado. Normalmente se utiliza si
desea realizar una acción en el objeto que ha
colisionado.
getOneObjectAtOffset Igual que getOneIntersectingObject excepto que
se puede cambiar el lugar en el que se detectará
la colisión con respecto al objeto actual. Por lo
tanto, se podría detectar la colisión antes de que
ocurriese, por ejemplo, evitar que el actor se
dirija al muro.
JF 3-6
Definición de métodos
23
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Método definido para eliminar objetos
• Se puede escribir código en el juego de modo que un objeto
predator pueda comer objetos prey.
• Cree un método definido en el método act de la superclase
Bee denominado catchFly para permitirnos eliminar las
moscas que atrapemos.
• Para crear este método definido, vamos a utilizar el método
de detección de colisión más sencillo: isTouching.
JF 3-6
Definición de métodos
24
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Definir el método catchFly
• Defina el método catchFly en la clase Bee.
• Este método detecta una colisión con una mosca y, a
continuación, la elimina.
JF 3-6
Definición de métodos
25
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Definir el método catchFly (alternativo)
• También podríamos haber utilizado getOneIntersectingObject
y haber accedido a una referencia al actor antes de
eliminarlo.
JF 3-6
Definición de métodos
26
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Llamar a catchFly en el método Act
• Llame al nuevo método catchFly en el método Act de la abeja.
• Ejecute el escenario para probar el código.
JF 3-6
Definición de métodos
27
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Terminología
Términos clave que se han utilizado en esta lección:
• Métodos definidos
• Colisiones
JF 3-6
Definición de métodos
28
Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Resumen
En esta lección, debe haber aprendido a:
• Describir la colocación adecuada de métodos en una
superclase o subclase
• Simplificar la programación creando y llamando a métodos
definidos
JF 3-6
Definición de métodos
29
Definición de métodos en Java

Más contenido relacionado

La actualidad más candente (20)

Greenfoot 1
Greenfoot 1Greenfoot 1
Greenfoot 1
 
Greenfoot 1
Greenfoot 1Greenfoot 1
Greenfoot 1
 
Alice 6
Alice 6Alice 6
Alice 6
 
Greenfoot 5
Greenfoot 5Greenfoot 5
Greenfoot 5
 
Greenfoot 3
Greenfoot 3Greenfoot 3
Greenfoot 3
 
Greenfoot 8
Greenfoot 8Greenfoot 8
Greenfoot 8
 
Alice 11
Alice 11Alice 11
Alice 11
 
Greenfoot 4
Greenfoot 4Greenfoot 4
Greenfoot 4
 
Alice 5
Alice 5Alice 5
Alice 5
 
Alice 8
Alice 8Alice 8
Alice 8
 
Greenfoot 2
Greenfoot 2Greenfoot 2
Greenfoot 2
 
Greenfoot 10
Greenfoot 10Greenfoot 10
Greenfoot 10
 
Greenfoot 5
Greenfoot 5Greenfoot 5
Greenfoot 5
 
Greenfoot 9
Greenfoot 9Greenfoot 9
Greenfoot 9
 
Greenfoot 7
Greenfoot 7Greenfoot 7
Greenfoot 7
 
Alice 4
Alice 4Alice 4
Alice 4
 
Alice 1
Alice 1Alice 1
Alice 1
 
Alice 4
Alice 4Alice 4
Alice 4
 
Alice 11
Alice 11Alice 11
Alice 11
 
PRACTICA 5 ALICE
PRACTICA 5 ALICEPRACTICA 5 ALICE
PRACTICA 5 ALICE
 

Destacado (11)

Greenfoot 4
Greenfoot 4Greenfoot 4
Greenfoot 4
 
Greenfoot 8
Greenfoot 8Greenfoot 8
Greenfoot 8
 
Presentación
PresentaciónPresentación
Presentación
 
Alice 2
Alice 2Alice 2
Alice 2
 
Alice 12
Alice 12Alice 12
Alice 12
 
Alice 8
Alice 8Alice 8
Alice 8
 
Alice 7
Alice 7Alice 7
Alice 7
 
Alice 10
Alice 10Alice 10
Alice 10
 
Alice 9
Alice 9Alice 9
Alice 9
 
Alice 14
Alice 14Alice 14
Alice 14
 
Alice 5
Alice 5Alice 5
Alice 5
 

Similar a Definición de métodos en Java

Similar a Definición de métodos en Java (20)

Jf 3 3_esp(3)(3)
Jf 3 3_esp(3)(3)Jf 3 3_esp(3)(3)
Jf 3 3_esp(3)(3)
 
Jf 3 3_esp(3)(3)
Jf 3 3_esp(3)(3)Jf 3 3_esp(3)(3)
Jf 3 3_esp(3)(3)
 
Capitulo 3 greenfoot
Capitulo 3 greenfootCapitulo 3 greenfoot
Capitulo 3 greenfoot
 
CAPITULO 3 DE GREENFOOT
CAPITULO 3 DE GREENFOOTCAPITULO 3 DE GREENFOOT
CAPITULO 3 DE GREENFOOT
 
Capitulo 3
Capitulo 3Capitulo 3
Capitulo 3
 
Jf 3 3_esp(3)(3) 3
Jf 3 3_esp(3)(3) 3Jf 3 3_esp(3)(3) 3
Jf 3 3_esp(3)(3) 3
 
CAPITULO 3 GREENFOOT
CAPITULO 3 GREENFOOTCAPITULO 3 GREENFOOT
CAPITULO 3 GREENFOOT
 
Jf 3 3_esp(3)(3)
Jf 3 3_esp(3)(3)Jf 3 3_esp(3)(3)
Jf 3 3_esp(3)(3)
 
Jf 3 3_esp(3)(3)
Jf 3 3_esp(3)(3)Jf 3 3_esp(3)(3)
Jf 3 3_esp(3)(3)
 
Pra3
Pra3Pra3
Pra3
 
Greenfoot 3
Greenfoot 3Greenfoot 3
Greenfoot 3
 
Greenfoot 3
Greenfoot 3Greenfoot 3
Greenfoot 3
 
Greenfoot 3
Greenfoot 3Greenfoot 3
Greenfoot 3
 
leccion 3
leccion 3leccion 3
leccion 3
 
Capitulo 3
Capitulo 3Capitulo 3
Capitulo 3
 
Buenas prácticas para la construcción de software
Buenas prácticas para la construcción de softwareBuenas prácticas para la construcción de software
Buenas prácticas para la construcción de software
 
Unidad II_1.pptx
Unidad II_1.pptxUnidad II_1.pptx
Unidad II_1.pptx
 
Operadores poo
Operadores pooOperadores poo
Operadores poo
 
Semana 2 Clases y Objetos en Java
Semana 2   Clases y Objetos en JavaSemana 2   Clases y Objetos en Java
Semana 2 Clases y Objetos en Java
 
Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...
Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...
Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...
 

Más de Christian Medina (20)

Uniforme
UniformeUniforme
Uniforme
 
Presentación
PresentaciónPresentación
Presentación
 
Logo y poster
Logo y posterLogo y poster
Logo y poster
 
Invitacion
InvitacionInvitacion
Invitacion
 
Graficas
GraficasGraficas
Graficas
 
Engargolado
EngargoladoEngargolado
Engargolado
 
Encuesta
EncuestaEncuesta
Encuesta
 
Conferencia
ConferenciaConferencia
Conferencia
 
Campaña
CampañaCampaña
Campaña
 
Tabla 4
Tabla 4Tabla 4
Tabla 4
 
Tabla 14
Tabla 14Tabla 14
Tabla 14
 
Tabla 11
Tabla 11Tabla 11
Tabla 11
 
Tabla 13
Tabla 13Tabla 13
Tabla 13
 
Tabla 12
Tabla 12Tabla 12
Tabla 12
 
Tabla 10
Tabla 10Tabla 10
Tabla 10
 
Tabla 9
Tabla 9Tabla 9
Tabla 9
 
Tabla 8
Tabla 8Tabla 8
Tabla 8
 
Tabla 7
Tabla 7Tabla 7
Tabla 7
 
Tabla 3
Tabla 3Tabla 3
Tabla 3
 
Tabla 6
Tabla 6Tabla 6
Tabla 6
 

Último

Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuelacocuyelquemao
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscaeliseo91
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxinformacionasapespu
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfMARIAPAULAMAHECHAMOR
 

Último (20)

Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuela
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Razonamiento Matemático 1. Deta del año 2020
Razonamiento Matemático 1. Deta del año 2020Razonamiento Matemático 1. Deta del año 2020
Razonamiento Matemático 1. Deta del año 2020
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fisca
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdf
 

Definición de métodos en Java

  • 1.
  • 2. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Conceptos fundamentales de Java 3-6 Definición de métodos
  • 3. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Objetivos En esta lección se abordan los siguientes objetivos: • Describir la colocación adecuada de métodos en una superclase o subclase • Simplificar la programación creando y llamando a métodos definidos • Manejar las colisiones JF 3-6 Definición de métodos 3
  • 4. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Inserción eficaz de los métodos • A veces, muchas de las líneas de código son necesarias para programar un comportamiento. • Por ejemplo, puede que desee programar una instancia para que coma otros objetos, o que gire cuando llegue al borde del mundo. • Defina nuevos métodos para ahorrar tiempo y líneas de código. – Defina un nuevo método para una acción bajo el método act. – Llame al nuevo método en el método act o dentro de otro método. – Defina el método en la superclase si desea que sus subclases hereden automáticamente el método. JF 3-6 Definición de métodos 4
  • 5. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Métodos definidos • Los métodos definidos son nuevos métodos que crea el programador. • Estos métodos: – Se pueden ejecutar inmediatamente, o bien guardarse y llamarse más adelante. – No cambie el comportamiento de la clase cuando esté guardada. – Separe el código en métodos más cortos de modo que se facilite su lectura. Los métodos definidos crean un nuevo método que una clase no poseía aún. Estos métodos se escriben en el código fuente de la clase bajo la clase act. JF 3-6 Definición de métodos 5
  • 6. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Pasos para definir un nuevo método • Seleccionar un nombre para el método. • Abrir el editor de códigos para la clase que va a utilizar el método. • Agregar el código para la definición del método bajo el método act. • Llamar a este nuevo método desde el método act o guardarlo para utilizarlo más adelante. JF 3-6 Definición de métodos 6
  • 7. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Pasos para definir un nuevo método • Podríamos, por ejemplo, agregar nuestro código de movimiento en act() a un nuevo método. • Esto ayuda a mantener el código en act al mínimo y hace que sus acciones sean más claras. JF 3-6 Definición de métodos 7
  • 8. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Giro al borde del mundo • Problema: – Las instancias se detienen y no pueden moverse cuando alcanzan el borde del mundo. – Las instancias deben girar y moverse cuando alcanzan el borde del mundo. • Solución: – Cree una subclase de Actor que defina un método que pueda detectar si el objeto se encuentra al borde del mundo y si gira de forma adecuada. – Llame a los nuevos métodos en las subclases que deben poder girar y moverse al borde del mundo. JF 3-6 Definición de métodos 8
  • 9. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Probar si se encuentra al borde del mundo • Greenfoot tiene un método en la clase Actor denominado isAtEdge(). • Este devuelve la condición true si el actor se encuentra en uno de los bordes. • Podríamos utilizarlo para detectar y girar a los actores en el mundo en lugar de que queden suspendidos en uno de los bordes. • Si nuestro programa necesitase saber en qué borde se encontraba un actor, deberíamos definir un método para recuperar el lado que estamos tocando, o 4 métodos separados, uno por cada lado. JF 3-6 Definición de métodos 9
  • 10. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Probar la posición de un objeto en el mundo • Para probar si un objeto se encuentra cerca del borde del mundo, necesita: – Expresiones booleanas para expresar si una condición es true o false. – Ejemplo: podríamos girar una instancia 180 grados si se encuentra al borde del mundo. JF 3-6 Definición de métodos 10
  • 11. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Operadores lógicos Operador lógico Significado Definición Signo de exclamación (!) NO Invierte el valor de una expresión booleana (si b es true, !b es false. Si b es false, !b es true). Doble ampersand (&&) Y Combina dos valores booleanos y devuelve un valor booleano que es true solo si ambos de sus operandos son true. Dos líneas (II) O Combina dos variables o expresiones booleanas y devuelve un resultado que es true si uno o ambos de sus operandos son true. Los operadores lógicos se pueden utilizar para combinar varias expresiones booleanas en una expresión booleana. JF 3-6 Definición de métodos 11
  • 12. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Crear la superclase Bug • Antes de crear los métodos definidos, cree una nueva subclase de la clase Actor denominada Bug. • Esta clase no tiene ninguna imagen y no tendrá instancias que actúen en el escenario, pero contendrá algunos métodos definidos que otras subclases van a heredar. JF 3-6 Definición de métodos 12
  • 13. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Crear las subclases Bug • Podríamos recrear la araña y la mosca haciendo clic con el botón derecho en Bug y seleccionando la nueva subclase. • Pero, puesto que ya las hemos creado anteriormente, podemos modificar el código fuente de la araña y de la mosca para que se extiendan desde Bug en lugar de hacerlo desde Actor. • Al hacer clic en Compile, Greenfoot actualizará la estructura de clases. JF 3-6 Definición de métodos 13
  • 14. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Definir el método turnAtEdge en Superclass • Abra el editor de códigos para la clase Bug. • Escriba el código para el método turnAtEdge, bajo el método act. • Compile el código y, a continuación, cierre el editor de códigos. JF 3-6 Definición de métodos 14
  • 15. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Llamar al método turnAtEdge en Subclass • Abra el editor de códigos para la subclase Fly. • Agregue una llamada al método turnAtEdge dentro del método Act. JF 3-6 Definición de métodos 15
  • 16. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Definir el método atRightEdge en la clase Bee • Abra el editor de códigos para la clase Bee. • Escriba el código para el método atRightEdge, bajo el método act. • Compile el código y, a continuación, cierre el editor de códigos. JF 3-6 Definición de métodos 16
  • 17. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Definir el método atBottomEdge en la clase Bee • Abra el editor de códigos para la clase Bee. • Escriba el código para el método atBottomEdge, bajo el método act. • Compile el código y, a continuación, cierre el editor de códigos. JF 3-6 Definición de métodos 17
  • 18. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Métodos en atRightEdge y atBottomEdge • Los métodos utilizados en atRightEdge y atBottomEdge incluyen: – getX: Método de un actor que devuelve la coordenada x de la ubicación actual del actor. – getY: Método de un actor que devuelve la coordenada y de la ubicación actual del actor. – getWorld: Método de un actor que devuelve el mundo en el que vive este actor. – getHeight: Método de una clase GreenfootImage que devuelve la altura de la imagen. – getWidth: Método de una clase GreenfootImage que devuelve el ancho de la imagen. JF 3-6 Definición de métodos 18
  • 19. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Llamar al método en Class • Abra el editor de códigos para la clase Bee. • Cree una sentencia IF que llame al método atRightEdge y atLeftEdge como una condición en act. • Si la abeja se encuentra a la izquierda, volverá a aparecer a la derecha y viceversa. JF 3-6 Definición de métodos 19
  • 20. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Llamar al método en Class • Compile el código y ejecute el escenario para probarlo. • Complete la sentencia IF para atTopEdge y atBottomEdge. JF 3-6 Definición de métodos 20
  • 21. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Documentación de la clase • La documentación de la clase Bug muestra el nuevo método una vez definido. • Todas las subclases de la superclase Bug heredan este método. JF 3-6 Definición de métodos 21
  • 22. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Colisiones • Por lo general, la mayoría de los proyectos detectarán si dos actores entran en contacto, lo que se suele conocer como colisión. • En GreenFoot existen varias formas de detectarlo. • Algunas de estas son: – isTouching() – getOneIntersectingObject(Class) – getOneObjectAtOffset(Class) – getIntersectingObjects(Class) – getNeighbours(distance,diagonal) – getObjectsAtOffset(dx,dy,Class) JF 3-6 Definición de métodos 22
  • 23. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Colisiones Método ¿Cuándo utilizarlo? isTouching Si simplemente desea detectar una colisión con un objeto getOneIntersectingObject Si desea devolver una referencia al objeto con el que ha colisionado. Normalmente se utiliza si desea realizar una acción en el objeto que ha colisionado. getOneObjectAtOffset Igual que getOneIntersectingObject excepto que se puede cambiar el lugar en el que se detectará la colisión con respecto al objeto actual. Por lo tanto, se podría detectar la colisión antes de que ocurriese, por ejemplo, evitar que el actor se dirija al muro. JF 3-6 Definición de métodos 23
  • 24. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Método definido para eliminar objetos • Se puede escribir código en el juego de modo que un objeto predator pueda comer objetos prey. • Cree un método definido en el método act de la superclase Bee denominado catchFly para permitirnos eliminar las moscas que atrapemos. • Para crear este método definido, vamos a utilizar el método de detección de colisión más sencillo: isTouching. JF 3-6 Definición de métodos 24
  • 25. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Definir el método catchFly • Defina el método catchFly en la clase Bee. • Este método detecta una colisión con una mosca y, a continuación, la elimina. JF 3-6 Definición de métodos 25
  • 26. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Definir el método catchFly (alternativo) • También podríamos haber utilizado getOneIntersectingObject y haber accedido a una referencia al actor antes de eliminarlo. JF 3-6 Definición de métodos 26
  • 27. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Llamar a catchFly en el método Act • Llame al nuevo método catchFly en el método Act de la abeja. • Ejecute el escenario para probar el código. JF 3-6 Definición de métodos 27
  • 28. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Terminología Términos clave que se han utilizado en esta lección: • Métodos definidos • Colisiones JF 3-6 Definición de métodos 28
  • 29. Copyright © 2015, Oracle y/o sus filiales. Todos los derechos reservados. Resumen En esta lección, debe haber aprendido a: • Describir la colocación adecuada de métodos en una superclase o subclase • Simplificar la programación creando y llamando a métodos definidos JF 3-6 Definición de métodos 29