Vous êtes sur la page 1sur 14

Lenguaje de

Programacin
Orientada a objetos
Programacin II
Contenido
Abstraccin de datos
Identificadores de diseo de una clase
Construccin de clases
Sobrecarga de mtodos
Funciones virtuales
Funciones virtuales puras
Funciones amigas
Operadores y Operadores amigos
Espacios de nombres
Abstraccin de
datos
La abstraccin consiste en aislar un elemento de su contexto o del
resto de los elementos que lo acompaan.
En programacin, el trmino se refiere al nfasis en el "qu hace?"
ms que en el "cmo lo hace?" (caracterstica de caja negra)
La abstraccin es la propiedad que permite representar las
caractersticas esenciales de un objeto sin preocuparse de las
restantes caractersticas ( no esenciales ).
La abstraccin se centra en la vista externa de un objeto, de modo
que sirva para separar el comportamiento esencial de un objeto de
su implementacin.
Identificadores
de diseo de
un clase
Una clase es un tipo de dato que contiene uno o ms elementos
llamados dato miembro, y cero, una o ms funciones que
manipulan esos datos (llamados funcin miembro).

//Definicion de la clase CuentaBancaria
class CuentaBancaria
{
//Definicion de miembros
}
Construccin
de clases

class CtaCte
{
int balance;

public int Balance
{
get
{
return balance;
}
set
{
balance = value;
}
}
public void HacerDeposito(int importe) //No devuelve valor
{
}
public int Mostrar(int codCtaCte) //Devuelve un entero
{
}

}
CtaCte cc = new CtaCte();
cc.Balance = 100; //Asignacin
Bal = Mostrar(cc.Balance); //Obtencin
Sobrecarga de
mtodos
Sobrecarga: varios mtodos con el mismo nombre pero diferente
firma.

public void HacerDeposito(int importe)
{
}

public void HacerDeposito(int importe, bool acreditar)
{
}
Sobrecarga de
operadores
public class ComplexNumber {

private int real;
private int imaginary;

public ComplexNumber() : this(0, 0) // constructor
{ }
public ComplexNumber(int r, int i) // constructor
{
real = r; imaginary = i;
}

public override string ToString()
{
return(System.String.Format("{0} + {1}i", real, imaginary));
}
// Sobrecargando el operador +:
public static ComplexNumber operator+(ComplexNumber a, ComplexNumber b)
{
return new ComplexNumber(a.real + b.real, a.imaginary + b.imaginary);
}
// Sobrecargando el operador -:
public static ComplexNumber operator-(ComplexNumber a, ComplexNumber b)
{
return new ComplexNumber(a.real - b.real, a.imaginary - b.imaginary);
}
}
Mtodos
virtuales
Cuando una declaracin de mtodo de instancia incluye un
modificador virtual, se dice que el mtodo es un mtodo virtual
La implementacin de un mtodo no virtual es invariable. La
implementacin es la misma tanto si se invoca un mtodo en una
instancia de la clase en la que se declar o en una instancia de una
clase derivada.
En cambio, la implementacin de un mtodo virtual se puede
sustituir por clases derivadas.
Ejemplo
En el siguiente ejemplo se ilustran las diferencias entre los mtodos virtuales y los mtodos no
virtuales:
using System;
class A
{
public void F() { Console.WriteLine("A.F"); }
public virtual void G() { Console.WriteLine("A.G"); }
}
class B: A
{
new public void F() { Console.WriteLine("B.F"); }
public override void G() { Console.WriteLine("B.G"); }
}
class Test
{
static void Main() {
B b = new B();
A a = b;
a.F();
b.F();
a.G();
b.G();
}
}
Se produce el siguiente resultado:
A.F
B.F
B.G
B.G
Mtodos
virtuales puros
Una funcin virtual pura o mtodo virtual puro es una funcin
virtual que necesita ser implementada por una clase derivada que
no sea abstracta.
Las clases que contienen mtodos virtuales puros son
denominadas "abstractas".
stas no pueden ser instanciadas directamente, y una subclase de
una clase abstracta slo puede ser instanciada directamente si
todos los mtodos virtuales puros han sido implementados por
esa clase o una clase padre.
Los mtodos virtuales puros normalmente tienen una declaracin
(cabecera) pero no tienen definicin (implementacin).
Funciones
amigas
Una funcin amiga es una funcin no miembro de una clase que
puede tener acceso a las partes privadas de una clase; se debe
declarar como amiga de la clase mediante la palabra reservada
friend.
Las funciones amigas se declaran situando su prototipo de funcin
en la clase de la que son amiga precedindola con la palabra
reservada friend.
Las razones fundamentales para utilizar funciones amigas es que
algunas funciones necesitan acceso privilegiado a ms de una
clase.
Una segunda razn es que las funciones amigas pasan todos sus
argumentos a travs de la lista de argumentos y cada valor de
argumento se somete a la conversin de asignacin.
Operadores
amigos
Un operador amigo, al igual que una funcin amiga, es aquel que
an cuando no es miembro de una clase tiene todos los privilegios
de acceso a los miembros de dicha clase.
Espacios de
Nombres
Los espacios de nombres son una manera de organizar los
distintos tipos que aparecen en un programa en C#.
Conceptualmente es similar a una carpeta en un sistema de
archivo del equipo.
Al igual que las carpetas, los espacios de nombres permiten a las
clases tener un nombre completo nico.
Un programa en C# contiene uno o ms espacios de nombres, que
quedan definidos por el programador o como parte de una
biblioteca de clases previamente escrita.
Por ejemplo, el espacio de nombres System incluye la
clase Console, una clase que contiene los mtodos para leer y
escribir en la ventana de la consola.
Espacios de
nombres
El espacio de nombres System tambin contiene mltiples
espacios de nombres diferentes,
como System.IO y System.Collections.
Slo .NET Framework tiene ms de ochenta espacios de nombres,
cada uno con miles de clases: los espacios de nombres se utilizan
para minimizar la confusin que se podra producir entre tipos y
mtodos con nombres parecidos.
Los espacios de nombres tienen las propiedades siguientes:
Organizan proyectos de cdigo de gran tamao.
El operador . delimita los espacios de nombres.
El espacio de nombres global es el espacio de nombres
"raz": global::System siempre har referencia al espacio de
nombres System de .NET Framework.
Para utilizar un espacio de nombre se hace uso de la palabra using.

Vous aimerez peut-être aussi