Clase I Yasna Meza Hidalgo Agosto 2008
Agenda Presentación del curso Programación Orientada a Objetos Conceptos Fundamentales Herencia, Encapsulamiento, Polimorfismo
.NET Framework 2.0 ¿Qué Qué es el Framework? Common Language Runtime MSIL
1
Agenda Presentación del curso Programación Orientada a Objetos Conceptos Fundamentales Herencia, Encapsulamiento, Polimorfismo
.NET Framework 2.0 ¿Qué Qué es el Framework? Common Language Runtime MSIL
Presentación
Presentació ón Presentaci
Programa de Pasantias Programa Desarrollador 5 Estrellas 2005 Cómo usar el contenido del curso Programa de Empleos
2
Programa de Pasantias Formación de Desarrolladores en .NET +Valor +Posibilidades +Empleo
Contenido, Programa Desarrollador 5 Estrellas 2005 (hasta la 2da estrella)
Presentació ón Presentaci
Exámenes Programa DCE2005 , 2da Estrella Aprobada Asistencia al entrenamiento presencial (80%) de las 16 clases
Presentació ón Presentaci
Programa de Pasantias
3
Programa Desarrollador 5 Estrellas 2005 Es un conjunto de herramientas que te permiten aprender y desarrollar tus habilidades en la tecnología .NET En qué consiste:
Presentació ón Presentaci
Cursos Gratuitos en Internet Exámenes de evaluación Comunidad de Profesionales en desarrollo Alto reconocimiento del mercado
Presentació ón Presentaci
Programa Desarrollador 5 Estrellas 2005
4
Cómo usar el contenido del curso Regístrese en DCE2005 www.dce2005.com Leer el contenido y realizar las prácticas Materiales: .NET Esencial Fundamentos de la Programación Programación Orientados a Objetos
Primera Estrella
Presentació ón Presentaci
.NET Framework 2.0 Introducción a C# 2005 Introducción a VB.NET 2005
Segunda Estrella Programación Web con C# 2005 Programación Web con VB.NET 2005
Cómo usar el contenido del curso Registrarse con datos reales
Presentació ón Presentaci
Cuenta asociada con .net passport Esos datos serán luego usados en el programa de empleo Registrarse con el código de institución No rendir los exámenes hasta que estén preparados Usar Foros, chats, y los recursos que encuentren en el sitio dce2005
5
Programa de Empleos Oportunidades de Empleos Sitio de empleos .net
Presentació ón Presentaci
Para quienes completen y aprueben el curso Trabajo en Socios de Negocios
Presentació ón Presentaci
Temas a desarrollarse en el Curso
Introducción al Programa Programación Orientado a Objetos y Servicios Microsoft .Net Framework v2.0 IDE VisualStudio.Net 2005 Sintaxis del Lenguaje (C# y VB.NET) SQL Server 2005 Sentencias SQL ADO.NET 2.0 BCL (Base Class Library) ASP.NET 2.0 ASP.NET WebService Seguridad
6
Agenda Presentación del curso Programación Orientada a Objetos Conceptos Fundamentales Herencia, Encapsulamiento, Polimorfismo .NET Framework 2.0 ¿Qué Qué es el Framework? Common Language Runtime MSIL
¿Qué es la Programación Orientada a Objetos?
POO
Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto es su elemento fundamental
7
POO
¿Qué es lo que ves?
POO
¿Qué es lo que ves?
8
POO
¿Qué es lo que ves?
POO
¿Qué es lo que tienen en común?
9
POO
¿Qué es lo que tienen en común?
¿ Qué es una clase? ¿Qué Clase Clasificaci Clasificación ón Clasificaci Clasificación ón en base a comportamiento y atributos comunes Crea un vocabulario
POO
La forma en que nos comunicamos La forma en que pensamos
10
¿ Qué es una clase? ¿Qué Construcci Construcción ón Est Estática ática Describe: Comportamiento comú común ún com Atributos [estado]
Estructura de datos Incluye:
POO
Datos Funciones o mé métodos étodos m
Constructor y Destructor
POO
Dos m métodos étodos de las clases Existen por defecto Constructor, inicializa valores Destructor, libera recursos al finalizar la vida de una instancia de una clase creada en memoria Existen constructores y destructores por defecto
11
POO
¿ Qué es un objeto? ¿Qué
¿ Qué es un objeto? ¿Qué Instancia de una clase Un objeto posee: Identidad: Es diferenciable entre uno y otro Comportamiento: Realiza tareas especí específicas íficas espec Estado: Almacena informació información ón informaci
POO
Fija Variable
12
Demo
POO
•Modelizando el mundo real
Pilares de POO
Herencia
Polimorfismo
Encapsulamiento
POO
Abstracció Abstracción
13
Abstracci ón Abstracción
POO
Ignorancia selectiva Decide qué qué es importante y que no lo es Se enfoca [depende] en lo que es importante Ignora [no depende] de lo que no es importante Utiliza la encapsulació encapsulación ón para reforzar la encapsulaci abstracció abstracción abstracción
Encapsulamiento
Acelera() velocidad
POO
Frena()
14
Encapsulamiento
Acelera()
12 5k
m/h
velocidad
POO
Frena()
Encapsulamiento
Acelera() velocidad 40 km
/h
POO
Frena()
15
Encapsulamiento
Acelera() velocidad
300 km/h
POO
Frena()
¿Por qué utilizar encapsulamiento? Dos grandes razones
POO
Control Cambio
16
Encapsulamiento
Acelera() velocidad
POO
Frena()
Encapsulamiento
Acelera() velocidad Frena()
POO
Controlador del Motor
17
Encapsulamiento
Acelera() velocidad Frena()
POO
Controlador del Motor
Encapsulamiento
Acelera() velocidad Frena()
Los mé métodos étodos m públicos: son pú públicos: son accesibles desde fuera Los datos son privados: accesibles desde dentro
POO
Controlador del Motor
18
Datos del Objeto Describe los objetos de forma individual Color: Azul Color 2: Gris Instrumental Digital Ventanas elé eléctricas éctricas el 4 asientos
POO
Color: Verde Color 2: Negro Instrumental digital 2 asientos
Datos Est áticos Estáticos Describen informació información ón para todos los objetos informaci
POO
N Número úmero de llantas: 4 Capacidad del tanque: 40 litros Tipo de Transmisió Transmisión: ón: Transmisi Automá Automática ática Autom
19
M étodos Est áticos Métodos Estáticos S Sólo ólo pueden acceder a datos est estáticos áticos Encapsula los datos est estáticos áticos Son invocados en la clase, no en el objeto
POO
No es necesaria la creació creación ón de una creaci instancia para invocarlos
M étodos Est áticos Métodos Estáticos
llantas tanque transmision
POO
Automóvil
20
M étodos Est áticos Métodos Estáticos
llantas tanque transmision NumeroLlantas() CapacidadTanque() TipoTransmision()
POO
Automóvil
M étodos Est áticos Métodos Estáticos
llantas tanque transmision NumeroLlantas() CapacidadTanque() TipoTransmision()
POO
Automóvil
21
Herencia Es ““un un tipo de de” ” relaci relación ón Relació Relación es un” Relación ““es un”
Entre Clases Va de la generalizaci generalización ón a la especializaci especialización ón Clase base Clase derivada Hereda la implementaci implementación ón
Transporte Acelera Frena
POO
Automóvil
Jerarqu ías de Clase Jerarquías Transporte
Marítimo
Aire
FueraAtmosfera
Tierra
1-Persona
N-Personas
POO
DentroAtmosfera
Nieve
22
Jerarqu ías de Clase – Otro ejemplo Jerarquías Cuentas
Cuenta Corriente
Caja Ahorro
Sueldo
POO
Común
Herencia Múltiple Singular: La clase hija deriva de una ú única nica clase padre M Múltiple: últiple: La clase hija deriva de varias clases padre No es soportada por todos los lenguajes Puede ser confusa 1-Persona
Terrestre
POO
Nieve
23
Laboratorio
POO
•Creando clases
Polimorfismo - Overload Literalmente significa tomar varias formas Tareas similares son realizadas por mé métodos étodos con m mismo nombre Suma Enteros Decimales Fracciones
POO
Simplifican la tarea del desarrollador, al no tener que recordar distintos nombres para comportamientos iguales.
24
Polimorfismo La definició definición ón del mé método étodo reside en la clase base definici m La implementació implementación ón del mé método étodo reside en la clase derivada implementaci m La invocació invocación ón es resuelta al momento de ejecució ejecución ón invocaci ejecuci Early binding Late binding Auto Acelera Frena
Cohete Acelera Frena
Transporte Acelera Frena
POO
Caballo Acelera Frena
Clases Base Abstractas Existen solamente deriven de ellas
para
que
se
No tiene sentido crear una instancia de este tipo de clases
M Métodos étodos abstractos Clases abstractas – Concrete classes Transporte Acelera frena
?
POO
Automóvil Color Asientos
25
Resumen
POO
¿Qué es la Programación Orientada a Objetos? Clases y Objetos Métodos y Atributos Encapsulamiento Herencia Polimorfismo
Agenda Presentación del curso Programación Orientada a Objetos Conceptos Fundamentales Herencia, Encapsulamiento, Polimorfismo
.NET Framework 2.0 ¿Qué es el Framework? Common Language Runtime MSIL
26
.NET Framework
¿Qué es un Framework? Marco de trabajo Puede estar compuesto por Librerías de clases Documentación Ayuda Ejemplos Tutoriales Etc.
¿Qué es Framework 2.0? Herramientas de Desarrollo
.NET Framework
Bases de Datos
Servicios
Web XML .NET Framework
Clientes
Aplicaciones Web ASP.NET
Aplicaciones de Usuario
27
VB
C++
C#
J#
…
Common Language Specification Windows Forms
ADO .NET and XML
.NET Framework
Base Class Library Common Language Runtime
Visual Studio .NET
ASP .NET
Web Forms Web Services ASP.NET Mobile Controls
Operating System
.NET Framework
¿Qué problemas resuelve .NET?
Desde Internet, muchas aplicaciones y dispositivos están fuertemente comunicados entre sí Los programadores escribían arquitectura en lugar de aplicaciones Los programadores tenían conocimientos limitados o debían aprender nuevos lenguajes
28
.NET Framework
.NET Framework El .NET Framework constituye las bases sobre las que, tanto aplicaciones como servicios, son ejecutadas y construidas. La naturaleza unificada del .NET Framework permite que cualquier tipo de aplicació aplicación sea desarrollada mediante herramientas comunes haciendo la integració integración mucho más simple. El .NET Framework está está compuesto de: El CLR (Common Language Runtime) La BCL (Base Class Library)
.NET Framework
CLR – Common Language Runtime
El CLR es el motor de ejecució ejecución (runtime) del .NET Framework. Ofrece servicios automá automáticos tales como: Administració Administración de la memoria Seguridad del có código, asegurando: Conversió Conversión de tipos Inicializació Inicialización de variables Indexació Indexación de arreglos fuera de sus límites Versionamiento
29
Componentes de CLR
.NET Framework
.NET Framework Class Library Support Thread Support
COM Marshaler
Type Checker
Exception Manager
Security Engine
Debug Engine
MSIL to Native Compilers
Code Manager
Garbage Collector
Class Loader
CTS (Common Type System)
.NET Framework
Define un conjunto comú común ún de ““tipos” tipos” com tipos” orientado a objetos Todo lenguaje de programació programación ón debe programaci implementar los tipos definidos por el CTS
Todo tipo hereda directa o indirectamente del tipo OBJECT Tipos de VALOR y de REFERENCIA
30
.NET Framework
Microsoft Intermediate Language (MSIL) El compilador convierte al có código soportado por .NET en lenguaje intermedio. Es un conjunto de instrucciones independientes de la CPU, que se convierten en có código nativo al ejecutarse. Para convertir MSIL a có código nativo, se utilizan compiladores llamados “Just In Time” Time” JIT Los archivos ejecutables está están conformados por MSIL Datos Adicionales (Metadata (Metadata)) El MSIL es independiente del lenguaje en el que se desarrolla
Resumen
.NET Framework
¿Qué es el .NET Framework? Common Language Runtime Common Type System Microsoft Intermediate Language