SlideShare a Scribd company logo
1 of 19
Download to read offline
6.Métodos: un análisis
más detallado.
Ramiro Estigarribia Canese
Objetivos del Capítulo.
➔ Conocer cómo se asocian los métodos.
➔ Utilizar los métodos Math.
➔ Pasar información entre métodos.
➔ Comprender cómo se soporta el mecanismo de
llamada/retorno.
➔ Conocer cómo los paquetes agrupan las clases
relacionadas.
➔ Utilizar la generación de números aleatorios para
implementar aplicaciones para juegos.
Programas Reales.
➔ La mayoría de los programas que resuelven
problemas reales son más grandes que los
programas que se presentan en los primeros
capítulos.
➔ La experiencia ha demostrado que la mejor forma
de desarrollar y mantener un programa extenso es
construirlo a partir de piezas (o componentes)
simples y pequeñas.
➔ A esta técnica se le conoce como divide y
vencerás.
Módulos de programas.
➔ Existen tres tipos de módulos en Java:
métodos, clases y paquetes.
➔ Para escribir programas, se combinan los nuevos
métodos y clases que usted escribe con los que
están disponibles en Java.
➔ Por lo general, las clases relacionadas están
agrupadas en paquetes, de manera que se pueden
importar a los programas y reutilizarse.
➔ En el capítulo 8 aprenderá a agrupar sus propias
clases en paquetes.
¿Qué son los métodos?
➔ Los métodos permiten dividir un programa
en módulos.
➔ Las instrucciones de los métodos se escriben sólo
una vez, y se reutilizan muchas veces.
➔ Una razón para dividir un programa en módulos es
la metodología “divide y vencerás”, que hace que el
desarrollo sea más fácil de administrar.
➔ Otra razón es la reutilización de software (usar los
métodos existentes como bloques de construcción
para crear nuevos programas).
Recomendación de
Ingeniería del Software.
➔ Para promover la reutilización, cada método debe
limitarse de manera que realice una sola tarea bien
➔ definida, y su nombre debe expresar esa tarea con
efectividad.
➔ Estos métodos hacen que los programas sean más
fáciles de escribir, depurar y modificar.
➔ Un método se invoca mediante una llamada, y
cuando el método que se llamó completa su tarea,
devuelve un resultado.
La clase Math
➔ La clase Math cuenta con una colección de
métodos que nos permiten realizar cálculos
matemáticos.
➔ Por ejemplo, podemos calcular la raíz cuadrada de
900 con una llamada al siguiente método:
Math.sqrt(900). Resultado = 30.0.
➔ El método sqrt recibe un argumento de tipo double
y devuelve el resultado.
➔ Para imprimir el valor de la llamada anterior al
método en una ventana de comandos:
➔ System.out.println( Math.sqrt( 900 ) );
Raiz Cuadrada
package raiz;
import java.util.Scanner;
public class Raiz {
public static void main(String[] args) {
Scanner entrada = new Scanner( System.in );
double numero, raiz;
System.out.println("Ingrese 1 número:");
numero = entrada.nextInt();
raiz=Math.sqrt(numero);
System.out.println("La Raiz es:"+raiz);
}
}
Mayor de 2 Números
package mayor;
import java.util.Scanner;
public class Mayor {
public static void main(String[] args) {
Scanner entrada = new Scanner( System.in );
double numero1, numero2, mayor;
System.out.println("Ingrese 2 números:");
numero1 = entrada.nextInt();
numero2 = entrada.nextInt();
mayor=Math.max(numero1,numero2);
System.out.println("El mayor es:"+mayor);
}
}
Constante PI
➔ La clase Math también declara campos
que representan unas constantes
matemáticas de uso común: Math.PI.
➔ La constante Math.PI (3.14159265358979323846)
es la proporción de la circunferencia de un círculo
con su diámetro.
➔ Al hacer a estos campos static, se puede acceder a
ellos mediante el nombre de clase Math y un
separador de punto (.), justo igual que los métodos
de la clase Math.
Función con 1 Parámetro.
package cuadrado;
public class Cuadrado {
static int cuadrado(int numero) {
int resultado;
resultado=numero*numero;
return resultado; }
public static void main(String[] args) {
int cuadrado, numero=12;
cuadrado = cuadrado( numero );
System.out.println("El cuadrado es: "+cuadrado);
}}
Métodos con muchos
parámetros
➔ Los capítulos 3 a 5 presentaron clases que
contienen métodos simples.
➔ Ahora le mostraremos cómo escribir métodos con
varios parámetros.
➔ La siguiente aplicación utiliza el método máximo,
declarado por el programador, para determinar y
devolver el mayor de tres números.
➔ Cuando la aplicación empieza a ejecutarse, el
método main crea un objeto de la clase
BuscarMayor.
Utilizando Clases:
Mayor de 2 Números
//Mayor.java
package mayor;
public class Mayor {
public static void main(String[] args) {
BuscarMayor BuscarMayor = new BuscarMayor();
BuscarMayor.Mayor();
}
}
Mayor de 3 Números
BuscadorMaximo.java
package mayor;
import java.util.Scanner;
public class BuscarMayor {
public void Mayor()
{
Scanner entrada = new Scanner( System.in );
System.out.print("Ingrese 2 numeros:");
int numero1 = entrada.nextInt();
int numero2 = entrada.nextInt();
int resultado = maximo(numero1,numero2);
System.out.println( "El mayor es: " + resultado );
}
public int maximo(int x, int y)
{
int mayor = x; // asume que x es el mayor
if ( y > mayor )
mayor = y;
return mayor;
}
}
Combinando texto
mediante concatenación
➔ Java permite crear objetos String mediante el
ensamblado de objetos string más pequeños,
mediante el uso del operador +.
➔ A esto se le conoce como concatenación de
objetos string.
➔ El operador + crea un nuevo objeto String en el
cual los caracteres del operando derecho se
colocan al final de los caracteres en el operando
izquierdo.
➔ Por ejemplo, la expresión "hola" + "a todos" crea el
objeto String "hola a todos".
Ejemplo práctico:
Sorteo de números.
➔ En ésta y en la siguiente sección desarrollaremos
un programa de juego con varios métodos.
➔ El programa utiliza la mayoría de las instrucciones
de control presentadas hasta este punto en el libro,
e introduce conceptos nuevos.
➔ Hay algo en el ambiente de un casino de apuestas
que anima a las personas:
➔ Es el elemento de azar, la posibilidad de que la
suerte convierta un bolsillo lleno de dinero.
➔ El elemento de azar puede introducirse en un
programa mediante un objeto de la clase Random
(paquete java.util)
Random
➔ Se puede crear un generador de números aleatorios
de la siguiente manera:
Random numerosAleatorios = new Random();
➔ Después, el generador de números aleatorios puede
usarse para generar nuevos valores númericos,
boolean, byte, float, double, int, long y gaussianos.
➔ El método nextInt de la clase Random genera un
valor int aleatorio en el rango de –2.147.483.648 a +2.
147.483.647.
➔ Cualquier valor en ese rango debería tener una
oportunidad de salir sorteado.
package sorteo;
import java.util.Random; //clase Random
public class Sorteo {
public static void main( String args[] )
{
Random sortear = new Random();
int cara;
for ( int contador = 1; contador <= 5; contador++ )
{
cara = 1 + sortear.nextInt( 6 );
System.out.printf( " "+cara ); // muestra el valor generado
} } }
Programa que lanza un
dado 5 veces

More Related Content

What's hot

FUNDAMENTOS DE LA PROGRAMACION ( I Bimestre Abril Agosto 2011)
FUNDAMENTOS DE LA PROGRAMACION ( I Bimestre Abril Agosto 2011)FUNDAMENTOS DE LA PROGRAMACION ( I Bimestre Abril Agosto 2011)
FUNDAMENTOS DE LA PROGRAMACION ( I Bimestre Abril Agosto 2011)Videoconferencias UTPL
 
Practica 9 Laboratorio de Computación para Ingenieros FI
Practica 9 Laboratorio de Computación para Ingenieros FIPractica 9 Laboratorio de Computación para Ingenieros FI
Practica 9 Laboratorio de Computación para Ingenieros FIJorge Iván Alba Hernández
 
Programación en c++
Programación en c++Programación en c++
Programación en c++vic-97
 
Practica 11 Laboratorio de Computación para Ingenieros FI
Practica 11 Laboratorio de Computación para Ingenieros FIPractica 11 Laboratorio de Computación para Ingenieros FI
Practica 11 Laboratorio de Computación para Ingenieros FIJorge Iván Alba Hernández
 
Operaciones entre cadenas y valores numéricos en lenguaje C
Operaciones entre cadenas y valores numéricos en lenguaje COperaciones entre cadenas y valores numéricos en lenguaje C
Operaciones entre cadenas y valores numéricos en lenguaje CDenisse C
 
Aa javaaa intro
Aa javaaa introAa javaaa intro
Aa javaaa introMickeT
 
Programas e informes Programación
Programas e informes ProgramaciónProgramas e informes Programación
Programas e informes ProgramaciónMauricioPumalpa
 
Estructura Secuencial
Estructura SecuencialEstructura Secuencial
Estructura SecuencialRegina Flores
 
Arreglo bidimensional ejercicio
Arreglo bidimensional ejercicioArreglo bidimensional ejercicio
Arreglo bidimensional ejercicioKeevynMoreno
 
282722811 7-ejercicios-fase-3-c (1)
282722811 7-ejercicios-fase-3-c (1)282722811 7-ejercicios-fase-3-c (1)
282722811 7-ejercicios-fase-3-c (1)Jesus Tangarife
 
INTRODUCCIÓN A LA PROGRAMACIÓN
INTRODUCCIÓN A LA PROGRAMACIÓNINTRODUCCIÓN A LA PROGRAMACIÓN
INTRODUCCIÓN A LA PROGRAMACIÓNNataly Rojitas
 
IntroduccióN A Visual C
IntroduccióN A Visual CIntroduccióN A Visual C
IntroduccióN A Visual Coswchavez
 
POO. Unidad 2: Clases y objetos Ejercicio 2
POO. Unidad 2: Clases y objetos Ejercicio 2POO. Unidad 2: Clases y objetos Ejercicio 2
POO. Unidad 2: Clases y objetos Ejercicio 2Fabiola Valerio Ramirez
 
Javascript es6-ejercicios-resueltos-parte-2
Javascript es6-ejercicios-resueltos-parte-2Javascript es6-ejercicios-resueltos-parte-2
Javascript es6-ejercicios-resueltos-parte-2josegmay
 

What's hot (20)

FUNDAMENTOS DE LA PROGRAMACION ( I Bimestre Abril Agosto 2011)
FUNDAMENTOS DE LA PROGRAMACION ( I Bimestre Abril Agosto 2011)FUNDAMENTOS DE LA PROGRAMACION ( I Bimestre Abril Agosto 2011)
FUNDAMENTOS DE LA PROGRAMACION ( I Bimestre Abril Agosto 2011)
 
Practica 9 Laboratorio de Computación para Ingenieros FI
Practica 9 Laboratorio de Computación para Ingenieros FIPractica 9 Laboratorio de Computación para Ingenieros FI
Practica 9 Laboratorio de Computación para Ingenieros FI
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Practica 11 Laboratorio de Computación para Ingenieros FI
Practica 11 Laboratorio de Computación para Ingenieros FIPractica 11 Laboratorio de Computación para Ingenieros FI
Practica 11 Laboratorio de Computación para Ingenieros FI
 
Algoritmo utilizando pseudolenguaje
Algoritmo utilizando pseudolenguajeAlgoritmo utilizando pseudolenguaje
Algoritmo utilizando pseudolenguaje
 
Guía De Ejercicios Programación Web Básica
Guía De Ejercicios Programación Web BásicaGuía De Ejercicios Programación Web Básica
Guía De Ejercicios Programación Web Básica
 
Operaciones entre cadenas y valores numéricos en lenguaje C
Operaciones entre cadenas y valores numéricos en lenguaje COperaciones entre cadenas y valores numéricos en lenguaje C
Operaciones entre cadenas y valores numéricos en lenguaje C
 
Aa javaaa intro
Aa javaaa introAa javaaa intro
Aa javaaa intro
 
Programas e informes Programación
Programas e informes ProgramaciónProgramas e informes Programación
Programas e informes Programación
 
Estructura Secuencial
Estructura SecuencialEstructura Secuencial
Estructura Secuencial
 
Arreglo bidimensional ejercicio
Arreglo bidimensional ejercicioArreglo bidimensional ejercicio
Arreglo bidimensional ejercicio
 
282722811 7-ejercicios-fase-3-c (1)
282722811 7-ejercicios-fase-3-c (1)282722811 7-ejercicios-fase-3-c (1)
282722811 7-ejercicios-fase-3-c (1)
 
INTRODUCCIÓN A LA PROGRAMACIÓN
INTRODUCCIÓN A LA PROGRAMACIÓNINTRODUCCIÓN A LA PROGRAMACIÓN
INTRODUCCIÓN A LA PROGRAMACIÓN
 
IntroduccióN A Visual C
IntroduccióN A Visual CIntroduccióN A Visual C
IntroduccióN A Visual C
 
POO. Unidad 2: Clases y objetos Ejercicio 2
POO. Unidad 2: Clases y objetos Ejercicio 2POO. Unidad 2: Clases y objetos Ejercicio 2
POO. Unidad 2: Clases y objetos Ejercicio 2
 
Javascript es6-ejercicios-resueltos-parte-2
Javascript es6-ejercicios-resueltos-parte-2Javascript es6-ejercicios-resueltos-parte-2
Javascript es6-ejercicios-resueltos-parte-2
 
MéTodos
MéTodosMéTodos
MéTodos
 
Lenguaj script
Lenguaj scriptLenguaj script
Lenguaj script
 
Estructura de datos - Unidad 2: Recursividad
Estructura de datos - Unidad 2: Recursividad Estructura de datos - Unidad 2: Recursividad
Estructura de datos - Unidad 2: Recursividad
 
Ejercicio
EjercicioEjercicio
Ejercicio
 

Viewers also liked

Analizador Léxico y Sintáctico para Compilador que Invierte Cadenas utilizand...
Analizador Léxico y Sintáctico para Compilador que Invierte Cadenas utilizand...Analizador Léxico y Sintáctico para Compilador que Invierte Cadenas utilizand...
Analizador Léxico y Sintáctico para Compilador que Invierte Cadenas utilizand...Diego Paúl Cuenca Quezada
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaAngel Vázquez Patiño
 
Gestion de archivos
Gestion de archivos Gestion de archivos
Gestion de archivos kathiuxka
 
Gestion de archivos
Gestion de archivosGestion de archivos
Gestion de archivosJulian Parra
 
Manejo de archivos en JAVA
Manejo de archivos en JAVAManejo de archivos en JAVA
Manejo de archivos en JAVAMichelle Torres
 
Sistemas de Gestión de Archivos
Sistemas de Gestión de ArchivosSistemas de Gestión de Archivos
Sistemas de Gestión de ArchivosVero Mateus
 
Creacion de una aplicacion para dispositivos moviles 11-C Jorge L. y Victor F.
Creacion de una aplicacion para dispositivos moviles 11-C Jorge L. y Victor F.Creacion de una aplicacion para dispositivos moviles 11-C Jorge L. y Victor F.
Creacion de una aplicacion para dispositivos moviles 11-C Jorge L. y Victor F.Jorge Noy
 
Gestión de archivos
Gestión de archivosGestión de archivos
Gestión de archivoseduardoed5
 

Viewers also liked (9)

Analizador Léxico y Sintáctico para Compilador que Invierte Cadenas utilizand...
Analizador Léxico y Sintáctico para Compilador que Invierte Cadenas utilizand...Analizador Léxico y Sintáctico para Compilador que Invierte Cadenas utilizand...
Analizador Léxico y Sintáctico para Compilador que Invierte Cadenas utilizand...
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en Java
 
Gestion de archivos
Gestion de archivos Gestion de archivos
Gestion de archivos
 
Gestion de archivos
Gestion de archivosGestion de archivos
Gestion de archivos
 
Manejo de archivos en JAVA
Manejo de archivos en JAVAManejo de archivos en JAVA
Manejo de archivos en JAVA
 
6 Curso de POO en Java - clases y objetos
6  Curso de POO en Java - clases y objetos6  Curso de POO en Java - clases y objetos
6 Curso de POO en Java - clases y objetos
 
Sistemas de Gestión de Archivos
Sistemas de Gestión de ArchivosSistemas de Gestión de Archivos
Sistemas de Gestión de Archivos
 
Creacion de una aplicacion para dispositivos moviles 11-C Jorge L. y Victor F.
Creacion de una aplicacion para dispositivos moviles 11-C Jorge L. y Victor F.Creacion de una aplicacion para dispositivos moviles 11-C Jorge L. y Victor F.
Creacion de una aplicacion para dispositivos moviles 11-C Jorge L. y Victor F.
 
Gestión de archivos
Gestión de archivosGestión de archivos
Gestión de archivos
 

Similar to 6.Métodos en Java

Similar to 6.Métodos en Java (20)

6.funciones y recursividad en c++
6.funciones y recursividad en c++6.funciones y recursividad en c++
6.funciones y recursividad en c++
 
Computación 2 java
Computación 2 javaComputación 2 java
Computación 2 java
 
clases y objetos
clases y objetosclases y objetos
clases y objetos
 
Computación 2 java
Computación 2 javaComputación 2 java
Computación 2 java
 
Lec11 metodos
Lec11 metodosLec11 metodos
Lec11 metodos
 
Computación 3 sb04003 2013
Computación 3 sb04003 2013Computación 3 sb04003 2013
Computación 3 sb04003 2013
 
Computación 3
Computación 3Computación 3
Computación 3
 
3.introducción a las clases y los objetos en java
3.introducción a las clases y los objetos en java3.introducción a las clases y los objetos en java
3.introducción a las clases y los objetos en java
 
Curso netcsharp
Curso netcsharpCurso netcsharp
Curso netcsharp
 
03. Curso .NET con C# autor Universidad de Alicante.pdf
03. Curso .NET con C# autor Universidad de Alicante.pdf03. Curso .NET con C# autor Universidad de Alicante.pdf
03. Curso .NET con C# autor Universidad de Alicante.pdf
 
Computación 2 sept 2012
Computación 2 sept 2012Computación 2 sept 2012
Computación 2 sept 2012
 
Computación 2
Computación 2Computación 2
Computación 2
 
Informe#15
Informe#15Informe#15
Informe#15
 
Computación 2 c++
Computación 2 c++Computación 2 c++
Computación 2 c++
 
Computación 3
Computación 3Computación 3
Computación 3
 
Módulo 2
Módulo 2Módulo 2
Módulo 2
 
Computación 2 sept 2012
Computación 2 sept 2012Computación 2 sept 2012
Computación 2 sept 2012
 
Jyoc java-cap05 metodos (funciones)
Jyoc java-cap05 metodos (funciones)Jyoc java-cap05 metodos (funciones)
Jyoc java-cap05 metodos (funciones)
 
Practica 7 2016
Practica 7 2016Practica 7 2016
Practica 7 2016
 
07 Arrays.pptx
07 Arrays.pptx07 Arrays.pptx
07 Arrays.pptx
 

More from Ramiro Estigarribia Canese

8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdfRamiro Estigarribia Canese
 

More from Ramiro Estigarribia Canese (20)

8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf
 
Principios que Guían la Práctica
Principios que Guían la PrácticaPrincipios que Guían la Práctica
Principios que Guían la Práctica
 
CSS - Hojas de Estilo en Cascada.pdf
CSS -  Hojas de Estilo en Cascada.pdfCSS -  Hojas de Estilo en Cascada.pdf
CSS - Hojas de Estilo en Cascada.pdf
 
Python conceptos básicos
Python   conceptos básicosPython   conceptos básicos
Python conceptos básicos
 
Diseño de WebApps
Diseño de WebAppsDiseño de WebApps
Diseño de WebApps
 
Diseño basado en patrones
Diseño basado en patronesDiseño basado en patrones
Diseño basado en patrones
 
Servicios web
Servicios webServicios web
Servicios web
 
Especificaciones de los procesadores
Especificaciones de los procesadoresEspecificaciones de los procesadores
Especificaciones de los procesadores
 
Lenguaje de programación awk
Lenguaje de programación awkLenguaje de programación awk
Lenguaje de programación awk
 
Bases de datos con PHP y PDO
Bases de datos con PHP y PDOBases de datos con PHP y PDO
Bases de datos con PHP y PDO
 
Bases de datos con PHP y Mysqli
Bases de datos con PHP y MysqliBases de datos con PHP y Mysqli
Bases de datos con PHP y Mysqli
 
Interfaz de usuario
Interfaz de usuarioInterfaz de usuario
Interfaz de usuario
 
Variables del sistema en php
Variables del sistema en phpVariables del sistema en php
Variables del sistema en php
 
Funciones en php
Funciones en phpFunciones en php
Funciones en php
 
Bootstrap menues, contenedores y formularios
Bootstrap   menues, contenedores y formulariosBootstrap   menues, contenedores y formularios
Bootstrap menues, contenedores y formularios
 
Estructuras de control en bash
Estructuras de control en bashEstructuras de control en bash
Estructuras de control en bash
 
Visual studio code
Visual studio codeVisual studio code
Visual studio code
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
Herramienta cacti
Herramienta cactiHerramienta cacti
Herramienta cacti
 
Monitoreo de datacenter
Monitoreo de datacenterMonitoreo de datacenter
Monitoreo de datacenter
 

Recently uploaded

Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 

Recently uploaded (19)

Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 

6.Métodos en Java

  • 1. 6.Métodos: un análisis más detallado. Ramiro Estigarribia Canese
  • 2. Objetivos del Capítulo. ➔ Conocer cómo se asocian los métodos. ➔ Utilizar los métodos Math. ➔ Pasar información entre métodos. ➔ Comprender cómo se soporta el mecanismo de llamada/retorno. ➔ Conocer cómo los paquetes agrupan las clases relacionadas. ➔ Utilizar la generación de números aleatorios para implementar aplicaciones para juegos.
  • 3. Programas Reales. ➔ La mayoría de los programas que resuelven problemas reales son más grandes que los programas que se presentan en los primeros capítulos. ➔ La experiencia ha demostrado que la mejor forma de desarrollar y mantener un programa extenso es construirlo a partir de piezas (o componentes) simples y pequeñas. ➔ A esta técnica se le conoce como divide y vencerás.
  • 4. Módulos de programas. ➔ Existen tres tipos de módulos en Java: métodos, clases y paquetes. ➔ Para escribir programas, se combinan los nuevos métodos y clases que usted escribe con los que están disponibles en Java. ➔ Por lo general, las clases relacionadas están agrupadas en paquetes, de manera que se pueden importar a los programas y reutilizarse. ➔ En el capítulo 8 aprenderá a agrupar sus propias clases en paquetes.
  • 5. ¿Qué son los métodos? ➔ Los métodos permiten dividir un programa en módulos. ➔ Las instrucciones de los métodos se escriben sólo una vez, y se reutilizan muchas veces. ➔ Una razón para dividir un programa en módulos es la metodología “divide y vencerás”, que hace que el desarrollo sea más fácil de administrar. ➔ Otra razón es la reutilización de software (usar los métodos existentes como bloques de construcción para crear nuevos programas).
  • 6. Recomendación de Ingeniería del Software. ➔ Para promover la reutilización, cada método debe limitarse de manera que realice una sola tarea bien ➔ definida, y su nombre debe expresar esa tarea con efectividad. ➔ Estos métodos hacen que los programas sean más fáciles de escribir, depurar y modificar. ➔ Un método se invoca mediante una llamada, y cuando el método que se llamó completa su tarea, devuelve un resultado.
  • 7. La clase Math ➔ La clase Math cuenta con una colección de métodos que nos permiten realizar cálculos matemáticos. ➔ Por ejemplo, podemos calcular la raíz cuadrada de 900 con una llamada al siguiente método: Math.sqrt(900). Resultado = 30.0. ➔ El método sqrt recibe un argumento de tipo double y devuelve el resultado. ➔ Para imprimir el valor de la llamada anterior al método en una ventana de comandos: ➔ System.out.println( Math.sqrt( 900 ) );
  • 8.
  • 9. Raiz Cuadrada package raiz; import java.util.Scanner; public class Raiz { public static void main(String[] args) { Scanner entrada = new Scanner( System.in ); double numero, raiz; System.out.println("Ingrese 1 número:"); numero = entrada.nextInt(); raiz=Math.sqrt(numero); System.out.println("La Raiz es:"+raiz); } }
  • 10. Mayor de 2 Números package mayor; import java.util.Scanner; public class Mayor { public static void main(String[] args) { Scanner entrada = new Scanner( System.in ); double numero1, numero2, mayor; System.out.println("Ingrese 2 números:"); numero1 = entrada.nextInt(); numero2 = entrada.nextInt(); mayor=Math.max(numero1,numero2); System.out.println("El mayor es:"+mayor); } }
  • 11. Constante PI ➔ La clase Math también declara campos que representan unas constantes matemáticas de uso común: Math.PI. ➔ La constante Math.PI (3.14159265358979323846) es la proporción de la circunferencia de un círculo con su diámetro. ➔ Al hacer a estos campos static, se puede acceder a ellos mediante el nombre de clase Math y un separador de punto (.), justo igual que los métodos de la clase Math.
  • 12. Función con 1 Parámetro. package cuadrado; public class Cuadrado { static int cuadrado(int numero) { int resultado; resultado=numero*numero; return resultado; } public static void main(String[] args) { int cuadrado, numero=12; cuadrado = cuadrado( numero ); System.out.println("El cuadrado es: "+cuadrado); }}
  • 13. Métodos con muchos parámetros ➔ Los capítulos 3 a 5 presentaron clases que contienen métodos simples. ➔ Ahora le mostraremos cómo escribir métodos con varios parámetros. ➔ La siguiente aplicación utiliza el método máximo, declarado por el programador, para determinar y devolver el mayor de tres números. ➔ Cuando la aplicación empieza a ejecutarse, el método main crea un objeto de la clase BuscarMayor.
  • 14. Utilizando Clases: Mayor de 2 Números //Mayor.java package mayor; public class Mayor { public static void main(String[] args) { BuscarMayor BuscarMayor = new BuscarMayor(); BuscarMayor.Mayor(); } }
  • 15. Mayor de 3 Números BuscadorMaximo.java package mayor; import java.util.Scanner; public class BuscarMayor { public void Mayor() { Scanner entrada = new Scanner( System.in ); System.out.print("Ingrese 2 numeros:"); int numero1 = entrada.nextInt(); int numero2 = entrada.nextInt(); int resultado = maximo(numero1,numero2); System.out.println( "El mayor es: " + resultado ); } public int maximo(int x, int y) { int mayor = x; // asume que x es el mayor if ( y > mayor ) mayor = y; return mayor; } }
  • 16. Combinando texto mediante concatenación ➔ Java permite crear objetos String mediante el ensamblado de objetos string más pequeños, mediante el uso del operador +. ➔ A esto se le conoce como concatenación de objetos string. ➔ El operador + crea un nuevo objeto String en el cual los caracteres del operando derecho se colocan al final de los caracteres en el operando izquierdo. ➔ Por ejemplo, la expresión "hola" + "a todos" crea el objeto String "hola a todos".
  • 17. Ejemplo práctico: Sorteo de números. ➔ En ésta y en la siguiente sección desarrollaremos un programa de juego con varios métodos. ➔ El programa utiliza la mayoría de las instrucciones de control presentadas hasta este punto en el libro, e introduce conceptos nuevos. ➔ Hay algo en el ambiente de un casino de apuestas que anima a las personas: ➔ Es el elemento de azar, la posibilidad de que la suerte convierta un bolsillo lleno de dinero. ➔ El elemento de azar puede introducirse en un programa mediante un objeto de la clase Random (paquete java.util)
  • 18. Random ➔ Se puede crear un generador de números aleatorios de la siguiente manera: Random numerosAleatorios = new Random(); ➔ Después, el generador de números aleatorios puede usarse para generar nuevos valores númericos, boolean, byte, float, double, int, long y gaussianos. ➔ El método nextInt de la clase Random genera un valor int aleatorio en el rango de –2.147.483.648 a +2. 147.483.647. ➔ Cualquier valor en ese rango debería tener una oportunidad de salir sorteado.
  • 19. package sorteo; import java.util.Random; //clase Random public class Sorteo { public static void main( String args[] ) { Random sortear = new Random(); int cara; for ( int contador = 1; contador <= 5; contador++ ) { cara = 1 + sortear.nextInt( 6 ); System.out.printf( " "+cara ); // muestra el valor generado } } } Programa que lanza un dado 5 veces