Introducción a la Programación Orientada a Objetos en C# Programa Microsoft DCE Estrella 0.

Post on 25-Jan-2016

217 views 0 download

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.