Sunteți pe pagina 1din 18

rea comn de Informtica

JAVA

Metodos

rea comn de Informtica


Mtodos - definicin

JAVA

Un mtodo es una funcin, mdulo, segmento, rutina, subrutina o subalgoritmo


que puede ser definido dentro de una clase con el propsito de ejecutar una
funcin, comportamiento o tarea especfica, pudiendo ser llamado o invocado
desde el mtodo principal u otro mtodo cuando se requiera.

Fuente: Lpez Roman, L. (2013). Metodologa de la programacin orientada a objetos (Segunda ed.). Mxico D.F.: Alfaomega.

rea comn de Informtica


JAVA

Mtodos que no regresan valor void / Primer ejemplo

package metodos;

import javax.swing.JOptionPane;

public class HolaNoRegresaValor {


public static void main(String[] args) {
HolaNoRegresaValor saludito = new HolaNoRegresaValor();
saludito.SaludoBienvenida();
}

void SaludoBienvenida() {
JOptionPane.showMessageDialog(null, "Hola!");
JOptionPane.showMessageDialog(null, "mtodo llamado: HolaNoRegresaValor");
JOptionPane.showMessageDialog(null, "ste mtodo tiene tres sentencias");
}

rea comn de Informtica


JAVA

Mtodos que no regresan valor void / Segundo ejemplo

Mtodos estticos o de clase


Se cargan en memoria en tiempo de compilacin y no a medida que se ejecutan las lneas de
cdigo del programa.
Van precedidos del modificador static. Para invocar a un mtodo esttico no se necesita crear un
objeto de la clase en la que se define.
Si se invoca desde la clase en la que se encuentra definido, basta con escribir su nombre.
Si se le invoca desde una clase distinta, debe anteponerse a su nombre, el de la clase en la que se
encuentra seguido del operador punto (.) <NombreClase>.metodoEstatico

package metodos;

import javax.swing.JOptionPane;

public class HolaStatico {


public static void main(String[] args) {
SaludoBienvenida();
}

static void SaludoBienvenida() {


JOptionPane.showMessageDialog(null, "Hola!");
JOptionPane.showMessageDialog(null, "mtodo estatico llamado: HolaStatico");
JOptionPane.showMessageDialog(null, "ste mtodo tiene tres sentencias");
}

rea comn de Informtica


JAVA

Mtodos que no regresan valor void / Tercer ejemplo

Desarrollar un programa en Java, que ayude a un nio a revisar sus tareas referentes a las operaciones aritmticas
fundamentales: suma, resta, multiplicacion y division.

package metodos;

//Programa AYUDA
//Elaborado por: Leobardo Lpez Romn
//Ayuda.java
import java.util.Scanner;

public class Ayuda {


// Declarar variables globales o de clase (es necesario colocar la palabra clave "static")
static int numeroUno = 0;
static int numeroDos =0;
static int resultadoNino = 0;
static int resultadoComp = 0;
static int opcion = 0;
static char desea;
static String entradaChar;
public static void main(String args[]) {
// Crear objeto para entrada de datos por el teclado
Scanner entrada = new Scanner(System.in);
do {

System.out.println("");
System.out.println(" TE PUEDO AYUDAR A: ");
System.out.println("-------------------------------------");
System.out.println(" 1. SUMAR
|");
System.out.println(" 2. RESTAR
");
System.out.println(" 3. MULTIPLICAR
");
System.out.println(" 4. DIVIDIR
");
System.out.println(" 5. FIN
");
System.out.println("------------------------------------");
System.out.print(" ESCOGER OPCION: ");
opcion = entrada.nextInt();
switch (opcion) {
case 1:
ayudaSumar();
break;
case 2:
ayudaRestar();
break;
case 3:
ayudaMultiplicar();
break;
case 4:
ayudaDividir();
break;
}
} while (opcion != 5);
}

System.out.println("Decidiste cerrar la aplicacin. Chao.");

Fuente: Lpez Roman, L. (2013). Metodologa de la programacin orientada a objetos (Segunda ed.). Mxico D.F.: Alfaomega.

rea comn de Informtica


JAVA

Mtodos que no regresan valor void / Tercer ejemplo

/* Mtodos estticos o de clase


Se cargan en memoria en tiempo de compilacin y no a medida que se ejecutan las lneas de cdigo del programa.
Van precedidos del modificador static.
Para invocar a un mtodo esttico no se necesita crear un objeto de la clase en la que se define.
Si se invoca desde la clase en la que se encuentra definido, basta con escribir su nombre.
Si se le invoca desde una clase distinta, debe anteponerse a su nombre,
el de la clase en la que se encuentra seguido del operador punto (.) <NombreClase>.metodoEstatico*/
public static void ayudaSumar() {
// Crear objeto para entrada de datos por el teclado
Scanner entrada = new Scanner(System.in);

System.out.println("-----------------");
do {
System.out.println("----- AYUDANDO A SUMAR -----");
System.out.print("Teclee primer numero: ");
numeroUno = entrada.nextInt();
System.out.print("Teclee segundo numero: ");
numeroDos = entrada.nextInt();
System.out.println("
------------ +");
System.out.print("
Teclee su suma: ");
resultadoNino = entrada.nextInt();

resultadoComp = numeroUno + numeroDos;

if (resultadoNino == resultadoComp)
System.out.println("\nLa suma esta correcta");
else
System.out.println("\nLa suma esta incorrecta");

System.out.print("\nDesea revisar otra suma(S/N)?: ");


entradaChar = entrada.next();
desea = entradaChar.charAt(0);
entrada.nextLine();
} while (desea == 'S' || desea == 's');

rea comn de Informtica


JAVA

Mtodos que no regresan valor void / Tercer ejemplo

public static void ayudaRestar() {


// Crear objeto para entrada de datos por el teclado
Scanner entrada = new Scanner(System.in);

System.out.println("-----------------");
do {
System.out.println("----- AYUDANDO A RESTAR -----");
System.out.print("Teclee primer numero: ");
numeroUno = entrada.nextInt();
System.out.print("Teclee segundo numero: ");
numeroDos = entrada.nextInt();
System.out.println("
------------ -");
System.out.print(" Teclee su resta: ");
resultadoNino = entrada.nextInt();

resultadoComp = numeroUno - numeroDos;


if (resultadoNino == resultadoComp)
System.out.println("\nLa resta esta correcta");
else
System.out.println("\nLa resta esta incorrecta");

System.out.print("\nDesea revisar otra resta(S/N)?: ");


entradaChar = entrada.next();
desea = entradaChar.charAt(0);
entrada.nextLine();
} while (desea == 'S' || desea == 's');

rea comn de Informtica


JAVA

Mtodos que no regresan valor void / Tercer ejemplo


public static void ayudaMultiplicar() {
// Crear objeto para entrada de datos por el teclado
Scanner entrada = new Scanner(System.in);

System.out.println("-----------------");
do {
System.out.println("---- AYUDANDO A MULTIPLICAR ----");
System.out.print(" Teclee primer numero: ");
numeroUno = entrada.nextInt();
System.out.print(" Teclee segundo numero: ");
numeroDos = entrada.nextInt();
System.out.println("
------------ *");
System.out.print("Teclee su multiplicacion: ");
resultadoNino = entrada.nextInt();
resultadoComp = numeroUno * numeroDos;

if (resultadoNino == resultadoComp)
System.out.println("\nLa multiplicacion esta correcta");
else
System.out.println("\nLa multiplicacion esta incorrecta");

System.out.print("\nDesea revisar otra multiplicacion(S/N)?: ");


entradaChar = entrada.next();
desea = entradaChar.charAt(0);
entrada.nextLine();
} while (desea == 'S' || desea == 's');

rea comn de Informtica


JAVA

Mtodos que no regresan valor void / Tercer ejemplo

public static void ayudaDividir() {


// Crear objeto para entrada de datos por el teclado
Scanner entrada = new Scanner(System.in);

System.out.println("-----------------");
do {
System.out.println("----- AYUDANDO A DIVIDIR -----");
System.out.print("Teclee primer numero: ");
numeroUno = entrada.nextInt();
System.out.print("Teclee segundo numero: ");
numeroDos = entrada.nextInt();
System.out.println("
------------ /");
System.out.print(" Teclee su division: ");
resultadoNino = entrada.nextInt();

resultadoComp = numeroUno / numeroDos;

if (resultadoNino == resultadoComp)
System.out.println("\nLa division esta correcta");
else
System.out.println("\nLa division esta incorrecta");

System.out.print("\nDesea revisar otra cuenta division(S/N)?: ");


entradaChar = entrada.next();
desea = entradaChar.charAt(0);
entrada.nextLine();
} while (desea == 'S' || desea == 's');

rea comn de Informtica


Mtodos Variables globales

JAVA

Cuando un programa utiliza mtodos se pueden declarar variables, tanto en el


contexto global de la clase, como de manera local en cada mtodo.

A las variables definidas en el contexto global se les llama variables globales o


variables de clase, las cuales pueden utilizarse en cualquier mtodo de la clase.
package metodos;

//Programa VARIABLE GLOBAL


//Elaborado por: Leobardo Lpez Romn
//VarGlobal.java

public class VariableGlobal {


// Declarar variable global: se declara esttica
static int numero;

public static void main(String args[]) {


numero = 0;
System.out.println("x = " + numero);
cambiar();
System.out.println("x = " + numero);
}

public static void cambiar() {


numero = 1;
}

rea comn de Informtica


Mtodos Variables locales

JAVA

Son las que se definen en cada mtodo, las cuales solo pueden utilizarse en el contecto del
mtodo en que fueron definidas.
package metodos;

//Programa VARIABLE LOCAL


//Elaborado por: Leobardo Lpez Romn
//VarLocal.java

public class VariableLocal {


// Declarar variable global o de clase
static int x;

public static void main(String args[]) {


x = 0;
System.out.println("x = " + x);
cambiar();
System.out.println("x = " + x);
}

public static void cambiar() {


//Declaracin de la variable local
int x;
x = 1;
}

Aunque las dos variables tienen el mismo nombre, son diferentes, ya que una se defini como global a la clase y la
otra como local.
Aun cuando la local definida en el mtodo cambiar() se llame igual que la global, para este mtodo tiene mayor
jerarqua la local, es decir, oculta a la global (de la clase), porque tiene el mismo nombre.
En otras palabras, en el programa se define una variable global o de clase x a la que se le asigna el valor cero (0) (en
el mtodo principal), luego, se llama al mtodo cambiar(), donde se define una variable local x y se le asigna el
valor uno (1).
Al regresar al mtodo principal se imprime x; Cul x?
Obviamente la global, porque es la nica de las dos x que se puede usar en el mtodo principal, que tiene el valor
de cero (0).

rea comn de Informtica


Mtodos Ejercicios propuestos

JAVA

Desarrollar un programa Java, que muestre un men de opciones mediante el cual se pueda escoger calcular el rea de
alguna de las figuras geomtricas: tringulo, cuadrado, rectngulo y crculo. Una vez seleccionada la opcin, que llame a
un mtodo que permita solicitar los datos necesarios, leerlos, hacer el clculo correspondiente e imprimirlo.

package metodos;

//Programa AREAS
//Elaborado por: Leobardo Lpez Romn
//AreasFigGeometricas.java
import java.util.Scanner;

public class AreasFigGeometricas {


public static void main(String args[]) {
// Crear objeto para entrada de datos por el teclado
Scanner entrada = new Scanner(System.in);
// Declarar variable
int opcion;
do {

System.out.println("---------------------------");
System.out.println("|AREAS FIGURAS GEOMETRICAS|");
System.out.println("|-------------------------|");
System.out.println("| 1. TRIANGULO
|");
System.out.println("| 2. CUADRADO
|");
System.out.println("| 3. RECTANGULO
|");
System.out.println("| 4. CIRCULO
|");
System.out.println("| 5. FIN
|");
System.out.println("|-------------------------|");
System.out.print(" TECLEE OPCION: ");
opcion = entrada.nextInt();
switch (opcion) {
case 1:
calcularAreaTriangulo();
break;
case 2:
calcularAreaCuadrado();
break;
case 3:
calcularAreaRectangulo();
break;
case 4:
calcularAreaCirculo();
break;
}
} while (opcion != 5);

rea comn de Informtica


Mtodos Ejercicios propuestos

JAVA

public static void calcularAreaTriangulo() {


// Crear objeto para entrada de datos por el teclado
Scanner entrada = new Scanner(System.in);
// Declarar variables
float base, altura, areaTria;

String datoEntrada;
System.out.println("\n--------- Lectura de datos ---------");
System.out.print("Teclee base: ");
base = entrada.nextFloat();
System.out.print("Teclee altura: ");
altura = entrada.nextFloat();
areaTria = (base * altura) / 2;
System.out.println("\n------------ Resultado -------------");
System.out.println("Area = " + areaTria);

public static void calcularAreaCuadrado() {


// Crear objeto para entrada de datos por el teclado
Scanner entrada = new Scanner(System.in);
// Declarar variables
float lado, areaCuad;

System.out.println("\n--------- Lectura del dato ---------");


System.out.print("Teclee lado: ");
lado = entrada.nextFloat();
areaCuad = lado * lado;
System.out.println("\n------------ Resultado -------------");
System.out.println("Area = " + areaCuad);

rea comn de Informtica


Mtodos Ejercicios propuestos

JAVA

public static void calcularAreaRectangulo() {


// Crear objeto para entrada de datos por el teclado
Scanner entrada = new Scanner(System.in);
// Declarar variables
float base, altura, areaRect;

System.out.println("\n--------- Lectura de datos ---------");


System.out.print("Teclee base: ");
base = entrada.nextFloat();
System.out.print("Teclee altura: ");
altura = entrada.nextFloat();
areaRect = base * altura;
System.out.println("\n------------ Resultado -------------");
System.out.println("Area = " + areaRect);

public static void calcularAreaCirculo() {


// Crear objeto para entrada de datos por el teclado
Scanner entrada = new Scanner(System.in);
// Declarar variables
float radio, areaCirc;

System.out.println("\n--------- Lectura del dato ---------");


System.out.print("Teclee radio: ");
radio = entrada.nextFloat();
areaCirc = 3.1416F * (radio * radio);
System.out.println("\n------------ Resultado -------------");
System.out.println("Area = " + areaCirc);

rea comn de Informtica


Mtodos Parametros

JAVA

Si analizamos los conceptos de variables de clase (globales) y locales, inferimos que


cuando se usan variables locales, stas son independientes de las globales y de las de
otros mtodos.

En ocasiones puede ser necesario conectar una variable de clase (global) con una local
para transmitir datos entre ambas, o bien conectar variables locales de un mtodo con
variables locales de otro(s) mtodo(s); esto es posible mediante el uso de parmetros,
donde las variables fungen como tales.

rea comn de Informtica


Mtodos Parametros por valor

package metodos;

//Programa PARAMETRO POR VALOR


//Elaborado por: Leobardo Lpez Romn
//ParametroPorValor.java

public class ParametroPorValor {


public static void main(String args[]) {
// Declarar variable
int x;

x = 0;
System.out.println("x = " + x);
cambiar(x);
System.out.println("x = " + x);

public static void cambiar(int y) {


y = 1;
}

JAVA

rea comn de Informtica


Mtodos Parametros por referencia

JAVA

Es una variable local de un mtodo que se define como parmetro en el encabezado de


ste y sirve para conectarse con otra variable de otro mtodo mediante el envi de su
direccin, es decir, se conecta con la otra variable a travs de su contenido; al llamarse o
invocarse el mtodo se establece la conexin, convirtindose en sinnimos.
Esto significa que lo que le sucede a la variable local del mtodo llamado le suceder a la
variable del mtodo con la que fue conectada al hacer la llamada, porque utilizan la
misma posicin (direccin) de memoria.
Como ejemplo, se podra decir que se enva el documento original y si lo tachan 0
manchan, pues queda manchado y sucio.

rea comn de Informtica


Mtodos que regresan valor

JAVA

package metodos;

public class PruebaBuscadorMaximo {


public static void main(String[] args) {
BuscadorMaximo buscadorMaximo = new BuscadorMaximo();
buscadorMaximo.determinarMaximo();
}
}

package metodos;

import java.util.Scanner;

public class BuscadorMaximo {


public void determinarMaximo() {
Scanner entrada = new Scanner(System.in);
System.out.println("Escriba tres valores de punto flotante, separados por
espacios: ");
double numero1 = entrada.nextDouble();
double numero2 = entrada.nextDouble();
double numero3 = entrada.nextDouble();
double resultado = maximo(numero1, numero2, numero3);

System.out.println("El maximo es: " + resultado);

public double maximo(double x, double y, double z) {


double valorMaximo = x; // asume que x es el mayor para empezar
if(y > valorMaximo)
valorMaximo = y;
if(z > valorMaximo)
valorMaximo = z;
}

return valorMaximo;

S-ar putea să vă placă și