C OOP
Programación OO
Por: Óscar López, M.Sc.
olopez@uniandino.com.co
¡Hola Mundo!
1.
using System;
2.
namespace HolaMundo {
///
/// Summary description for Hola.
///
class Hola {
3.
4.
5.
6.
///
/// The main entry point for the application.
///
[STAThread]
static void Main() {
Console.WriteLine(“¡Hola Mundo!”);
}
7.
8.
9.
10.
11.
12.13.
14.
}
15.
16.
}
OALP-2004 All Rights Reserved
CREACIÓN DE OBJETOS
OALP-2004 All Rights Reserved
Clases - Roles y Funciones
Generador de nuevos objetos
Descripción de la representación de sus instancias
Descripción del protocolo de mensajes de sus instancias
Elemento de la descripción de la taxonomía de un objeto
Un medio para implementar programación diferencialRepositorio de métodos para recibir mensajes
Artefacto para actualizar muchos objetos cuando ocurre
un cambio
Conjunto de todas las instancias de una clase
OALP-2004 All Rights Reserved
Clases - Definición
[[atributos]] [modificadores]
class identificador [: base,]
{cuerpo clase}
•
•
•
Atributos: anotaciones usadas para proporcionar meta-
datos sobre la clase
Identificador: nombre, notación de PascalBase: Clase, Clase Abstracta, Interfaz(ces). Atención:
sólo una clase, y las interfaces van al final
OALP-2004 All Rights Reserved
Modificadores de Clase
Modificador
Comentario
new
Sólo aplica para clases anidadas,
las “esconde”
abstract
Declara la clase como abstracta
internal
Declara una clase anidada
sealed
Declara la clase como sellada
OALP-2004 All Rights Reserved
Modificadoresde Acceso
Modificador
public
private
protected
internal
protected
internal
Comentario
Sin restricciones. Visible desde cualquier
método de cualquier clase
Sólo es visible desde los métodos de la
misma clase
Visible desde los métodos de una clase y
todas sus sub-clases
Visible desde los métodos de todas las
clases dentro de un mismo ensamblaje
Visible desde los métodos de una clase,
sussub-clases, y todas las clases en su
mismo ensamblaje
OALP-2004 All Rights Reserved
Aplicabilidad de Modificadores de Acceso
Categoría
Modificadores Aplicables
Acceso por
Defecto
espacios de
nombres
(implícito) public
public
clases, interfaces,
estructuras
public, internal
internal
miembros de
clase (incluyendo
tipos anidados)
public, protected,
internal, protected
internal, private
privatemiembros de
estructura
public, internal,
private
private
miembros de
interfaz
(implícito) public
public
miembros de
enumeración
(implícito) public
public
OALP-2004 All Rights Reserved
Instanciación - Palabras Clave
new
crea nuevas instancias de una clase o una
estructura
this
referencia a la instancia actual de un objeto
base
referencia a la super-clase de un objeto
OALP-2004 AllRights Reserved
Constructores de Instancia
El nombre del constructor debe ser el
mismo del nombre de la clase
No tienen un tipo de retorno
Si no se especifica, se crea un constructor
por defecto
Los constructores se pueden sobrecargar
y pueden llamar a otros constructores
dentro de la misma clase o en una superclase
OALP-2004 All Rights Reserved
Constructores de Instancia - Ejemplo
1.public class Window {
int top, left;
2.
3.
public Window(int top, int left) {
this.top = top;
this.left = left;
}
4.
5.
6.
7.
8.
}
9.
public class ListBox : Window {
10.
string mListBoxContents;
11.
ListBox(int top, int left, string theContents)
: base(top, left) {
mListBoxContents = theContents;
}
12.
13.
14.
ListBox(int top, int left)
: this(top, left, “”) {
}
15.
16.
17.
18.
}OALP-2004 All Rights Reserved
Constructores Estáticos
1.
No puede tener parámetros
No puede tener modificadores de acceso
No puede ser llamado explícitamente
Es llamado una sola vez, antes de crear la primera instancia
public class Window {
static GLibrary gLib;
2.
static Window() {
gLib = getLib();
}
3.
4.
5.
6.
}
OALP-2004 All Rights Reserved
Inicializadores, Valores por...
Regístrate para leer el documento completo.