Publicado el 17 de Febrero del 2019
1.475 visualizaciones desde el 17 de Febrero del 2019
724,5 KB
21 paginas
Creado hace 5a (15/08/2018)
Fundamentos de Programación
CAPÍTULO 2
DISEÑO E IMPLEMENTACIÓN
DE MÉTODOS EN C#
2
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
1
Fundamentos de Programación
Preguntas detonadoras
¿Qué es un método?
¿Cuáles son los tipos de métodos? ¿En qué se parecen?
¿En qué difieren?
¿Cómo se envían datos a los métodos?
¿Cuándo se recomienda enviar parámetros por valor?
¿Cuándo por referencia? ¿Cuándo de salida?
¿Por qué son importantes los métodos para los
objetos?
¿Puede haber métodos fuera de una clase?
¿A qué se refiere el ámbito de una variable?
¿Qué es una variable local? ¿y una global?
¿Qué es la firma de un método?
3
Métodos
Contienen instrucciones para ejecutar al
momento de ser invocados.
Un método contiene:
Modificador de Acceso (Determina su visibilidad)
Tipo de dato (Devuelto al finalizar su ejecución)
Identificador (Nombre con el cual se invoca)
Parámetros (Cero o mas variables que recibe el
método)
4
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
2
Fundamentos de Programación
Métodos
En C# las
subrutinas
se conocen como
métodos, se codifican como parte de una clase
y se clasifican en …
Procedimientos – NO devuelven valor
MÉTODOS
Funciones – Devuelven un valor
Ubicación de los métodos
Pueden estar encapsulados dentro de una clase
Pueden ser independientes (fuera de las clases)
Independientemente
ubicación,
de
su
pueden
interactuar
static void Main(string[ ] args)
{
double dblRadio = 10, dblArea;
dblArea = Funcion(dblRadio);
Console.WriteLine("Area=" + dblArea);
Console.ReadKey();
}
static double Funcion(double dblR)
{
return (Math.PI * dblR * dblRr);
}
5
6
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
3
Fundamentos de Programación
Llamadas a los métodos
class Program
{
static void Main(string[] args)
{
}
Metodo(); // Se invoca el método (llamada)
static void Metodo( )
{
}
}
}
. . . // Codificación
Llamadas de procedimientos
class Program
{
static void Main(string[] args)
{
}
Procedimiento(); // Llamada
static void Procedimiento( )
{
}
}
Console.Write(“Tec Laredo”);
El
procedimiento
NO devuelve
valor
7
8
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
4
Fundamentos de Programación
Parámetros recibidos por los
métodos
Por valor – Se envía una copia del valor de
la variable
Parámetros
Por referencia – Se envía la dirección de la
variable
9
10
Envío de parámetros por valor
class Program
static void Main(string[] args)
{
}
int x=10;
Metodo( x ); // Se envía el valor de x
Console.Write(“x=“ + x); // x=10
static void Metodo(int y)
La variable “y“
recibe el valor de
la variable “x”
{
}
{
}
y+=5;
Console.Write(“y=“ + y); // y=15
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
5
Fundamentos de Programación
Envío de parámetros por referencia
static void Main(string[] args)
{
}
int x = 10; // Se declara e inicializa x
Metodo(ref x); // Se envía la referencia de x
Console.WriteLine("x=" + x); // x=15
static void Metodo(ref int y)
{
}
y += 5;
Console.WriteLine("y=" + y); // y=15
¡ Se modificó el
valor de la
variable x !
Parámetros por referencia
(apuntador)
11
12
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
6
Fundamentos de Programación
Parámetros de salida (out)
static void Main(string[] args)
{
}
int x; //Se declara pero NO se inicializa la variable x
Metodo(out x); // Envía la referencia de la variable x
Console.WriteLine("x=" + x); // x=45
static void Metodo(out int y)
{
}
y = 45;
Console.WriteLine("y=" + y); // y=45
¡ Se modificó el
valor de la
variable x !
Envío de varios parámetros
static void Main(string[] args)
{
}
int a=5; // Se declara e inicializa la variable a
double b=3.2; // Se declara e inicializa la variable b
string c; // Se declara pero NO se inicializa la variable c
Metodo(a, ref b, out c);
Console.WriteLine(“a=" + a); // a=5
Console.WriteLine(“b=" + b); // b=6.4
Console.WriteLine(“c=" + c); // c=“Tec Laredo”
static void Metodo(int x, ref double y, out string z)
{
}
x+=8;
y*=2;
z=“Tec Laredo”;
13
14
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
7
Fundamentos de Programación
Firma de un método
Se conoce como la firma de un método al conjunto
de parámetros que recibe y se forma de:
Cantidad de parámetros recibidos
Orden de los parámetros
Tipos de datos
Deben coincidir los parámetros enviados con la
firma del método
15
Sintaxis de los métodos
< tipoValorDevuelto > < nombreMétodo > (< parámetros >)
{
< cuerpo >
}
Ejemplo:
void Saludo( )
void significa que NO
devuelve valor (procedimiento)
{
}
Console.Write(“Hola”);
16
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
8
Fundamentos de Programación
Ejemplo de un método
(en la clase)
Modificador
de acceso
Tipo de dato
del valor regresado
Identificador
Parámetros
class Automovil
{
public string Encender()
{
return("El automóvil se ha encendido!");
}
}
Procedimientos
static void Imprimir()
{
Console.WriteLine(Nombre);
Console.WriteLine(Edad);
Console.WriteLine(Sueldo);
}
17
18
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
9
Fundamentos de Programación
Funciones
static int Sumar() // Devuelve un valor de tipo numérico entero
static double Calcular() // Devuelve un valor de tipo numérico real
static string Comparar() // Devuelve un valor de tipo cadena
static double CalcularArea()
{
return(Math.PI * Math.Pow(Radio,2));
}
19
Métodos que retornan valores
El “Tipo de dato” del método NO es “void”.
Dentro del método debe haber una sentencia “return” con algún valor del
tipo de dato del método.
Ejemplo (Al declararlo):
public string ConsultarEstado()
{
string strEstado=“Disponible”;
return strEstado;
}
Al llamar al método (desde el programa):
string strEstadoActual = miCarro.ConsultarEstado();
20
20
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
10
Fundamentos de Programación
Llamadas de métodos que retornan
valor (funciones)
static void Main(string[ ] args)
Parámetro enviado
a la función
{
}
double dblRadio = 10, dblArea;
dblArea = CalcularArea(dblRadio);
Console.WriteLine("Area=" + dblArea);
Variable
receptora
Valor devuelto por la
función
static double CalcularArea(double dblR)
{
}
return (Math.PI * Math.Pow(dblR, 2));
Invocando al método
(en el programa)
Carro miCarro = new Carro();
miCarro.Encender();
Nombre del
objeto
Nombre del
método
Parámetros
21
22
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
11
Fundamentos de Programación
Invocando métodos
class Arbol
{
}
public void Podar( )
{
}
. . .
Arbol miFresno = new Arbol(); // Se crea el objeto
//Se invoca el método Podar() del objeto miFresno
miFresno.Podar();
23
Uso de mutator y accessor
Al trabajar con objetos, primero deben introducirse los
valores de sus atributos y después ejecutar las acciones
invocando sus métodos.
24
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
12
Fundamentos de Programación
Diagramas de flujo de los métodos
de una clase
Circunferencia.ModificarRadio(double dblR): void
Circunferencia.ConsultarRadio(): double
_dblRadio = dblR
return
return( _dblRadio )
Circunferencia.CalcularArea(): double
Circunferencia.CalcularPerimetro(): double
Declaraciones locales:
dblArea: double
Declaraciones locales:
dblPerimetro: double
dblArea = Math.PI * _dblRadio * _dblRadio
dblPerimetro = Math.PI * _dblRadio * 2
return(dlbArea)
return(dlbPerimetro)
25
Codificación de la clase
class Circunferencia
{
// Declaración del atributo privado
private double _dblRadio;
// Mutator
public void ModificarRadio(double dblR)
{
_dblRadio = dblR;
}
// Accessor
public double ConsultarRadio()
{
return (_dblRadio);
}
// Método público para calcular el área
public double CalcularArea()
{
// Declaración de variable local
double dblArea;
dblArea=Math.PI * _dblRadio * _dblRadio;
return (dblArea); // Devuelve el resultado
}
// Método público para calcular el perímetro
public double CalcularPerimetro()
{
// Declaración de variable local
double dblPerimetro;
dblPerimetro=Math.PI * _dblRadio * 2;
return (dblPerimetro);
// Devuelve el resultado
}
}
26
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
13
Fundamentos de Programación
Ámbito de las variables
El ámbito de una variable define dónde puede
usarse esa variable (según dónde se declare)
Una variable local declarada en un bloque de
programa, sólamente puede ser usada en ese
bloque
El ámbito de una variable también aplica a los
métodos y a los ciclos
Ámbito de las variables
Ámbito de
variables
Locales – Se declaran y utilizan dentro de
un contexto específico. No se puede hacer
referencia
a ellas fuera de la sección de
código donde se declara.
Globales – Se declaran fuera del cuerpo de
cualquier método
28
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
14
Fundamentos de Programación
Ámbito de variables en un ciclo for
for(int x = 1; x<=10; x++)
{
Console.Write(x);
}
Console.Write(x);
29
Variables locales en métodos
Son variables que se declaran dentro de un
método
Una variable local
solamente puede ser
utilizada por el método que la declara
Los parámetros que recibe un método son
variables locales
Las variables declaradas dentro del método
Main() son locales
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
15
Fundamentos de Programación
Ejemplo de variables locales
class Program
Comentarios de: 05.- Diseño e implementación de Métodos - Programación Orientada a Objetos en C# .NET (0)
No hay comentarios