Beruflich Dokumente
Kultur Dokumente
DESCRIPCIN
Elaborado por JCastro Docente UTEPSA
CLASES
Elaborado por JCastro Docente UTEPSA
Terminologa de las Clases Mtodos, Eventos, Sobrecarga de mtodos Propiedades Constructores Tiempo de vida de un objeto
Las clases son los bloques bsicos en las aplicaciones en C# y contienen el cdigo y datos. Una aplicacin C# siempre tendr por lo menos una clase.
Nota: Se estereotipa el atributo categorizacin, indicando que existe un elemento UML que habr de revisar
Nota: Se aplica la regla para que la edad est comprendida entre 18 y 60 aos
Propiedades
Las propiedades se pueden usar como si fueran miembros pblicos de datos pero en realidad son mtodos especiales llamados descriptores. Esto permite el acceso a los datos de manera fcil a la vez que proporciona la seguridad y la flexibilidad de los mtodos.
Ejemplo de Propiedad
public class Rectangle { private double length; public double Length { get { return length; } set { if (value > 0) length = value; } }
:
}
Constructores
Los constructores son mtodos de clase los cuales se ejecutan cuando se crea un objeto de un determinado tipo. Los constructores tienen el mismo nombre que la clase y por lo general inicializan los miembros de datos del nuevo objeto.
Mtodos
Un mtodo es un bloque de cdigo que contiene una serie de sentencias. Cada instruccin que se ejecuta, se lleva a cabo en el contexto de un mtodo. public class Rectangle {
public class ShapeProgram { public static void Main() { Rectangle rec1 = new Rectangle(10,20); rec1.magnify(3); Console.WriteLine(Longitud + rec1.length); Console.WriteLine(Ancho + rec1.width); } }
public class Window { Rectangle outerFrame; Rectangle innerFrame; public Window ( ) { outerFrame = new Rectangle(10,8); innerFrame = new Rectangle(8,6); } public void enlargeWindow( ) { outerFrame.magnify(2); } }
Recursividad
La recursividad ocurre cuando se usa un mtodo para resolver otra versin del mismo problema. Con cada repeticin, el problema se hace ms fcil y avanza a un caso base. El caso base se alcanza cuando no se requiere ninguna otra iteracin. Un caso base es el punto en el cual ya no se realiza ninguna otra iteracin.
Ejemplo de Recursividad 1
public int fact (int n) { if (n == 1) return 1; else return n * fact(n - 1); }
Elaborado por JCastro Docente UTEPSA
fact (4)
24
ite-1
ite-2
ite-3
1
fact (1)
Ejemplo de Recursividad 2
public int identity (int num) { if (nmu < 1) Caso base return 10; Llamada recursiva else Avance hacia el Caso base return num + identity (num - 2); } int result = identity(6); Console.WriteLine(La respuesta final es + result); Identidad (num) Identidad (6) Identidad (4) Identidad (2) Identidad (0) Acciones suspendidas 6 + identidad (4) 4 + identidad (2) 2 + identidad (0) 10 Regresar a la pila 22 16 12
Ejercicios de Recursividad
1 public int negative(int num) { if(num >= 20) return -5; else return negative(num + 4) + 2 * num; } int result1 = negative(-3); Console.WriteLine(La respuesta es + result1); public int product(int num) { if(num > 20) return -1; else return num * product(-2 * num); } int result2 = product(1); Console.WriteLine(La respuesta es + result2);
2
Elaborado por JCastro Docente UTEPSA
Firmas de mtodos
Las firmas de mtodos deben ser nicas dentro de una clase Definicin de firma
No afectan a la firma
Nombre de parmetro Modificador de acceso del mtodo Tipo de retorno
No hay que abusar, ya que: Son difciles de depurar Son difciles de mantener
Tipo
Tipo de valor
Tipo de referencia
Tipos de referencia:
Tipos valor
Tipos referencia
La variable contiene una referencia al dato El dato se almacena en un rea de memoria aparte
string mol; mol = Hola";
42
Hola
6.12
4.2
6.12
4.2
Referencias no vlidas
Diferente
c2
coordinate c1= new coordinate ( ); coordinate c2; c1.x = 2.3; c1.y = 7.6; c2 = c1; Console.WriteLine(c1.x + " , " + c1.y); Console.WriteLine(c2.x + " , " + c2.y);
Por otro lado, los tipos por referencia se almacenan en la memoria "lejana (Heap), a diferencia de los tipos por valor, los tipos por referencia lo nico que almacenan es una referencia (o puntero) al valor asignado. Las copias de tipos por referencia, son de direcciones, pero no de contenidos.
Predefinido
Ejemplos de tipos de valor predefinidos: int float
Del usuario
Ejemplos de tipos de valor definidos por el usuario: enum struct
Enumeraciones
Utilidad: La utilidad de los enumerativos es ms manifiesta cuando se quiere manejar una serie de valores constantes con nombre. Sintaxis: enum idVar { valor1, valor2, .. valorn } Ejemplo: enum Color { Rojo, Amarillo, Verde } De forma implcita una variable enum asigna un valor numrico entero a cada elemento comenzando por 0, as en el ejemplo, Rojo = 0, Amarillo = 1 y Verde = 2
+ Saludo( ) : string + Saludo( nombre : string) : string + Saludo( nombre : string, tiempo : tpo) : string
Elaborado por JCastro Docente UTEPSA