PDF de programación - Tema 6: Programación Orientada a Objetos en C#

Imágen de pdf Tema 6: Programación Orientada a Objetos en C#

Tema 6: Programación Orientada a Objetos en C#gráfica de visualizaciones

Publicado el 14 de Enero del 2017
2.069 visualizaciones desde el 14 de Enero del 2017
271,9 KB
118 paginas
Creado hace 14a (13/12/2009)
Tema 6: Programación Orientada
a Objetos en C#

Programación Orientada a Objetos

Curso 2009/2010
Begoña Moros Valle

Contenido

Introducción.
Clases y Objetos en C#:

Módulos: Clases, Estructuras, Espacios de nombres, Ensamblados.
Tipos del lenguaje.
Definición y semántica de los operadores.
Métodos y mensajes. Paso de parámetros.
Construcción de objetos.

Herencia en C#:

Polimorfismo y ligadura.
Clase object.
Casting y Compatibilidad de tipos.
Clases abstractas.

Interfaces.



Herencia múltiple.
Genericidad.
Estrategias – Delegados.

Iteradores.



Corrección y Robustez en C#: asertos y excepciones

Tema 6

POO en C#

2

Introducción
C# es un lenguaje creado por Microsoft y

liderado por Anders Heljsberg.

Es un lenguaje orientado a objetos puro

inspirado en C++, Java, Delphi y Eiffel.

Las aplicaciones C# son ejecutadas en un

entorno controlado llamado CLR (Common
LanguageRuntime).

El lenguaje está estandarizado en ECMA e

ISO.

Actualmente está en la versión 3.0.

Tema 6

POO en C#

3

Plataforma .NET
El compilador de C# genera código

intermedio para la plataforma .NET.

El código intermedio es ejecutado por una

máquina virtual: CLR

C# es sólo uno de los lenguajes de la

plataforma .NET: C++, VB.NET, Eiffel.NET, etc.
La plataforma .NET está ligada a los sistemas

operativos Windows.

Proyecto Mono:

Implementación de .NET en otros sistemas

operativos.

Incluye un compilador para C#.
Tema 6

POO en C#

4

Clases y Objetos en C#

Clases.
Propiedades.
Visibilidad.
Espacios de

nombres.

Ensamblados.
Tipos del lenguaje.
Construcción de

objetos.

Estructuras.
Asignación y copia.
Identidad e igualdad.
Métodos y mensajes.
Paso de parámetros.
Operadores.
Instancia actual.
Método Main.

Tema 6

POO en C#

5

Clases

En C# los elementos que definen una clase

son:
Atributos, métodos y constructores ( = Java y

C++)

La declaración de una clase comparte aspectos

en común con Java y C++:
La declaración de una clase incluye la definición e

implementación ( = Java ).

Un fichero de código fuente (extensión .cs) puede
contener la declaración de varias clases ( = C++ ).

Tema 6

POO en C#

6

Clases

C# añade dos nuevos tipos de declaraciones:

Propiedades:

Representan características de los objetos que son

accedidas como si fueran atributos.
Ocultan el uso de métodos get/set.
Una propiedad puede representar un atributo calculado.

Eventos:

Notificaciones que envía un objeto a otros objetos cuando

se produce un cambio de estado significativo.

Propiedades y eventos son el soporte para el

Desarrollo de Software basado en
Componentes.

Tema 6

POO en C#

7

Clase Cuenta 1/4

public class Cuenta {
// Constante
private const int MAX_OPERACIONES = 20;

// Atributo de clase

private static int ultimoCodigo = 0;

// Atributos de instancia

private int codigo;
private double saldo = 100;
private readonly Persona titular;
private EstadoCuenta estado;
private double[] ultimasOperaciones;


Tema 6

POO en C#

8

Clase Cuenta 2/4

public class Cuenta
{


// Constructor
public Cuenta(Persona titular, double saldo)
{

this.codigo = ++ultimoCodigo;
this.titular = titular;
this.saldo = saldo;
estado = EstadoCuenta.OPERATIVA;
ultimasOperaciones = new double[MAX_OPERACIONES];

}


}

Tema 6

POO en C#

9

Clase Cuenta 3/4
public class Cuenta
{ …

get { return saldo; }

// Propiedades
public double Saldo
{
}
public Persona Titular
{
}
public int Codigo
{
}

get { return titular; }

get { return codigo; }

}

Tema 6

POO en C#

10

Clase Cuenta 4/4
public class Cuenta
{ …

}

Tema 6

POO en C#

11

if (cantidad <= saldo)

saldo = saldo - cantidad;

// Métodos de instancia
saldo = saldo + cantidad;

public void Ingreso(double cantidad) {
}
public void Reintegro(double cantidad){

}
// Métodos de clase
public static int GetNumeroCuentas() {
}

return ultimoCodigo;

Clases

Los miembros de una clase pueden ser de

instancia (por defecto) o de clase, utilizando el
modificador static ( = Java y C++).

Los atributos de sólo lectura se marcan

utilizando el modificador readonly (= final de
Java y const de C++):
readonly Persona titular;

Tema 6

POO en C#

12

Clases

Las constantes se declaran const (= final

static de Java y const static de C++):
private const int MAX_OPERACIONES = 20;

Está permitida la inicialización de los

atributos en la declaración ( = Java):
private double saldo = 100;

Los atributos no inicializados en la

declaración o en los constructores toman el valor
por defecto de su tipo de datos ( = Java ).

Tema 6

POO en C#

13

Propiedades

Declaración de propiedades:

public double Saldo
{
}

get { return saldo; }

Se usan como atributos, pero el acceso se

realiza invocando a métodos get/set:

Console.WriteLine("Saldo de la cuenta: " + cuenta.Saldo);

Tema 6

POO en C#

14

Propiedades

Los métodos get/set pueden realizar cálculos:

public double SaldoDolar
{
}

get { return saldo * Banco.CambioDolar(); }

El acceso a la propiedad oculta el cálculo:

Console.WriteLine("Saldo en dólares: " + cuenta.SaldoDolar );

Tema 6

POO en C#

15

Propiedades

En la definición de un método set, el
identificador value representa el valor que va
a ser asignado:

public double Saldo
{

get { return saldo; }
private set { saldo = value; }

}

Es posible indicar un nivel de visibilidad distinto

para cada uno de los métodos.

Tema 6

POO en C#

16

Propiedades

Declaración automática de propiedades:

Evitamos tener que declarar el atributo.
Los métodos get/set sólo consultan y modifican la

propiedad.

public double Saldo
{

get;
private set;

}

Tema 6

POO en C#

17

Visibilidad

El nivel de visibilidad se especifica para cada

declaración ( = Java):
public: visible para todo el código.
private: visible sólo para la clase.
protected: visibilidad para la clase y los subtipos.
internal: visibilidad para el “ensamblado”.
protected internal: visibilidad para la clase y

subtipos dentro del mismo ensamblado.

Por defecto, las declaraciones en una clase son

privadas ( = C++).

Tema 6

POO en C#

18

Espacios de nombres
Un espacio de nombres (namespace) es un
mecanismo para agrupar un conjunto de
declaraciones de tipos relacionadas ( = C++)

Evita la colisión de los nombres de
identificadores.
Se declaran con namespace y pueden estar
definidos en varios ficheros de código fuente.

Los espacios de nombres pueden estar

anidados.

Son diferentes a los paquetes de Java.

Tema 6

POO en C#

19

Espacios de nombres

Para hacer uso de un tipo declarado en un

espacio de nombre se califica su nombre:
GestionCuentas.Cuenta

Podemos indicar que se usan todas las

declaraciones de un espacio de nombres con
using.

using System;
using System.Text;
namespace GestionCuentas
{

enum EstadoCuenta { … }
class Cuenta { … }

}

Tema 6

POO en C#

20

Ensamblados

C# define un nivel de visibilidad entre los tipos
que forman parte del mismo “ensamblado”:
visibilidad internal.
Ensamblado: unidad de empaquetado de

software en la plataforma .NET
Un fichero ejecutable es un ensamblado.
Un ensamblado es un componente software.
Visibilidad de los tipos: internal o public.
Por defecto, la visibilidad es internal.

Tema 6

POO en C#

21

Tipos del lenguaje
Corresponden con los tipos de la plataforma

.NET: Common Type System (CTS):

Tema 6

POO en C#

22

Tipos del lenguaje

C# es un lenguaje orientado a objetos puro.

Todos los tipos definen objetos.
Se distinguen dos tipos de datos:

Tipos con semántica referencia: clases, interfaces,

arrays y “delegados”. Aceptan el valor null.

Tipos con semántica por valor: tipos primitivos,

enumerados y estructuras.

Por tanto, los tipos primitivos son objetos:

Podemos aplicar métodos sobre los tipos primitivos

como ToString o Equals.

Tipos: char, int, long, float, double, bool, etc.

Tema 6

POO en C#

23

Enumerados

Los enumerados son objetos con

semántica valor.

Declaración de un enumerado:

enum EstadoCuenta { OPERATIVA, INMOVILIZADA, NUMEROS_ROJOS }

Al igual que en C++, las etiquetas del

enumerado representan valores enteros.

Tema 6

POO en C#

24

Enumerados

Uso de un enumerado:

public class Cuenta
{ …

private EstadoCuenta estado;
public Cuenta(Persona titular, double saldo)
{ …
}

estado = EstadoCuenta.OPERATIVA;

Si no se inicializa un enumerado, toma como

valor por defecto la primera etiqueta.

Tema 6

POO en C#

25

Arrays
Los arrays son objetos con semántica

referencia.

Se declaran y usan igual que en Java:

public class Cuenta
{


private double[] ultimasOperaciones;
public Cuenta(Persona titular, double saldo)
{


ultimasOperaciones = new double[MAX_OPERACIONES];

}

Tema 6

POO en C#

26

Construcción de objetos

Declaración y construcción de objetos

Persona persona;
persona = new Persona("34565433", "Juan González");
Cuenta cuenta = new Cuenta(persona, 300
  • Links de descarga
http://lwp-l.com/pdf599

Comentarios de: Tema 6: Programación Orientada a Objetos en C# (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad