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

41
Introducción a la Introducción a la Programación Orientada Programación Orientada a Objetos en C# a Objetos en C# Programa Microsoft Programa Microsoft DCE DCE strella 0

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

Page 1: 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

Page 2: Introducción a la Programación Orientada a Objetos en C# Programa Microsoft DCE 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

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

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

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

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

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

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

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

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”

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

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

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

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

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

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!");

}}

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

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;}}

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

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

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

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

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

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

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

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#

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

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;

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

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);

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

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”

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

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”};

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

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

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

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 <=

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

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()){ {} }

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

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

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

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

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

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

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

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++){}

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

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

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

C# - Sentencia whileC# - Sentencia whileC#:C#:

bool condicion = true;while (condicion == true){

//En algún momento poner condicion = false}

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

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

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

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}

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

Sintaxis – Entry PointSintaxis – Entry Point

C#:C#:public class HolaMundo {

public static void Main(string[] args){//Punto de entrada de la aplicación

}}

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

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.

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

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.

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

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.

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

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”.

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

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”

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

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

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

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

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

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 }

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

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();

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

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

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

© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or

implied, in this summary.