conceptos basicos poo

30
Son entidades que comparten las mismas características. Se agrupan en clases funcionales y pueden ser utilizados mediante instanciación.

Upload: uniminuto

Post on 19-Jul-2015

240 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Conceptos basicos POO

Son entidades que comparten las mismas características. Se agrupan en clases funcionales y

pueden ser utilizados mediante instanciación.

Page 2: Conceptos basicos POO

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

Page 3: Conceptos basicos POO

P.O.O.

Page 4: Conceptos basicos POO

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.

Page 5: Conceptos basicos POO

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.

Page 6: Conceptos basicos POO

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.

Page 7: Conceptos basicos POO

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.

Page 8: Conceptos basicos POO

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.

Page 9: Conceptos basicos POO

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.

Page 10: Conceptos basicos POO

Propiedades y CamposLos 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; } }

Page 11: Conceptos basicos POO

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 { // Returnthe 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.

Page 12: Conceptos basicos POO

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.

Page 13: Conceptos basicos POO

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í.

Page 14: Conceptos basicos POO

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 } }

Page 15: Conceptos basicos POO

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.

Page 16: Conceptos basicos POO

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.

Page 17: Conceptos basicos POO

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

Page 18: Conceptos basicos POO

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:

Page 19: Conceptos basicos POO

Visual Basic C# DefiniciónPublic 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.

Page 20: Conceptos basicos POO

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" };

Page 21: Conceptos basicos POO

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

Page 22: Conceptos basicos POO

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 anonymoustype.

var sampleObject =

new { FirstProperty = "A", SecondProperty = "B" };

Page 23: Conceptos basicos POO

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.

Page 24: Conceptos basicos POO

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.

Page 25: Conceptos basicos POO

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.

Page 26: Conceptos basicos POO

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.

Page 27: Conceptos basicos POO

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.

Page 28: Conceptos basicos POO

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

Page 29: Conceptos basicos POO

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.

Page 30: Conceptos basicos POO

Ejercicio:

Cree un ejemplo usando visual basic, en donde se demuestre:

Inherits

MustInherit

NotInheritable

Cree un mapa conceptual de las diapositivas 10-26