Introducción a la Programación Orientada a Objetos en C# Programa Microsoft DCE Estrella 0.
-
Upload
antonio-cordoba-toro -
Category
Documents
-
view
217 -
download
0
Transcript of Introducción a la Programación Orientada a Objetos en C# Programa Microsoft DCE Estrella 0.
Introducción a la Introducción a la Programación Orientada a Programación Orientada a
Objetos en C#Objetos en C#
Programa Microsoft Programa Microsoft DCEDCE
Programa Microsoft Programa Microsoft DCEDCE
Estrella 0
ObjetivoObjetivo
Mostrar cómo aplicar los conceptos Mostrar cómo aplicar los conceptos fundamentales de programación fundamentales de programación orientada a objetos utilizando el orientada a objetos utilizando el lenguaje Microsoft Visual C#.NETlenguaje Microsoft Visual C#.NET
PrerrequisitosPrerrequisitos
Poseer los conocimientos Poseer los conocimientos proporcionados en los siguientes proporcionados en los siguientes módulos de la Estrella 0:módulos de la Estrella 0: Fundamentos de ProgramaciónFundamentos de Programación Introducción a la Orientación a ObjetosIntroducción a la Orientación a Objetos
Temas a TratarTemas a Tratar
Introducción a C# Introducción a C# SintaxisSintaxis Temas GeneralesTemas Generales Definición e inicialización de variablesDefinición e inicialización de variables OperadoresOperadores Estructuras de ControlEstructuras de Control Clases y ObjetosClases y Objetos
Visual C#.NETVisual C#.NET
Creado especialmente para .NETCreado especialmente para .NETEstándar ECMA (2002)Estándar ECMA (2002)Orientado a Objetos y ComponentesOrientado a Objetos y ComponentesSintaxis derivada de C, C++, Delphi Sintaxis derivada de C, C++, Delphi y Javay Java
CompiladorCompiladorCompilador de Línea de Comandos C#Compilador de Línea de Comandos C# Cumple con la especificación del CLSCumple con la especificación del CLS <Win>\Microsoft.NET\Framework\<Win>\Microsoft.NET\Framework\
<version>\csc.exe<version>\csc.exe Csc /out:XX /target:YY “Archivo1.cs” Csc /out:XX /target:YY “Archivo1.cs”
“Archivo2.cs” “Archivo2.cs”
Temas a TratarTemas a Tratar
Introducción a C# Introducción a C# SintaxisSintaxis Temas GeneralesTemas Generales Definición e inicialización de variablesDefinición e inicialización de variables OperadoresOperadores Estructuras de ControlEstructuras de Control Clases y ObjetosClases y Objetos
C# - Terminación de líneaC# - Terminación de línea
C#: la línea finaliza con un “ ; ”C#: la línea finaliza con un “ ; ”
//Una linea con mas de un renglonstring nombre = primerNombre + apellido; //El punto y coma indica FINAL de linea
C# - Declaración de BloquesC# - Declaración de Bloques
En C# los bloques se declaran entre llavesEn C# los bloques se declaran entre llavesclass MainClass{
public static void Main(string[] args) {Console.WriteLine("Hello World!");
}}
C# - ComentariosC# - ComentariosC# soporta tres tipos de comentariosC# soporta tres tipos de comentarios
string nombre = “Juan”; // Comentario de una sola línea /* Comentario con mas de una línea*/
/// <summary>/// Documentación XML que puede ser consumida por otras /// herramientas para mostrar ayuda dinámica o generar /// documentación en varios formatos/// </summary>public class Matematica { /// <summary> /// Calcula la suma de dos números enteros /// </summary> /// <param name="x">El primer operando de la suma</param> /// <param name="y">El segundo operando de la suma</param> /// <returns> La suma entera de ambos operandos</returns> public int Sumar (int x, int y) {return x + y;}}
C# - Case SensitivityC# - Case Sensitivity
C# distingue entre mayúsuclas y minúsculasC# distingue entre mayúsuclas y minúsculas
system.console.writeline(“HOLA”); INCORRECTO
System.Console.WriteLine(“HOLA”); CORRECTO
Temas a TratarTemas a Tratar
Introducción a C#Introducción a C#SintaxisSintaxis Temas GeneralesTemas Generales Definición e inicialización de variablesDefinición e inicialización de variables OperadoresOperadores Estructuras de ControlEstructuras de Control Clases y ObjetosClases y Objetos
Tipos de DatosTipos de Datos
Categoría Clase Descripción C# Alias
Enteros Byte Un entero sin signo (8-bit) byte
SByte Un entero con signo (8-bit) sbyte
Int16 Un entero con signo (16-bit) short
Int32 Un entero con signo (32-bit) int
Int64 Un entero con signo (64-bit) long
Punto Flotante Single Un número de punto flotante de simple precisión (32-bit) float
Double Un número de punto flotante de doble precisión (64-bit) double
Decimal Un número decimal de 96-bit decimal
Lógicos Boolean Un valor booleano (true o false) bool
Otros Char Un caracter Unicode (16-bit) char
Object La raíz de la jerarquía de objetos object
StringUna cadena de caracteres unicode inmutable y de tamaño fijo string
C# - Alcance de miembrosC# - Alcance de miembros
MiembroMiembro: se refiere a los campos, propiedades, : se refiere a los campos, propiedades, métodos, eventos, clases anidadas, etc.métodos, eventos, clases anidadas, etc.
C#:C#: todo miembro es declarado como todo miembro es declarado como PRIVATEPRIVATE por defaultpor default
Modificadores de acceso disponibles:Modificadores de acceso disponibles:
protected internalprotectedinternalprivatepublic
C#
C# - Declaración de VariablesC# - Declaración de Variables
C#: el tipo de dato precede al identificador C#: el tipo de dato precede al identificador (nombre)(nombre)
int x;decimal y;rectangle z;Cliente cli;
C# - Inicialización de VariablesC# - Inicialización de Variables
C#:C#: toda variable debe ser inicializada toda variable debe ser inicializada EXPLICITAMENTE antes de ser usadaEXPLICITAMENTE antes de ser usada
int tempBalance; //variable local//ERROR: tempBalance NO ha sido inicializadaSystem.Console.WriteLine(tempBalance);
C# - Conversiones de TiposC# - Conversiones de Tipos
C# no permite conversiones implícitas de tiposC# no permite conversiones implícitas de tipos
Si falla el cast se devuelve null o InvalidCastExceptionSi falla el cast se devuelve null o InvalidCastException
Cuenta cta = new CtaCte();CtaCte cc = cta; //Error: puede que cta no sea una CtaCteCtaCte cc = (CtaCte)cta; //Conversion explicita “CASTING”CtaCte cc = cta as CtaCte; //Usando el operador “as”
if (cta is CtaCte) ... //Comp. con el operador “is”
C# - ArreglosC# - ArreglosC# utiliza corchetes [ ] para definición de arraysC# utiliza corchetes [ ] para definición de arrays
string[] telefonos; //Definicion de un Arreglo de stringstelefonos = new string[3]; //De 3 elementostelefonos[0] = “1245”; //Seteo del 1er elemento del arreglo
//Definicion y asignacion de una veztelefonos = new string[] {“1”,“2”,“3”};
Temas a TratarTemas a Tratar
Introducción a C#Introducción a C#SintaxisSintaxis Temas GeneralesTemas Generales Definición e inicialización de variablesDefinición e inicialización de variables OperadoresOperadores Estructuras de ControlEstructuras de Control Clases y ObjetosClases y Objetos
C# - OperadoresC# - Operadores
Descripción C#
Asignación =
Adición +
Sustracción -
Multiplicación *
División /
Negación !
Módulo (Parte entera de la división) %
Mayor >
Menor <
Mayor o Igual >=
Menor o Igual <=
C# - Operadores LógicosC# - Operadores Lógicos
Distinto!=Igual ==Negacion logica!Operador logico OllOperador logico Y&&
OperadorC#
Todas las evaluaciones se hacen por Todas las evaluaciones se hacen por “cortocircuito”“cortocircuito”
//Si Hacer1() es True, entonces //Si Hacer1() es False, entonces//NO se evalua Hacer2() //NO se evalua Hacer2()if (Hacer1() || Hacer2()) if (Hacer1() && Hacer2()){ {} }
Temas a TratarTemas a Tratar
Introducción a C#Introducción a C#SintaxisSintaxis Temas GeneralesTemas Generales Definición e inicialización de variablesDefinición e inicialización de variables OperadoresOperadores Estructuras de ControlEstructuras de Control Clases y ObjetosClases y Objetos
if (x > 10) if (x < 10) if (x < 10) if (x < 10) HacerAlgo(); { { { Hacer1(); Hacer1(); Hacer1(); Hacer2(); } } } else else if (x > 20) { { Hacer2(); Hacer2(); } } else { Hacer3(); }
C# - Sentencias condicionalesC# - Sentencias condicionalesC#: sentencia if con varios formatosC#: sentencia if con varios formatos
int a = 0;switch(a) {
case 1:{//CODIGO 1 break;}case 2: {//CODIGO 2 break;}default:{//CODIGO DEFAULT break;}
}
C# - Sentencias condicionalesC# - Sentencias condicionalesC#: sentencia caseC#: sentencia case
C# - Sentencia forC# - Sentencia forC#: la sentencia for consta de tres partesC#: la sentencia for consta de tres partes
//Partes: declaración, prueba, acciónfor (int i=1; i < 10; i++){}
C# - Sentencia for/eachC# - Sentencia for/each
C#: usa la palabra foreachC#: usa la palabra foreach
string[] nombres = new string[5];foreach(string auxNombre in nombres){ //auxNombre es de SOLO LECTURA}
For/Each permite recorrer arreglos y coleccionesFor/Each permite recorrer arreglos y colecciones
C# - Sentencia whileC# - Sentencia whileC#:C#:
bool condicion = true;while (condicion == true){
//En algún momento poner condicion = false}
Temas a TratarTemas a Tratar
Introducción a C#Introducción a C#SintaxisSintaxis Temas GeneralesTemas Generales Definición e inicialización de variablesDefinición e inicialización de variables OperadoresOperadores Estructuras de ControlEstructuras de Control Clases y ObjetosClases y Objetos
C# - ClasesC# - Clases
C#: las clases son declaradas mediante classC#: las clases son declaradas mediante class
//Definicion de la clase CuentaBancariaclass CuentaBancaria{
//Definicion de miembros}
Sintaxis – Entry PointSintaxis – Entry Point
C#:C#:public class HolaMundo {
public static void Main(string[] args){//Punto de entrada de la aplicación
}}
C# - MétodosC# - Métodos
En C# todo método es una funciónEn C# todo método es una función
public void HacerDeposito(int importe) //No devuelve valor especifico{}
public int ObtenerInventario(int codArticulo) //Devuelve un entero{}
Métodos: acciones que un objeto puede llevar a Métodos: acciones que un objeto puede llevar a cabo.cabo.
C# - ConstructoresC# - Constructores
EnEn C# C# tienen el mismo nombre de la clasetienen el mismo nombre de la clase
class CtaCte{ public CtaCte(){...} //Const. por default public CtaCte(int i){...} //Const. con un parametro}
Constructor: métodos dentro de la clase que son Constructor: métodos dentro de la clase que son llamados automáticamente cuando se crea una llamados automáticamente cuando se crea una instancia de dicha clase.instancia de dicha clase.
C# - InstanciasC# - Instancias
CtaCte cc = new CtaCte();//CtaCte Tipo de Objeto//cc nombe de objeto//new palabra reservada para la creacion de objetos//CtaCte() constructor por defecto de la clase CtaCte.}
Instancia: Es la creacion de un OBJETO a traves de Instancia: Es la creacion de un OBJETO a traves de una clase. métodos dentro de la clase. una clase. métodos dentro de la clase.
Las instancias llaman a los constructores por defecto Las instancias llaman a los constructores por defecto o con parametros.o con parametros.
C# - Sobrecarga de MétodosC# - Sobrecarga de Métodos
C#C#
public void HacerDeposito(int importe) {}
public void HacerDeposito(int importe, bool acreditar){}
SobrecargaSobrecarga: : varios métodos con el mismo nombre varios métodos con el mismo nombre pero diferente “firma”.pero diferente “firma”.
C# - Métodos estáticosC# - Métodos estáticos
C#C#
public static void HacerDeposito(int importe) {
}
Miembros que no requieren de una instancia para Miembros que no requieren de una instancia para ser invocados. Se los llama métodos “de clase”ser invocados. Se los llama métodos “de clase”
C# - PropiedadesC# - PropiedadesPropiedad: característica o atributo de un objetoPropiedad: característica o atributo de un objeto
C#C#
class CtaCte{ int balance; public int Balance { get { return balance; } set { balance = value; } }}
CtaCte cc = new CtaCte();cc.Balance = 100; //AsignaciónMostrar(cc.Balance); //Obtención
C# - HerenciaC# - Herencia
En C# la herencia se define:En C# la herencia se define:
class Cuenta //Clase Base{ }class CtaCte : Cuenta //Clase Derivada{ }
En .NET solo se permite Herencia Simple
C# - Herencia (Cont.)C# - Herencia (Cont.)
En C#En C#
public sealed class Cuenta{//No se puede heredar de esta clase “sellada” }
public abstract class Cuenta{//No se pueden crear instancias de esta clase, sólo//de sus derivadas }
C# - NamespacesC# - NamespacesC#C#
namespace BancoARG{ namespace Gestion { public class CtaCte { } public class CajaAhorro { } }}
//Referencia “full”BancoARG.Gestion.CtaCte;BancoARG.Gestion.CajaAhorro;
//Referencia “corta”using BancoARG.Gestion;CtaCte cc = new CtaCte();CajaAhorro ca = new CajaAhorro();
C# - Admin. De Excepciones C# - Admin. De Excepciones
C#: usa las palabras try/catch/finallyC#: usa las palabras try/catch/finally
try{ int resultado = x/y;}catch(DivideByZeroException e){ //Error division por cero}catch{ //Otro error}finally{ //Siempre pasa por aca}
Excepción: condición anómala de funcionamiento de Excepción: condición anómala de funcionamiento de una aplicaciónuna aplicación
© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or
implied, in this summary.