PDF de programación - Tema 2: Clase y objetos en C#

Imágen de pdf Tema 2: Clase y objetos en C#

Tema 2: Clase y objetos en C#gráfica de visualizaciones

Publicado el 24 de Enero del 2017
2.890 visualizaciones desde el 24 de Enero del 2017
189,9 KB
47 paginas
Creado hace 15a (09/12/2008)
Tema 2: Clase y objetos en C#

Programación Orientada a Objetos

Curso 2008/2009
Begoña Moros Valle

Contenido
Introducción.
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.

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 2

Clases y Objetos

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 2

Clases y Objetos

4

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 2

Clases y Objetos

5

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 2

Clases y Objetos

6

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 2

Clases y Objetos

7

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 2

Clases y Objetos

8

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 2

Clases y Objetos

9

Clase Cuenta 4/4
public class Cuenta
{ …

}

Tema 2

Clases y Objetos

10

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 2

Clases y Objetos

11

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 2

Clases y Objetos

12

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 2

Clases y Objetos

13

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 2

Clases y Objetos

14

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 2

Clases y Objetos

15

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 2

Clases y Objetos

16

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 2

Clases y Objetos

17

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 2

Clases y Objetos

18

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 2

Clases y Objetos

19

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 de ensamblado.
Un ensamblado es un componente software.
Visibilidad de los tipos: internal o public.
Por defecto, la visibilidad es internal.

Tema 2

Clases y Objetos

20

Tipos del lenguaje
Corresponden con los tipos de la plataforma

.NET: Common Type System (CTS):

Tema 2

Clases y Objetos

21

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 2

Clases y Objetos

22

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 2

Clases y Objetos

23

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 2

Clases y Objetos

24

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 2

Clases y Objetos

25

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

La declaración de una variable (por valor o

referencia) no la inicializa.

Los objetos se crean con el operador new.

Tema 2

Clases y Objetos

26

Constructores

Declaración de constructores ( = C++ y Java):

Tienen el nombre de la clase y no declaran tipo de

retorno.

Se permite sobrecarga.
Si no se define un constructor, el compilador incluye el

constructor por defecto (vacío y sin argumentos).

public Cuenta(Persona titular, double saldo)
{

this.codigo = ++ultimoCodigo;
this.titula
  • Links de descarga
http://lwp-l.com/pdf2096

Comentarios de: Tema 2: Clase y 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