programacion

Page 1

MĂŠtodos y parĂĄmetros


N otas gener ales

U so de métodos

U so de par ámetr os

U so de métodos sobr ecar gados

Pr áctica – Cr eación y uso de métodos


 U so de métodos

D efinición de métodos

L lamadas a métodos

U so de la instr ucción r etur n

U so de var iables locales

D evolución de valor es


D efinición de métodos

M ain es un método 

Para definir métodos propios se usa la misma sintaxis

using System; using System; class ExampleClass class ExampleClass { { static void ExampleMethod( ) static void ExampleMethod( ) { { Console.WriteLine("ExampleMethod"); Console.WriteLine("ExampleMethod"); } } static void Main( ) static void Main( ) { { // ... // ... } } }}


L lamadas a métodos 

U na vez definido un método, se puede: 

Llamar a un método desde dentro de la misma clase Se usa el nombre del método seguido de una lista de parámetros entre paréntesis

Llamar a un método que está en una clase diferente Hay que indicar al compilador cuál es la clase que contiene el método que se desea llamar El método llamado se debe declarar con la palabra clave public

Usar llamadas anidadas Unos métodos pueden hacer llamadas a otros, que a su vez pueden llamar a otros métodos, y así sucesivamente


U so de la instr ucción r etur n

Retur n inmediato

Retur n con una instr ucción condicional static void ExampleMethod( ) static void ExampleMethod( ) {{ int numBeans; int numBeans; //... //... Console.WriteLine("Hello"); Console.WriteLine("Hello"); if (numBeans < 10) if (numBeans < 10) return; return; Console.WriteLine("World"); Console.WriteLine("World"); }}


U so de var iables locales

Var iables locales 

Se crean cuando comienza el método

Son privadas para el método

Se destruyen a la salida

Var iables compar tidas 

Para compartir se utilizan variables de clase

Conflictos de ámbito 

El compilador no avisa si hay conflictos entre nombres locales y de clase


D evolución de valor es

El método se debe declar ar con un tipo que no sea void

Se añade una instr ucción r etur n con una expr esión 

Fija el valor de retorno

Se devuelve al llamador

static int DosMasDos( ) {  L os métodos que no static int DosMasDos( ) { int a,b; int a,b; devolver un valor a = 2; a = 2; b = 2; b = 2; return a + b; return a + b; }}

int x; int x; son void deben x = DosMasDos( );

x = DosMasDos( ); Console.WriteLine(x); Console.WriteLine(x);


 U so de par ámetr os

D eclar ación y llamadas a par ámetr os

M ecanismos de paso de par ámetr os

Paso por valor

Paso por r efer encia

Par ámetr os de salida

U so de listas de par ámetr os de longitud var iable

N or mas par a el paso de par ámetr os

U so de métodos r ecur sivos


D eclar ación y llamadas a par ámetr os

D eclar ación de par ámetr os 

Se ponen entre paréntesis después del nombre del método

Se definen el tipo y el nombre de cada parámetro

L lamadas a métodos con par ámetr os 

Un valor para cada parámetro

static void MethodWithParameters(int n, string y) static void MethodWithParameters(int n, string y) { ... } { ... } MethodWithParameters(2, "Hola, mundo"); MethodWithParameters(2, "Hola, mundo");


M ecanismos de paso de par ámetr os

T r es maner as de pasar par ámetr os

entr Paso por por valor valor entrada adaPaso entr entrada adaPaso Paso por por referencia referencia salida salida salida Parámetrosde desalida salida salida Parámetros


Paso por valor 

M ecanismo pr edeter minado par a el paso de par ámetr os: 

Se copia el valor del parámetro

Se puede cambiar la variable dentro del método

No afecta al valor fuera del método

 El parámetro debe ser de un tipo igual static void SumaUno(int x) static void SumaUno(int x) {{ compatible x++; // Incrementar x x++; // Incrementar x }} static void Main( ) static void Main( ) {{ int k = 6; int k = 6; SumaUno(k); SumaUno(k);

}}

o

Console.WriteLine(k); // Muestra el valor 6, no 7 Console.WriteLine(k); // Muestra el valor 6, no 7


Paso por r efer encia

¿Qué son los par ámetr os r efer encia? 

Una referencia a una posición de memoria

U so de par ámetr os r efer encia 

Se usa la palabra clave r ef en la declaración y las llamadas al método

Los tipos y valores de variables deben coincidir

Los cambios hechos en el método afectan al llamador

Hay que asignar un valor al parámetro antes de la llamada al método


Par ámetr os de salida 

¿Qué son los par ámetr os de salida? 

Pasan valores hacia fuera, pero no hacia dentro

U so de par ámetr os de salida 

Como r ef, pero no se pasan valores al método

Se usa la palabra clave out en la declaración y las llamadas al método

static void OutDemo(out int p) static void OutDemo(out int p) {{ // ... // ... }} int n; int n; OutDemo(out n); OutDemo(out n);


U so de listas de par ámetr os de longitud var iable

Se usa la palabr a clave par ams

Se declar a como tabla al final de la lista de par ámetr os

Siempr e paso por valor

static long AddList(params long[ ] v) static long AddList(params long[ ] v) {{ long total, i; long total, i; for (i = 0, total = 0; i < v.Length; i++) for (i = 0, total = 0; i < v.Length; i++) total += v[i]; total += v[i]; return total; return total; }} static void Main( ) static void Main( ) {{ long x = AddList(63,21,84); long x = AddList(63,21,84); }}


N or mas par a el paso de par ámetr os

M ecanismos 

El paso por valor es el más habitual

El valor de retorno del método es útil para un solo valor

r ef y/ o out son útiles para más de un valor de retorno

r ef sólo se usa si los datos se pasan en ambos sentidos

Eficiencia 

El paso por valor suele ser el más eficaz


U so de métodos r ecur sivos

U n método puede hacer una llamada a sí mismo 

Directamente

Indirectamente

Ú til par a r esolver cier tos pr oblemas


 U so de métodos sobr ecar gados

D eclar ación de métodos sobr ecar gados

Signatur as de métodos

U so de métodos sobr ecar gados


D eclar ación de métodos sobr ecar gados

M étodos que compar ten un nombr e en una clase 

Se distinguen examinando la lista de parámetros class OverloadingExample class OverloadingExample {{ static int Suma(int a, int b) static int Suma(int a, int b) { { return a + b; return a + b; } } static int Suma(int a, int b, int c) static int Suma(int a, int b, int c) { { return a + b + c; return a + b + c; } } static void Main( ) static void Main( ) { { Console.WriteLine(Suma(1,2) + Suma(1,2,3)); Console.WriteLine(Suma(1,2) + Suma(1,2,3)); } } }}


Signatur as de métodos

L as signatur as de métodos deben ser únicas dentr o de una clase

D efinición de signatur a

FFor orman man la la definición definición de de la la signatur signaturaa 

 Nombre Nombredel del método método

 Tipo de parámetro Tipo de parámetro  Modificador Modificador

N Noo afectan afectan aa la la signatur signaturaa  Nombre de Nombre de

parámetro parámetro

 Tipo de retorno de Tipo de retorno de

método método


U so de métodos sobr ecar gados

Conviene usar métodos sobr ecar gados si : 

Hay métodos similares que requieren parámetros diferentes

Se quiere añadir funcionalidad al código existente

N o hay que abusar , ya que: 

Son difíciles de depurar

Son difíciles de mantener


Pr áctica - Cr eación y uso de métodos


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.