1. Son entidades que comparten las mismas
características. Se agrupan en clases funcionales y
pueden ser utilizados mediante instanciación.
2. Características Básicas de un
Objeto
Objeto
Estado
Comportamiento
Identidad
Tiempo de
Vida
Configuración
inicial de los
atributos
Ejecución
métodos
implementados
en el objeto
Identificador
del objeto de
forma única
dentro de la
colección
Duración de
tiempo del
objeto presente
en el aplicativo
4. Clase
Una clase conjunta elementos que comparten las
mismas propiedades y métodos.
La instancia de una clase crea lo que se denomina un
objeto.
Existen superclases y subclases.
Con ello se crea lo que se llama jerarquía de clases,
donde la clase padre hereda a las clases hijas.
5. Encapsulación
Según Visual Studio.NET:
"La encapsulación es la capacidad de contener y controlar el
acceso a un grupo de elementos asociados. Las clases
proporcionan una de las formas más comunes de encapsular
elementos."
Cuando usamos las clases, éstas tienen una serie de
características (los datos que manipula) así como una serie de
comportamientos (las acciones a realizar con esos datos). La
encapsulación es esa capacidad de la clase de ocultarnos sus
interioridades para que sólo veamos lo que tenemos que ver, sin
tener que preocuparnos de cómo está codificada para que haga lo
que hace... simplemente nos debe importar que lo hace.
Resumiendo: Establece la separación entre la interfaz del objeto
y su implementación.
6. Polimorfismo
Según la documentación de Visual Studio.NET:
"El polimorfismo se refiere a la posibilidad de definir múltiples clases
con funcionalidad diferente, pero con métodos o propiedades
denominados de forma idéntica, que pueden utilizarse de manera
intercambiable mediante código cliente en tiempo de ejecución."
Dicho de otra manera, puede tener múltiples clases que se pueden
utilizar de forma intercambiable, si bien cada clase implementa las
mismas propiedades o los mismos métodos de maneras diferentes. El
polimorfismo es importante en la programación orientada a objetos
puesto que permite usar elementos que tienen el mismo nombre,
independientemente del tipo de objeto que se esté utilizando en ese
momento.
Resumiendo: Determina que el mismo nombre de método realizará
diferentes acciones según el objeto sobre el que se ha aplicado.
7. Evento
Es el encargado de que un método se ejecute. Entre los
eventos programáticos mas comunes se tiene el clic
que se produce sobre un botón, el keypress sobre un
objeto texto o change que se produce sobre dropdown.
8. Mensaje
Constituye la comunicación que se establece entre
objetos para intercambiar parámetros sean de entrada,
salida o ambos.
Mediante parámetros se establece un esquema de
colaboración entre objetos.
9. Objeto
Es una entidad instanciada de una clase provista de
propiedades o atributos (dato) y de comportamiento o
funcionalidad(métodos) que básicamente responden a
eventos.
El objeto puede instanciarse de una clase directamente
o de una clase derivada la cual hereda de otra.
10. Propiedades y Campos
Los campos y propiedades representan información que contiene un
objeto. Los campos se parecen a las variables ya que se pueden leer
y establecer directamente.
class SampleClass
{
public string sampleField;
}
Las propiedades tienen procedimientos get y set, que proporcionan
un mayor control sobre la forma en que se establecen o devuelven
los valores.
Tanto C# como Visual Basic permiten crear un campo privado para
almacenar el valor de propiedad o bien usar las denominadas
propiedades de implementación automática que crean este campo en
segundo plano automáticamente y proporcionan la lógica básica para
los procedimientos de propiedad.
Para definir una propiedad implementada automáticamente:
class SampleClass { public int SampleProperty { get; set; } }
11. Si necesita realizar algunas operaciones adicionales para leer y
escribir el valor de propiedad, defina un campo para almacenar el
valor de propiedad y proporcione la lógica básica para almacenarlo y
recuperar lo:
class SampleClass { private int _sample; public int Sample { // Return
the value stored in a field. get { return _sample; } // Store the value in
the field. set { _sample = value; } } }
La mayoría de las propiedades tienen métodos o procedimientos
tanto para establecer como para obtener el valor de propiedad. Sin
embargo, se pueden crear propiedades de solo lectura o solo
escritura para restringir su modificación o lectura. En Visual Basic se
pueden usar las palabras clave ReadOnly y WriteOnly. En C#, se
puede omitir el método de propiedad get o set. Sin embargo, tanto
en Visual Basic como en C#, las propiedades implementadas
automáticamente no pueden ser de solo lectura o de solo escritura.
12. Método
Constituye la lógica de un objeto. Algoritmo que se
implementa para realizar una determinada operación
sobre los atributos de la clase o de una clase derivada.
13. Un método es una acción que un objeto puede realizar. En Visual Basic hay dos formas de crear un
método: se usa la instrucción Sub si el método no devuelve un valor o bien se usa la instrucción
Function si el método devuelve un valor.
Para definir un método para una clase:
class SampleClass { public int sampleMethod(string sampleParam) { // Insert code here } }
Una clase puede tener varias implementaciones o sobrecargas del mismo método que se diferencian
en el número de parámetros o de tipos de parámetro.
Para sobrecargar un método:
public int sampleMethod(string sampleParam) {};
public int sampleMethod(int sampleParam) {}
En la mayoría de los casos, un método se declara dentro de una definición de clase. Sin embargo,
tanto Visual Basic como C# también admiten los métodos de extensión, que permiten agregar
métodos a una clase existente fuera de la definición de la clase en sí.
14. Constructores
Los constructores son métodos de clase que se ejecutan
automáticamente cuando se crea un objeto de un tipo determinado.
Normalmente, los constructores inicializan los miembros de datos del
nuevo objeto. Un constructor solo puede ejecutarse una vez cuando se
crea una clase. Además, el código del constructor siempre se ejecuta
antes que cualquier otro código en una clase. Sin embargo, puede crear
varias sobrecargas del constructor de la misma forma que para
cualquier otro método.
Para definir un constructor para una clase:
public class SampleClass { public SampleClass() { // Add code here } }
15. Destructores
Los destructores se utilizan para destruir instancias de
clases. En .NET Framework, el recolector de elementos
no utilizados administra automáticamente la
asignación y la liberación de memoria para los objetos
administrados en la aplicación. Sin embargo, es
posible que aún se necesiten destructores para limpiar
cualquiera de los recursos no administrados creados
por la aplicación. Solo puede haber un destructor para
una clase.
16. Eventos
Cuando ocurre algo interesante, los eventos habilitan
una clase u objeto para notificarlo a otras clases u
objetos. La clase que envía (o genera) el evento recibe
el nombre de publicador y las clases que reciben (o
controlan) el evento se denominan suscriptores.
17. Clases Anidadas
Una clase definida dentro de otra se denomina anidada. De
forma predeterminada, una clase anidada es privada.
class Container { class Nested { // Add code here. } }
Para crear una instancia de la clase anidada, use el nombre
de la clase contenedora seguido de un punto y seguido, a
continuación, del nombre de la clase anidada:
Container.Nested nestedInstance = new
Container.Nested();
18. Modificadores y Niveles de Acceso
Todas las clases y miembros de clase pueden
especificar el nivel de acceso que proporcionan a otras
clases mediante los modificadores de acceso.
Están disponibles los siguientes modificadores de
acceso:
19. Visual Basic C# Definición
Public public Puede obtener acceso al tipo o miembro cualquier otro
código del mismo ensamblado o de otro ensamblado que
haga referencia a éste.
Private private Solamente puede obtener acceso al tipo o miembro el
código de la misma clase.
Protected protected Solamente puede obtener acceso al tipo o miembro el
código de la misma clase o de una clase derivada.
Friend internal Puede obtener acceso al tipo o miembro cualquier código
del mismo ensamblado, pero no de un ensamblado
distinto.
Protected Friend protected internal Puede obtener acceso al tipo o miembro cualquier código
del mismo ensamblado o cualquier clase derivada de otro
ensamblado.
20. Creación de Instacias de Clases
Para crear un objeto, debe crear una o varias instancias de una clase.
SampleClass sampleObject = new SampleClass();
Una vez creadas las instancias de una clase, puede asignar valores a las
propiedades y los campos de la instancia, así como invocar métodos de clase.
// Set a property value. sampleObject.sampleProperty = "Sample String"; //
Call a method. sampleObject.sampleMethod();
Para asignar valores a las propiedades durante el proceso de creación de
instancias de una clase, use los inicializadores de objeto:
// Set a property value.
SampleClass sampleObject = new SampleClass
{ FirstProperty = "A", SecondProperty = "B" };
21. Clases y Miembros Estáticos
Un miembro estático (compartido en Visual Basic) de la clase es una propiedad, un
procedimiento o un campo que comparten todas las instancias de una clase.
Para definir un miembro estático (compartido):
static class SampleClass { public static string SampleString = "Sample String"; }
Para obtener acceso al miembro estático (compartido), use el nombre de la clase sin crear
un objeto perteneciente a esta:
Console.WriteLine(SampleClass.SampleString);
Las clases estáticas (compartidas) de C# y los módulos de Visual Basic solamente tienen
miembros estáticos (compartidos) y no se pueden crear instancias de los mismos.
Además, los miembros estáticos (compartidos) tampoco pueden tener acceso a las
propiedades, los campos o los métodos no estáticos (no compartidos).
22. Tipos Anónimos
Los tipos anónimos permiten crear objetos sin escribir
una definición de clase para el tipo de datos. En su
lugar, el compilador genera una clase. La clase no tiene
ningún nombre que se pueda usar y contiene las
propiedades especificadas al declarar el objeto.
// sampleObject is an instance of a simple anonymous
type.
var sampleObject =
new { FirstProperty = "A", SecondProperty = "B" };
23. Herencia
Es la facilidad mediante la cual una clase hereda las
propiedades y método públicos de otra clase. La
herencia puede ser simple o múltiple.
24. La herencia es una de las posibilidades que nos ofrece
el uso de las clases en general.
Visual Basic ofrece esta posibilidad utilizando la
herencia simple.
Visual permite la creación de clases que pueden ser
heredadas, cualquier clase, Inherits deben ser
heredadas obligatoriamente MustInherit, no se
pueden crear objetos con ella.
25. No pueden ser heredadas NotInheritable
Evidentemente cualquier clase puede ser heredada
excepto las que se declaren en uno de los otros
formatos.
El fin de la herencia es el crear un punto de partida con
un código existente y que ya está asentado, o no, para
ampliar las capacidades en una nueva versión o
modificar ciertos aspectos de la clase base.
26. La herencia permite crear una nueva clase que
reutiliza, extiende y modifica el comportamiento que
se define en otra clase. La clase cuyos miembros se
heredan se denomina clase base y la clase que hereda
esos miembros se denomina clase derivada. Sin
embargo, todas las clases de C# y Visual Basic heredan
implícitamente de la clase Object que admite la
jerarquía de clases .NET y proporciona servicios de
bajo nivel a todas las clases.
27. Los lenguajes administrados de .NET Framework no
admiten la herencia múltiple, es decir, solo se puede
especificar una clase base para una clase derivada.
28. Ejemplo
Public Class Ejemplos
' La variable se hace pública
Public Shared Contador As Int16 = 0
Public Sub Incrementa()
Contador += 1
End Sub
Public Sub Resta()
Contador -= 1
End Sub
Public Sub Visualiza()
Console.WriteLine("Contador vale {0} ", Contador)
End Sub
End Class
29. El ejemplo anterior de clase contiene una serie de métodos.
Public Class Nueva
' herencia de la clase anterior
Inherits Ejemplos
End Class
En la clase que se describe no hay ni una sola línea de
código pero adquiere todas las capacidades de la clase
Ejemplos.
30. Ejercicio:
Cree un ejemplo usando visual basic, en donde se
demuestre:
Inherits
MustInherit
NotInheritable
Cree un mapa conceptual de las diapositivas 10-26