Prximos eventos - PowerPoint PPT Presentation

1 / 48
About This Presentation
Title:

Prximos eventos

Description:

none – PowerPoint PPT presentation

Number of Views:46
Avg rating:3.0/5.0
Slides: 49
Provided by: Goog646
Category:
Tags: dnc | eventos | prximos

less

Transcript and Presenter's Notes

Title: Prximos eventos


1
Próximos eventos
Desarrollo web con asp.net
Fecha y hora Miércoles, 7 de octubre de 2009
1900 (GMT 1 Madrid) Duración 60
minutosModalidad Online Ponente Jesús Bosch
(Presidente UOC DotNetClub)
Próximamente
  • Silverlight
  • Introducción a la programación de videojuegos 3D
    con XNA
  • ASP.NET vs PHP

Más información en http//uoc.dotnetclubs.com
2
Ventajas de Unirse al Club
Charlas y eventos
Estar informado de las continuas charlas que se
realizan entorno a las tecnologías de Microsoft.
ACCESO AL MSDNAA
Existe un acuerdo entre la Universidad de la UOC
por el cual los estudiantes podrán descargarse
software de Microsoft de manera gratuita.
Certificaciones MICROSOFT
Si se realizan webcasts online, se premiará al
ponente con acceso a exámenes de certificaciones
de tecnologías Microsoft de forma totalmente
gratuita.
Más información en http//uoc.dotnetclubs.com
3
Para quién es el DotNetClub?
Charlas y eventos
Abierto a toda la comunidad de desarrollo, IT y
diseño.
ACCESO AL MSDNAA
Disponible para estudiantes matriculados en al
UOC, además de profesores.
Certificaciones MICROSOFT
Abierto a toda la comunidad de desarrollo, IT y
diseño.
Más información en http//uoc.dotnetclubs.com
4
Introducción a C
5
UOC DotNetClub
http//uoc.dotnetclubs.com
6
Jose Ibáñez Lozano
jibanezloz_at_gmail.com
7
Pero antes
  • Programación Orientada a Objetos (POO)
  • Clases
  • Generador de objetos. Especifica la estructura,
    propiedades y métodos de los objetos.
  • Objetos
  • Una instancia de una clase.
  • Herencia
  • Relaciones que se pueden establecer entre las
    clases.
  • Hijos y padres.

8
Clases
Clase A
Clase B
Clase C
Clase D
Persona
Feligres
Catequista
Pedro
Javi
Juanma
9
Estructura de un programa C
  • Un programa en C contiene
  • Uno o más ficheros los cuales contienen
  • Uno o más espacios de nombres que contienen
  • Tipos de datos clases, estructuras, interfaces,
    enumeraciones y delegates
  • Si no se declara un namespace se asume el global
    por defecto
  • Un programa ejecutable ha de contener
    obligatoriamente una función Main
  • static void Main()
  • static int Main()
  • static void Main(string args)
  • static int Main(string args)
  • Para acceder a un tipo podemos usar un camino
    absoluto System.Console.WriteLine(...) o using
    System ... Console.WriteLine(...)

Ejemplo
10
Identificadores
  • Identificadores
  • Se usan para dar nombres a elementos de un
    programa como variables, constantes y métodos
  • Consta de caracteres alfanuméricos y _, es
    sensible a mayúsculas y minúsculas, debe comenzar
    con letra o _
  • Si se quiere usar una palabra clave como
    identificador hay que usar como prefijo el
    carácter _at_
  • Object _at_this // prevenir conflicto con "this"

11
Variables
  • Una variable (objeto) en C representa la
    localización en memoria donde se guarda una
    instancia de una clase

12
Tipos de variables
  • Por valor
  • Continen el dato
  • No pueden ser nulas
  • Por referencia
  • Contienen la referencia
  • Pueden ser nulas

Ejemplo
int i 123 string s Hola cachocarne"
123
i
s
Hola cachocarne"
13
Tipos de variables
  • Por Valor
  • Primitives int i
  • Enums enum State Off, On
  • Structs struct Point int x, y
  • Por referencia
  • Clases class Foo Bar, IFoo ...
  • Interfaces interface IFoo IBar ...
  • Arrays string a new string10
  • Delegates delegate void Empty()
  • Predefinidos
  • Referencia object, string
  • Con signo sbyte, short, int, long
  • Sin signo byte, ushort, uint, ulong
  • Caracter char
  • Flotantes float, double, decimal
  • Lógicobool

14
Variables
  • Las variables por valor pueden declararse e
    iniciarse
  • bool bln true
  • byte byt1 22
  • char ch1x, ch2\u0066 // Unicode para a
  • decimal dec1 1.23M
  • double dbl11.23, dbl21.23D
  • short sh 22
  • int i 22
  • long lng1 22, lng2 22L // L long
  • sbyte sb 22
  • float f1.23F
  • ushort us122
  • uint ui122, ui222U // U unsigned
  • ulong ul1 22, ul222U, ul322L, ul42UL

Ejemplo
15
Variables
  • Los valores por referencia son creados con la
    palabra clave new
  • object o new System.Object()
  • Strings se pueden inicializar directamente
  • string s "Hola" // usan caracteres Unicode de
    2 bytes
  • C soporta secuencias de escape como en C
  • string s1 "Hola\n" // salto de línea
  • string s2 "Hola\tque\ttal" // tabulador
  • Como las sentencias de escape comienzan con \,
    para escribir este carácter hay que doblarlo, o
    usar _at_
  • string s3 "c\\WINNT"
  • string s4 _at_"C\WINNT"

Ejemplo
Ejemplo
Ejemplo
Ejemplo
16
Constantes
  • C provee el modificador const que se puede usar
    para crear constantes de programas
  • Const int min 1
  • Const int max 100
  • Const int range max min

Ejemplo
17
Arrays
  • Los arrays son tipos por referencia y sus índices
    comienzan en 0.
  • El tipo de datos viene dado por string, el
    nombre del array es una referencia al array.
  • Los arrays se pueden inicializar directamente.
  • Puede haber arrays multidimensionales y arrays de
    arrays.

18
Expresiones y Operadores
  • Las expresiones en C son muy similares a las de
    C y C
  • Operadores aritméticos
  • , Suma unaria , a
  • - , Resta unaria, -a
  • , Incremento, a o a
  • --, Decremento, --a o a--
  • , Suma, ab
  • -, Resta, a-b
  • , Multiplicación, ab
  • /, División, a/b
  • , Resto, ab

19
Expresiones y Operadores
  • Operadores relacionales
  • , Igualdad , ab
  • ! , Inigualdad, a!b
  • lt, Menor que, altb
  • lt, Menor o igual, altb
  • gt, Mayor que, agtb
  • gt, Mayor que o Igual a, agtb
  • Los programadores de Visual Basic deben notar que
    se usa en vez de para igualdad, !
    para desigualdad en vez de ltgt e para
    asignación

20
Expresiones y Operadores
  • Operadores relacionales
  • ! , Negación , !a
  • , And binario, ab
  • , Or binario, ab
  • , Or exclusivo, ab
  • , Negación binaria, a
  • , And lógico, ab
  • , Or lógico, ab
  • Operadores de manipulación de bits
  • int i132
  • int i2i1ltlt2 // i2128
  • int i3i1gtgt3 // i34

21
Expresiones y Operadores
  • Operadores de asignación (para a3 y b7)
  • , ab , 7
  • , ab, 10 (equivalente a a b)
  • -, a-b, -4 (equivalente a a - b)
  • , ab, 21 (equivalente a a b)
  • /, a/b, 0 (equivalente a a / b)
  • , ab, 3 (equivalente a a b)
  • , ab, 7 (equivalente a a b)
  • gtgt, agtgtb, 0 (equivalente a a gtgt b)
  • ltlt, altltb, 384 (equivalente a a ltlt b)
  • Operadores de manipulación de bits
  • int i132
  • int i2i1ltlt2 // i2128
  • int i3i1gtgt3 // i34

22
Expresiones y Operadores
  • Otros operadores
  • minaltb ? ab // if altb mina else minb
  • . para acceso a miembros, e.j. args.Length
  • () para conversión de tipos
  • como índice de arrays, punteros, propiedades
    y atributos
  • new para crear nuevos objetos
  • typeof para obtener el tipo de un objeto
  • is para comparar el tipo de un objeto en
    runtime
  • sizeof para obtener el tamaño de un tipo en
    bytes

23
Sentencias en C
  • Las sentencias pueden ocupar más de una línea y
    deben terminarse con un string saltoLinea
    _at_"bla bla bla bla bla bla bla bla
  • bla bla bla bla bla bla bla
    bla "
  • Grupos de sentencias se pueden agrupar en
    bloques con y
  • int i, j
  • // un sentencia simple
  • i1
  • // un bloque de sentencias
  • j2
  • iij

Ejemplo
Ejemplo
24
Sentencias en C
  • if, sirve para saltar en base a una condición
  • if (ilt5)
  • System.Console.WriteLine("i lt 5")
  • if (ilt5)
  • System.Console.WriteLine("ilt5")
  • else
  • System.Console.WriteLine("igt5)
  • if (ilt5)
  • System.Console.WriteLine("ilt5")
  • System.Console.WriteLine("i es más pequeño")
  • else
  • System.Console.WriteLine("igt5")
  • System.Console.WriteLine("i NO es más pequeño")

Ejemplo
Ejemplo (If y Else)
Ejemplo (If y Else)
25
Sentencias en C
  • Do while, sirve para repeticiones de sentencia
    que se ejecutan al menos una vez
  • int i1
  • do
  • System.Console.WriteLine(i)
  • While (ilt1)
  • while, para repeticiones de 0 a N veces
  • int i1
  • While (ilt5)
  • System.Console.WriteLine(i)

Ejemplo
Ejemplo
26
Sentencias en C
  • for, se usa cuando el número de repeticiones se
    conoce a priori
  • for (int i1 ilt5 i)
  • System.Console.WriteLine(i) // Visualiza digitos
    1 a 5
  • La primera expresión es de inicialización,
    declara un entero
  • La segunda la condición del bucle
  • La tercera es la expresión del iterador
  • Se pueden insertar múltiples expresiones
  • for (int i1, j2 ilt5 i, j2)
  • System.Console.WriteLine("i" i ", j" j)
  • Un bucle infinito se podría codificar como
  • for ()
  • // bucle infinito
  • ...

Ejemplo
Ejemplo
Ejemplo
27
Sentencias en C
  • continue, se usa para saltar el resto de la
    iteración y comenzar la siguiente
  • for (int i1 ilt5 i)
  • if (i3)
  • continue
  • System.Console.WriteLine(i)
  • Break, se usa para salir de un bucle
  • for (int i1 ilt5 i)
  • if (i3)
  • break
  • System.Console.WriteLine(i)

Ejemplo
Ejemplo
28
Sentencias en C
  • Switch, Sirve para seleccionar entre múltiples
    opciones posibles
  • uint i2
  • switch(i)
  • case 0
  • goto case 2 // para permitir varios casos usar
    goto
  • case 1
  • goto case 2
  • case 2
  • System.Console.WriteLine("ilt3")
  • break // el uso de goto o break es obligatorio
  • case 3
  • System.Console.WriteLine("i3"),
  • break
  • default
  • System.Console.WriteLine("igt3")
  • break

Ejemplo
29
Sentencias en C
  • Foreach, representa un interesante caso para
    iterar sobre un array
  • int arr 2, 4, 6, 8
  • foreach (int i in arr) // Visualizará 2, 4, 6 y 8
  • System.Console.WriteLine(i)
  • Return, termina la ejecución del método actual y
    devuelve control al método invocador
  • class Add // devuelve resultado de sumar 2
    enteros
  • public static void Main()
  • System.Console.WriteLine("23" add(2,3))
  • private static int add(int i, int j)
  • return ij

Ejemplo
Ejemplo
30
Sentencias en C VIII
  • Goto, transfiere control a una instrucción que
    contiene una etiqueta
  • using System
  • public class EjemploGoto
  • public static void Main(string args)
  • if (args.Length 0)
  • Console.WriteLine("No se han pasado args")
  • goto end
  • Console.WriteLine("El primer argumento es "
    args0)
  • end return
  • Throw, sirve para lanzar una excepción
  • if (val gt max) throw new Exception("Valor excede
    máximo")

Ejemplo
31
Clases
  • Definimos una clase usando la palabra clave class
    seguida del nombre de la clase y el cuerpo de la
    clase entre y .
  • Los miembros que una clase puede contener son
  • Campos
  • Métodos
  • Propiedades
  • El constructor (Persona()) tiene el mismo nombre
    que la clase y no devuelve ningún valor
  • La palabra clave this se usa para referenciar a
    la instancia de la clase actual
  • C soporta punteros cuando funciona en modo
    inseguro, se usa la palabra clave unsafe para
    preceder a este tipo de datos
  • Un miembro static puede ser accedido sin crear
    una instancia de una clase (se suelen usar para
    guardar valores globales)

32
Propiedades
  • Las propiedades permiten que una clase exponga
    una manera pública de obtener y establecer
    valores, ocultando el código de implementación o
    comprobación.
  • C provee propiedades para recuperar (get) y
    modificar (set) campos de una clase
  • Dentro de un atributo, set C provee la variable
    value
  • Tanto los campos, como atributos y métodos pueden
    ir acompañados de modificadores (public). Si se
    omite un modificador entonces los miembros son
    privados
  • La convención es hacer que miembros privados
    empiecen por minúscula, mientras que todos los
    demás lo hagan por mayúscula

33
Propiedades
public class Person private int age public
int Age get return age set age
value Console.WriteLine(age)
Propiedad
C
Person p new Person() p.Age 27 p.Age
En vez de
Otro
Person p new Person() p.setAge(27) p.setAge(p.
getAge() 1)
34
Estructuras
  • Se pueden crear clases ligeras usando una
    estructura (struct)
  • Las estructuras son tipos por valor y se guardan
    en la pila
  • Más eficientes, no requieren referencias y no hay
    garbage collection
  • Propiedades de las estructuras
  • Las estructuras son tipos de valor, mientras que
    las clases son tipos de referencia.
  • A diferencia de las clases, se pueden crear
    instancias de las estructuras sin utilizar un
    operador new.
  • Las estructuras pueden declarar constructores,
    pero deben utilizar parámetros. No puede declarar
    un destructor.
  • Una estructura no puede heredar de otra
    estructura o clase, ni puede ser la base de una
    clase. Todas las estructuras heredan directamente
    de System.ValueType, que hereda de System.Object.
  • Una estructura puede implementar interfaces.

35
Clases y Estructuras
class CPoint int x, y ... struct SPoint
int x, y ... CPoint cp new CPoint(10,
20) SPoint sp new SPoint(10, 20)
10
sp
20
cp
CPoint
10
20
36
Herencia
  • C nos permite diseñar una clase que usa herencia
    para extender otra ya existente
  • C como Java sólo soporta herencia simple.
  • La herencia representa una relación entre clases
  • La palabra clave base se usa para referenciar al
    objeto padre
  • La palabra clave new indica al compilador que
    queremos sobre-escribir el método Saludar del
    padre (Persona).

37
Métodos virtuales
  • Una de las ventajas de la herencia que podemos
    usar una clase base para referenciar a una
    instancia de una clase derivada
  • Persona p new Hombre("Diego", "Ipiña")
  • p.Saludar() // problema, invoca a Saludar de
    Persona y no de Hombre
  • La solución a esto son métodos virtuales a través
    de las palabras claves virtual (a usarse en el
    método de la clase padre) y override (a usarse en
    el método de la clase hijo)

Ejemplo
38
Clases abstractas
  • Supongamos que estamos interesados en modelar
    hombres y mujeres, pero no personas perse
  • No queremos permitir la creación de objetos
    Persona directamente, pero queremos permitir la
    creación de objetos Hombre y Mujer directamente.
  • Usamos abstract delante de Persona para evitar
    que esta clase se pueda instanciar
  • Usamos abstract en el método Saludar de Persona
    para indicar que las clases que heredan deben
    sobreescribirlo
  • Para deshabilitar la herencia se puede marcar una
    clase como sealed, resultando en un error de
    compilación si se intenta derivar de ella
  • sealed class Person

Ejemplo
39
Más sobre métodos
  • Los métodos acceptan parámetros y devuelven un
    resultado
  • int Add(int x, int y)
  • return xy
  • Los parámetros x e y se pasan por valor, se
    recibe una copia de ellos
  • Si queremos modificar dentro de una función un
    parámetro y que el cambio se refleje en el código
    de invocación de la función, usaremos ref, tanto
    en la declaración del método como en su
    invocación
  • void Increment(out int i)
  • i 3
  • int i
  • Increment(out i) // i 3

Ejemplo
Ejemplo
40
Modificadores de acceso
  • Los modificadores de acceso controlan la
    visibilidad de los miembros de una clase
  • private, sólo código dentro de la misma clase
    contenedora tiene acceso a un miembro privado. Es
    el modo de acceso por defecto.
  • public , visible a todos los usuarios de una
    clase
  • protected, miembros accesibles tanto por dentro
    de la clase como en clases derivadas
  • internal, miembros accesibles sólo dentro de un
    assembly
  • protected internal, permite acceso protected e
    internal

41
Excepciones
  • Modo recomendado para manejar errores
    excepcionales en C
  • Todas las excepciones definidas en la FCL derivan
    de System.Exception
  • System.Exception define una serie de propiedades
    comunes a todas las excepciones
  • Message contiene un mensaje de error indicando
    que ha ido mal
  • StackTrace detalla los detalles de la llamada
    que produjo la excepción
  • Para distinguir entre excepciones lanzadas por la
    framework y excepciones generadas por
    aplicaciones, estas últimas se recomienda deriven
    de System.ApplicationException

42
Algunas excepciones comunes
  • ArgumentNullException una referencia nula es
    pasada como argumento
  • ArgumentOutOfRangeException nos hemos salido de
    rango, e.j. entero demasiado grande
  • DividedByZeroException
  • IndexOutOfRangeException se usa un índice
    inválidado del array
  • InvalidCastException
  • NullReferenceException se intenta invocar un
    método en un objeto que es null
  • OutOfMemoryException

43
Enumeraciones
  • La palabra clave enum puede usarse para definir
    un conjunto ordenado de tipos integrales
  • enum Modalidad
  • Treboles1, Rombos, Corazones, Picas
  • class Enums
  • public static void Main()
  • Modalidad m Modalidad.Treboles
  • System.Console.WriteLine(m) // Visualiza
    Treboles
  • Las enumeraciones por defecto empiezan de 0 a no
    ser que se sobreescriba como en el ejemplo

Ejemplo
44
Atributos
  • C provee un mecanismo para especificar
    información declarativa extra a través de varios
    atributos
  • Esta información se puede recuperar y usar en
    tiempo de ejecución
  • Algunos atributos predefinidos por .NET Framework
    son
  • AssemblyVersion especifica versión de una
    assembly
  • Serializable indica que un tipo es serializable
  • WebService y WebMethod para servicios Web
  • El siguiente ejemplo muestra como podemos llevar
    a cabo el proceso de debugging antes ilustrado
    usando atributos.
  • El método de debug declarado y todas las llamadas
    al mismo, sólo serán compiladas en el programa si
    DEBUG es definido.
  • Se pueden definir atributos personalizados
    derivando de System.Attribute
  • Ejemplo csc /defineDEBUG preproc.cs

45
Atributos
using System using System.Diagnostics class Go
public static void Main() Console.Write("Hola,
cómo te llamas?") string nombre
Console.ReadLine() debug("usuario introducido "
nombre) if (nombre.Equals("")) nombre
"Amigo" Console.WriteLine("Hola "
nombre) Conditional("DEBUG") private static
void debug(string msg) Console.WriteLine("DEBUG
" msg)
46
Colecciones
  • La plataforma .NET tiene un espacio de nombres
    dedicado a estructuras de datos como pilas,
    arrays dinámicos, colas...
  • System.Collections dispone de una serie de
    interfaces que implementan todas estas
    colecciones.
  • Entre otras estructuras podemos encontrar
  • ArrayList Array dinámico.
  • HashTable Tablas de Hashing.
  • Queue Colas.
  • SortedList Listas ordenadas.
  • Stack Pilas.
  • BitArray array de bits (guardan booleanos)
  • Todas las colecciones menos BitArray guardan
    objetos de tipo System.Object

47
Jose Ibáñez Lozano
Muchas GRACIAS por asisitir!
jibanezloz_at_gmail.com
48
UOC DotNetClub
http//uoc.dotnetclubs.com
Write a Comment
User Comments (0)
About PowerShow.com