METODOS I

download METODOS I

of 18

description

programacion

Transcript of METODOS I

  • rea comn de InformticaJAVA

    Metodos

  • rea comn de InformticaJAVAMtodos - definicin

    Un mtodo es una funcin, mdulo, segmento, rutina, subrutina o subalgoritmoque puede ser definido dentro de una clase con el propsito de ejecutar unafuncin, comportamiento o tarea especfica, pudiendo ser llamado o invocadodesde 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 InformticaJAVAMtodos 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 InformticaJAVAMtodos que no regresan valor void / Segundo ejemplo

    package metodos;import javax.swing.JOptionPane;public class HolaStatico {public static void main(String[] args) {SaludoBienvenida();

    Mtodos estticos o de claseSe cargan en memoria en tiempo de compilacin y no a medida que se ejecutan las lneas decdigo del programa.Van precedidos del modificador static. Para invocar a un mtodo esttico no se necesita crear unobjeto 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 seencuentra seguido del operador punto (.) .metodoEstatico

    }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 InformticaJAVA

    package metodos;//Programa AYUDA//Elaborado por: Leobardo Lpez Romn//Ayuda.javaimport 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 tecladoScanner entrada = new Scanner(System.in);do {

    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.

    1

    Mtodos que no regresan valor void / Tercer ejemplo

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

    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.");}

  • rea comn de InformticaJAVA

    /* Mtodos estticos o de claseSe 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 (.) .metodoEstatico*/public static void ayudaSumar() {// Crear objeto para entrada de datos por el tecladoScanner 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();

    2

    Mtodos que no regresan valor void / Tercer ejemplo

    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 InformticaJAVA

    public static void ayudaRestar() {// Crear objeto para entrada de datos por el tecladoScanner 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)

    3

    Mtodos que no regresan valor void / Tercer ejemplo

    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 InformticaJAVA

    public static void ayudaMultiplicar() {// Crear objeto para entrada de datos por el tecladoScanner 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

    4

    Mtodos que no regresan valor void / Tercer ejemplo

    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 InformticaJAVA

    public static void ayudaDividir() {// Crear objeto para entrada de datos por el tecladoScanner 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();

    5

    Mtodos que no regresan valorMtodos que no regresan valor void / Tercer ejemplo

    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 InformticaJAVAMtodos Variables globales

    Cuando un programa utiliza mtodos se pueden declarar variables, tanto en elcontexto global de la clase, como de manera local en cada mtodo.A las variables definidas en el contexto global se les llama variables globales ovariables de clase, las cuales pueden utilizarse en cualquier mtodo de la clase.

    package metodos;//Programa VARIABLE GLOBAL //Elaborado por: Leobardo Lpez Romn//VarGlobal.javapublic class VariableGlobal {// Declarar variable global: se declara estticastatic int numero;

    public static void main(String args[]) {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 InformticaJAVAMtodos Variables locales

    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.javapublic class VariableLocal {// Declarar variable global o de clasestatic int x;

    public static void main(String args[]) {x = 0;System.out.println("x = " + x);cambiar();System.out.println("x = " + x);System.out.println("x = " + x);}public static void cambiar() {//Declaracin de la variable localint x;x = 1;}}

    Aunque las dos variables tienen el mismo nombre, son diferentes, ya que una se defini como global a la clase y laotra como local.Aun cuando la local definida en el mtodo cambiar() se llame igual que la global, para este mtodo tiene mayorjerarqua 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) (enel mtodo principal), luego, se llama al mtodo cambiar(), donde se define una variable local x y se le asigna elvalor 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 valorde cero (0).

  • rea comn de InformticaJAVAMtodos Ejercicios propuestos

    Desarrollar un programa Java, que muestre un men de opciones mediante el cual se pueda escoger calcular el rea dealguna de las figuras geomtricas: tringulo, cuadrado, rectngulo y crculo. Una vez seleccionada la opcin, que llame aun mtodo que permita solicitar los datos necesarios, leerlos, hacer el clculo correspondiente e imprimirlo.package metodos;//Programa AREAS//Elaborado por: Leobardo Lpez Romn//AreasFigGeometricas.javaimport java.util.Scanner;public class AreasFigGeometricas {public static void main(String args[]) {// Crear objeto para entrada de datos por el tecladoScanner entrada = new Scanner(System.in);

    // Declarar variableint opcion;do { System.out.println("---------------------------");System.out.println("|AREAS FIGURAS GEOMETRICAS|");System.out.println("|-------------------------|");System.out.println("| 1. TRIANGULO |");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 InformticaJAVAMtodos Ejercicios propuestos

    public static void calcularAreaTriangulo() {// Crear objeto para entrada de datos por el tecladoScanner entrada = new Scanner(System.in);// Declarar variablesfloat 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 tecladoScanner entrada = new Scanner(System.in);// Declarar variablesfloat 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 InformticaJAVAMtodos Ejercicios propuestos

    public static void calcularAreaRectangulo() {// Crear objeto para entrada de datos por el tecladoScanner entrada = new Scanner(System.in);// Declarar variablesfloat 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 tecladoScanner entrada = new Scanner(System.in);// Declarar variables// Declarar variablesfloat 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 InformticaJAVAMtodos Parametros

    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 InformticaJAVAMtodos Parametros por valor

    package metodos;//Programa PARAMETRO POR VALOR//Elaborado por: Leobardo Lpez Romn//ParametroPorValor.javapublic class ParametroPorValor {public static void main(String args[]) {// Declarar variableint x;

    x = 0;System.out.println("x = " + x);cambiar(x);System.out.println("x = " + x);}public static void cambiar(int y) {y = 1;}}

  • rea comn de InformticaJAVAMtodos Parametros por referencia

    Es una variable local de un mtodo que se define como parmetro en el encabezado deste y sirve para conectarse con otra variable de otro mtodo mediante el envi de sudireccin, es decir, se conecta con la otra variable a travs de su contenido; al llamarse oinvocarse 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 lavariable del mtodo con la que fue conectada al hacer la llamada, porque utilizan lamisma posicin (direccin) de memoria.Como ejemplo, se podra decir que se enva el documento original y si lo tachan 0manchan, pues queda manchado y sucio.

  • rea comn de InformticaJAVAMtodos que regresan valor

    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 porSystem.out.println("Escriba tres valores de punto flotante, separados porespacios: "); 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 empezarif(y > valorMaximo)valorMaximo = y;if(z > valorMaximo)valorMaximo = z;return valorMaximo;}}