1. METODOS PASO DE PARAMETROS Y VARIABLES LOCALES Aquino Herrera Leonel Cortes Hernández Eduardo Guzmán Cruz EliasAlberto Hernández Campos MitziLizeth Puertos Herrera Elizabeth
2. Método Un bloque de código que tiene un nombre, recibe unos parámetros o argumentos (opcionalmente), contiene sentencias o instrucciones para realizar algo (opcionalmente) y devuelve un valor de algún Tipo conocido (opcionalmente).
3. CARACTERISTICAS DE LOS METODOS 1.-Contiene una o mas declaraciones 2.-Cada método tiene un nombre y este nombre se utiliza para llamar al método(las palabras clave no pueden ser utilizadas como el nombre del método). 3.-Debe llevar paréntesis después del nombre. 4.-El método main() esta reservado por java como el método que inicializa la ejecución del programa.
4. La sintaxis global es:Tipo_Valor_devueltonombre_método ( lista_argumentos ) {bloque_de_codigo; }
5. la lista de argumentos se expresa declarando el tipo y nombre de los mismos (como en las declaraciones de variables). Si hay más de uno se separan por comas.Por ejemplo:intsumaEnteros ( int a, int b ) { int c = a + b; return c;} El método se llama sumaEnteros.Recibe dos parámetros también enteros. Sus nombres son a y b.Devuelve un entero.
6. Paso de parámetros: Por Valor Por Referencia Por Valor: Los parámetros correspondientes reciben una COPIA de los valores (literales, constantes, variables, resultado de la evaluación de una expresión) de los parámetros actuales; por tanto, los cambios que se produzcan en ellos por efecto de la ejecución de la función no podrán afectar el valor de los parámetros actuales en caso de que estos fueran variables.
7. Por Referencia: Lo que se pasa a la función es la dirección de emoriadel parámetro actual, en consecuencia debe ser una variable. Así, una variable pasada como parámetro actual es compartida; es decir, puede ser accedida y modificada durante la ejecución de la función.
9. importjavax.swing.*; importjava.util.Scanner; publicclassAplicacion{//Definicion de clase staticStringparametroGlobal = ""; 1 publicAplicacion (Stringparametro){3 this.parametroGlobal=parametro;4 Nombre(parametroGlobal);5 } publicstaticvoid Nombre(String nombre){6 Scanner sca = new Scanner (System.in);7 System.out.print("Ingresa nombre: ");8 nombre = sca.next();9 System.out.println(parametroGlobal+nombre);10 } publicstaticvoidmain (Stringargs[]){ new Aplicacion("Hola ");2 } }
10. importjavax.swing.*; importjava.util.Scanner; publicclassAplicacion{//Definicion de clase staticStringparametroGlobal = "";1 publicAplicacion (Stringparametro){3 this.parametroGlobal=parametro;4 Nombre(parametroGlobal);5 } publicstaticvoid Nombre(String nombre){6 Scanner sca = new Scanner (System.in);7 System.out.print("Ingresa nombre: ");8 nombre = sca.next();9 System.out.println(parametroGlobal+nombre);10 } publicstaticvoidmain (Stringargs[]){ new Aplicacion("Hola "); 2 } }
11. importjavax.swing.*; importjava.util.Scanner; publicclassAplicacion{//Definicion de clase staticStringparametroGlobal = "“;1 publicAplicacion (Stringparametro){ 3 this.parametroGlobal=parametro;4 Nombre(parametroGlobal);5 } publicstaticvoid Nombre(String nombre){6 Scanner sca = new Scanner (System.in);7 System.out.print("Ingresa nombre: ");8 nombre = sca.next();9 System.out.println(parametroGlobal+nombre);10 } publicstaticvoidmain (Stringargs[]){ new Aplicacion("Hola ");2 } }
12. importjavax.swing.*; importjava.util.Scanner; publicclassAplicacion{//Definicion de clase staticStringparametroGlobal = "";1 publicAplicacion (Stringparametro){ 3 this.parametroGlobal=parametro;4 Nombre(parametroGlobal);5 } publicstaticvoid Nombre(String nombre){6 Scanner sca = new Scanner (System.in);7 System.out.print("Ingresa nombre: ");8 nombre = sca.next();9 System.out.println(parametroGlobal+nombre);10 } publicstaticvoidmain (Stringargs[]){ new Aplicacion("Hola ");//2 } }
13. importjavax.swing.*; importjava.util.Scanner; publicclassAplicacion{//Definicion de clase staticStringparametroGlobal = "";1 publicAplicacion (Stringparametro){ 3 this.parametroGlobal=parametro;4 Nombre(parametroGlobal);5 } publicstaticvoid Nombre(String nombre){6 Scanner sca = new Scanner (System.in);7 System.out.print("Ingresa nombre: ");8 nombre = sca.next();9 System.out.println(parametroGlobal+nombre);10 } publicstaticvoidmain (Stringargs[]){ new Aplicacion("Hola ");//2 } }
14. importjavax.swing.*; importjava.util.Scanner; publicclassAplicacion{//Definicion de clase staticStringparametroGlobal = "";1 publicAplicacion (Stringparametro){ 3 this.parametroGlobal=parametro;4 Nombre(parametroGlobal);5 } publicstaticvoid Nombre(String nombre){6 Scanner sca = new Scanner (System.in);7 System.out.print("Ingresa nombre: ");8 nombre = sca.next();9 System.out.println(parametroGlobal+nombre);10 } publicstaticvoidmain (Stringargs[]){ new Aplicacion("Hola ");2 } }
15. importjavax.swing.*; importjava.util.Scanner; publicclassAplicacion{//Definicion de clase staticStringparametroGlobal = "";//1 publicAplicacion (Stringparametro){ //3 this.parametroGlobal=parametro;4// Nombre(parametroGlobal);5// } publicstaticvoid Nombre(String nombre){6 Scanner sca = new Scanner (System.in);7 System.out.print("Ingresa nombre: ");8 nombre = sca.next();9 System.out.println(parametroGlobal+nombre);10 } publicstaticvoidmain (Stringargs[]){ new Aplicacion("Hola ");//2 } }
16. importjavax.swing.*; importjava.util.Scanner; publicclassAplicacion{//Definicion de clase staticStringparametroGlobal = "";1 publicAplicacion (Stringparametro){ 3 this.parametroGlobal=parametro;4 Nombre(parametroGlobal);5 } publicstaticvoid Nombre(String nombre){6 Scanner sca = new Scanner (System.in);7 System.out.print("Ingresa nombre: "); 8 nombre = sca.next();9 System.out.println(parametroGlobal+nombre);10 } publicstaticvoidmain (Stringargs[]){ new Aplicacion("Hola ");//2 } }
17. importjavax.swing.*; importjava.util.Scanner; publicclassAplicacion{//Definicion de clase staticStringparametroGlobal = "";1 publicAplicacion (Stringparametro){ 3 this.parametroGlobal=parametro;4 Nombre(parametroGlobal);5 } publicstaticvoid Nombre(String nombre){6 Scanner sca = new Scanner (System.in);7 System.out.print("Ingresa nombre: ");8 nombre = sca.next(); 9 System.out.println(parametroGlobal+nombre);10 } publicstaticvoidmain (Stringargs[]){ new Aplicacion("Hola "); } }
18. importjavax.swing.*; importjava.util.Scanner; publicclassAplicacion{//Definicion de clase staticStringparametroGlobal = "";1 publicAplicacion (Stringparametro){ 3 this.parametroGlobal=parametro;4 Nombre(parametroGlobal);5 } publicstaticvoid Nombre(String nombre){6 Scanner sca = new Scanner (System.in);7 System.out.print("Ingresa nombre: ");8 nombre = sca.next();9 System.out.println(parametroGlobal+nombre); 10 } publicstaticvoidmain (Stringargs[]){ new Aplicacion("Hola "); } }
19. importjavax.swing.*; importjava.util.Scanner; publicclassAplicacion{//Definicion de clase staticStringparametroGlobal = ""; 1 publicAplicacion (Stringparametro){3 this.parametroGlobal=parametro;4 Nombre(parametroGlobal);5 } publicstaticvoid Nombre(String nombre){6 Scanner sca = new Scanner (System.in);7 System.out.print("Ingresa nombre: ");8 nombre = sca.next();9 System.out.println(parametroGlobal+nombre);10 } publicstaticvoidmain (Stringargs[]){ new Aplicacion("Hola ");2 } }
20. VARIABLES LOCALES Una variable local es, a la que se le otorga un ámbito local. Tales variables sólo pueden accederse desde la función o bloque de instrucciones en donde se declaran. Las variables locales se contraponen a las variables globales.
21. En la mayoría de lenguajes de programación las variables locales son variables automáticas almacenadas directamente en la pila de llamadas. Esto significa que cuando una función recursiva se llama a sí misma, las variables locales reciben, en cada instancia de la función, espacio para el direccionamiento de memoria separados. De esta forma las variables con este ámbito se pueden declarar, reescribir y leer sin riesgo de efectos secundarios para los procesos fuera del bloque en el que son declarados.
22. Las variables locales estáticas en funciones globales pueden considerarse variables globales, dado que su valor permanece en la memoria durante todo el tiempo de vida del programa. La única diferencia es que sólo pueden accederse desde una única función. Las variables locales estáticas también se pueden declarar en class-levelfunctions en lenguajes de programación orientados a objetos.
24. En el código que se muestra, no es un "método anidado", sino un el resultado o la acción que hace un método que fue devuelta en otro método. (En el lenguaje de programación Java, no existe el concepto de un métodos anidados.)
25. Prueba de escritorio. publicclass Anidados{ publicstaticvoid saludo() { sal1(); sal2(); } publicstaticvoid sal1(){ String a=" -> Hola Desde El Primer Método“; System.out.println(a); } publicstaticvoid sal2(){ String b=" --> hola desde el segundo método"; System.out.println(b); } publicstaticvoidmain(){//1. Se crea el registro de activación de “main”. System.out.println("Todo se imprime a partir de aquí (el main de la clase)... "); saludo(); //3. } }
26. publicclass Anidados{ publicstaticvoid saludo() { sal1(); sal2(); } publicstaticvoid sal1(){ String a=" -> Hola Desde El Primer Método"; System.out.println(a); } publicstaticvoid sal2(){ String b=" --> hola desde el segundo método"; System.out.println(b); } publicstaticvoidmain(){// 1. Se crea el registro de activación de “main”. System.out.println("Todo se imprime a partir de aquí (el main de la clase)... "); //2.- Realiza la impresión del mensaje saludo(); } }
27. publicclass Anidados{ publicstaticvoid saludo() { sal1(); sal2(); } publicstaticvoid sal1(){ String a=" -> Hola Desde El Primer Método"; System.out.println(a); } publicstaticvoid sal2(){ String b=" --> hola desde el segundo método"; System.out.println(b); } publicstaticvoidmain(){// 1. Se crea el registro de activación de “main”. System.out.println("Todo se imprime a partir de aquí (el main de la clase)... "); //2.- Realiza la impresión del mensaje saludo(); //3. Se invoca el método “saludo” y se marca el stack para regresar. } }
28. publicclass Anidados{ publicstaticvoid saludo() //4. Se crea el registro de activación de “saludo”. { sal1(); sal2(); } publicstaticvoid sal1(){ String a=" -> Hola Desde El Primer Método"; System.out.println(a); } publicstaticvoid sal2(){ String b=" --> hola desde el segundo método"; System.out.println(b); } publicstaticvoidmain(){// 1. Se crea el registro de activación de “main”. System.out.println("Todo se imprime a partir de aquí (el main de la clase)... "); //2.- Realiza la impresión del mensaje saludo(); //3. Se invoca el método “saludo” y se marca el stack para regresar. } }
29. publicclass Anidados{ publicstaticvoid saludo() //4. Se crea el registro de activación de “saludo”. { sal1(); // 5. Se invoca el método “sal1” y se marca el stack para regresar. sal2(); } publicstaticvoid sal1(){ String a=" -> Hola Desde El Primer Método"; System.out.println(a); } publicstaticvoid sal2() String b=" --> hola desde el segundo método"; System.out.println(b); } publicstaticvoidmain(){// 1. Se crea el registro de activación de “main”. System.out.println("Todo se imprime a partir de aquí (el main de la clase)... "); //2.- Realiza la impresión del mensaje saludo(); //3. Se invoca el método “saludo” y se marca el stack para regresar. } }
30. publicclass Anidados{ publicstaticvoid saludo() //4. Se crea el registro de activación de “saludo”. { sal1(); // 5. Se invoca el método “sal1” y se marca el stack para regresar. sal2(); } publicstaticvoid sal1(){ //6.Se crea el registro de activación de “sal1”. String a=" -> Hola Desde El Primer Método"; System.out.println(a); } publicstaticvoid sal2(){ String b=" --> hola desde el segundo método"; System.out.println(b); } publicstaticvoidmain(){// 1. Se crea el registro de activación de “main”. System.out.println("Todo se imprime a partir de aquí (el main de la clase)... "); //2.- Realiza la impresión del mensaje saludo(); //3. Se invoca el método “saludo” y se marca el stack para regresar. } }
31. publicclass Anidados{ publicstaticvoid saludo() //4. Se crea el registro de activación de “saludo”. { sal1(); // 5. Se invoca el método “sal1” y se marca el stack para regresar. sal2(); } publicstaticvoid sal1(){ //6.Se crea el registro de activación de “sal1”. String a =" -> Hola Desde El Primer Método"; //7. Se crea la variable “A” con valor “Hola Desde El Primer Método” en el registro de activación de “sal1”. System.out.println(a); } publicstaticvoid sal2(){ String b=" --> hola desde el segundo método"; System.out.println(b); } publicstaticvoidmain(){// 1. Se crea el registro de activación de “main”. System.out.println("Todo se imprime a partir de aquí (el main de la clase)... "); //2.- Realiza la impresión del mensaje saludo(); //3. Se invoca el método “saludo” y se marca el stack para regresar. } }
32. publicclass Anidados{ publicstaticvoid saludo() //4. Se crea el registro de activación de “saludo”. { sal1(); // 5. Se invoca el método “sal1” y se marca el stack para regresar. sal2(); } publicstaticvoid sal1(){ //6.Se crea el registro de activación de “sal1”. String a=" -> Hola Desde El Primer Método"; //7. Se crea la variable “A” con valor “Hola Desde El Primer Método” en el registro de activación de “sal1”. System.out.println(a); //8. Se muestra el valor de la variable “A” y salto de línea. } publicstaticvoid sal2(){ String b=" --> hola desde el segundo método"; System.out.println(b); } publicstaticvoidmain(){// 1. Se crea el registro de activación de “main”. System.out.println("Todo se imprime a partir de aquí (el main de la clase)... "); //2.- Realiza la impresión del mensaje saludo(); //3. Se invoca el método “saludo” y se marca el stack para regresar. } }
33. publicclass Anidados{ publicstaticvoid saludo() //4. Se crea el registro de activación de “saludo”. { sal1(); // 5. Se invoca el método “sal1” y se marca el stack para regresar. sal2(); } publicstaticvoid sal1(){ //6.Se crea el registro de activación de “sal1”. String a=" -> Hola Desde El Primer Método"; //7. Se crea la variable “A” con valor “Hola Desde El Primer Método” en el registro de activación de “sal1”. System.out.println(a); //8. Se muestra el valor de la variable “A” y salto de línea. } // 9. Termina la ejecución de “sal1” y se elimina su registro de activación. publicstaticvoid sal2(){ String b=" --> hola desde el segundo método"; System.out.println(b); } publicstaticvoidmain(){// 1. Se crea el registro de activación de “main”. //2.- Realiza la impresión del mensaje System.out.println("Todo se imprime a partir de aquí (el main de la clase)... "); saludo(); //3. Se invoca el método “saludo” y se marca el stack para regresar. } } X
34. publicclass Anidados{ publicstaticvoid saludo() //4. Se crea el registro de activación de “saludo”. { sal1(); // 5. Se invoca el método “sal1” y se marca el stack para regresar. sal2(); //10.Se invoca el método “sal2” y se marca el stack para regresar. } publicstaticvoid sal1(){ //6.Se crea el registro de activación de “sal1”. String a=" -> Hola Desde El Primer Método"; //7. Se crea la variable “A” con valor “Hola Desde El Primer Método” en el registro de activación de “sal1”. System.out.println(a); //8. Se muestra el valor de la variable “A” y salto de línea. } // 9. Termina la ejecución de “sal1” y se elimina su registro de activación. publicstaticvoid sal2(){ String b=" --> hola desde el segundo método"; System.out.println(b); } publicstaticvoidmain(){// 1. Se crea el registro de activación de “main”. //2.- Realiza la impresión del mensaje System.out.println("Todo se imprime a partir de aquí (el main de la clase)... "); saludo(); //3. Se invoca el método “saludo” y se marca el stack para regresar. } } X
35. publicclass Anidados{ publicstaticvoid saludo() //4. Se crea el registro de activación de “saludo”. { sal1(); // 5. Se invoca el método “sal1” y se marca el stack para regresar. sal2(); //10.Se invoca el método “sal2” y se marca el stack para regresar. } publicstaticvoid sal1(){ //6.Se crea el registro de activación de “sal1”. String a=" -> Hola Desde El Primer Método"; //7. Se crea la variable “A” con valor “Hola Desde El Primer Método” en el registro de activación de “sal1”. System.out.println(a); //8. Se muestra el valor de la variable “A” y salto de línea. } // 9. Termina la ejecución de “sal1” y se elimina su registro de activación. publicstaticvoid sal2(){ //11. Se crea el registro de activación de “sal2”. String b=" --> hola desde el segundo método"; System.out.println(b); } publicstaticvoidmain(){// 1. Se crea el registro de activación de “main”. //2.- Realiza la impresión del mensaje System.out.println("Todo se imprime a partir de aquí (el main de la clase)... "); saludo(); //3. Se invoca el método “saludo” y se marca el stack para regresar. } } X
36. publicclass Anidados{ publicstaticvoid saludo() //4. Se crea el registro de activación de “saludo”. { sal1(); // 5. Se invoca el método “sal1” y se marca el stack para regresar. sal2(); //10.Se invoca el método “sal2” y se marca el stack para regresar. } publicstaticvoid sal1(){ //6.Se crea el registro de activación de “sal1”. String a=" -> Hola Desde El Primer Método"; //7. Se crea la variable “A” con valor “Hola Desde El Primer Método” en el registro de activación de “sal1”. System.out.println(a); //8. Se muestra el valor de la variable “A” y salto de línea. } // 9. Termina la ejecución de “sal1” y se elimina su registro de activación. publicstaticvoid sal2(){ //11. Se crea el registro de activación de “sal2”. String b=" --> hola desde el segundo método";//12 Se crea la variable “b” con valor “hola desde el segundo metodo” en el registro de activación de “sal2”. System.out.println(b); } publicstaticvoidmain(){// 1. Se crea el registro de activación de “main”. //2.- Realiza la impresión del mensaje System.out.println("Todo se imprime a partir de aquí (el main de la clase)... "); saludo(); //3. Se invoca el método “saludo” y se marca el stack para regresar. } } X
37. publicclass Anidados{ publicstaticvoid saludo() //4. Se crea el registro de activación de “saludo”. { sal1(); // 5. Se invoca el método “sal1” y se marca el stack para regresar. sal2(); //10.Se invoca el método “sal2” y se marca el stack para regresar. } publicstaticvoid sal1(){ //6.Se crea el registro de activación de “sal1”. String a=" -> Hola Desde El Primer Método"; //7. Se crea la variable “A” con valor “Hola Desde El Primer Método” en el registro de activación de “sal1”. System.out.println(a); //8. Se muestra el valor de la variable “A” y salto de línea. } // 9. Termina la ejecución de “sal1” y se elimina su registro de activación. publicstaticvoid sal2(){ //11. Se crea el registro de activación de “sal2”. String b=" --> hola desde el segundo método";//12 Se crea la variable “b” con valor “hola desde el segundo metodo” en el registro de activación de “sal2”. System.out.println(b); //13. Se muestra el valor de la variable “b” y salto de línea. } publicstaticvoidmain(){// 1. Se crea el registro de activación de “main”. //2.- Realiza la impresión del mensaje System.out.println("Todo se imprime a partir de aquí (el main de la clase)... "); saludo(); //3. Se invoca el método “saludo” y se marca el stack para regresar. } } X
38. publicclass Anidados{ publicstaticvoid saludo() //4. Se crea el registro de activación de “saludo”. { sal1(); // 5. Se invoca el método “sal1” y se marca el stack para regresar. sal2(); //10.Se invoca el método “sal2” y se marca el stack para regresar. } publicstaticvoid sal1(){ //6.Se crea el registro de activación de “sal1”. String a=" -> Hola Desde El Primer Método"; //7. Se crea la variable “A” con valor “Hola Desde El Primer Método” en el registro de activación de “sal1”. System.out.println(a); //8. Se muestra el valor de la variable “A” y salto de línea. } // 9. Termina la ejecución de “sal1” y se elimina su registro de activación. publicstaticvoid sal2(){ //11. Se crea el registro de activación de “sal2”. String b=" --> hola desde el segundo método";//12 Se crea la variable “b” con valor “hola desde el segundo metodo” en el registro de activación de “sal2”. System.out.println(b); //13. Se muestra el valor de la variable “b” y salto de línea. } //14. Termina la ejecución de “sal1” y se elimina su registro de activación. publicstaticvoidmain(){// 1. Se crea el registro de activación de “main”. //2.- Realiza la impresión del mensaje System.out.println("Todo se imprime a partir de aquí (el main de la clase)... "); saludo(); //3. Se invoca el método “saludo” y se marca el stack para regresar. } } X X