Sie sind auf Seite 1von 5

Paradigma de la Programación Orientada a Objetos

Aplicación, implementación y características en .Net

Objetos
Un objeto es cualquier cosa real o abstracta que posee una estructura que lo define
y acciones que lo controlan.
Un objeto presenta una identidad, un estado y un comportamiento en un momento
dado.

La Identidad de un objeto le permite ser distinguido de entre otros y esto se da


gracias a la dirección de memoria, son distintos si ocupan distintas direcciones de
memoria. El estado de un objeto es el conjunto de valores concretos que lo
caracterizan en un momento dado, como peso, color, precio, etc.

QUE ES LA PROGRAMACION ORIENTADA A OBJETOS

Es una serie de normas para mejorar la programación, basándose en la idea natural


de un mundo lleno de objetos, siendo este objeto su elemento fundamental.
Se puso de moda en los 90 pero sus orígenes son de los años 70 con lenguajes
como el Smalltalk.
En estos objetos se encapsulan datos y código que interactúan para obtener
resultados.
En este paradigma solo podemos acceder a los datos por medio del código asociado
al mismo.
Otras características de esta programación son la herencia y el polimorfismo, que
le dan como característica una mayor flexibilización y poder a la programación

Clase

Una clase es una construcción estática que describe comportamientos comunes y


atributos incluyendo en ella datos y métodos o funciones.
Los métodos por defectos son el constructor que inicializa valores y el destructor
que libera recursos al finalizar la vida útil de una instancia de una clase creada en
memoria.
A esta instancia de una clase se la llama Objeto, quien posee identidad,
comportamiento y estado fijo o variable especificas a ese objeto.
O sea que un objeto es la instancia de una clase

Abstracción

Es el método selectivo donde se decide de la visión de la realidad, que es importante


y que no. Para reforzar este mecanismo se utiliza el encapsulamiento que nos
brinda dos cosas importantes, el control y el cambio.
En el encapsulamiento los métodos son públicos y accesibles desde afuera,
mientras que los datos son privados y solo accesibles desde adentro del objeto por
sus propios métodos.
Los datos del objeto describen al mismo en forma individual, pudiendo encontrarse
datos estáticos que son comunes a los objetos de la misma clase
Los métodos de tipo estáticos solo acceden a los datos estáticos y lo hacen desde
la clase , no desde el objeto .

Herencia

Es un tipo de relación ente clases


Va de la generalización a la especialización, de la clase base a la clase derivada,
heredando la implementación
Existen distintos tipos de herencia , la simple donde una clase hija hereda de una
única clase padre , aunque puede darse el caso de herencia múltiple donde exista
varias clases padres , no es soportada por todos los lenguajes y puede ser confusa.

Polimorfismo

Literalmente la palabra significa tomar varias formas, es cuando un método realiza


tareas similares de acuerdo a que objeto se lo aplique , como por ejemplo la suma
, que puede sumar números como concatenar strings.
La definición del método reside en la clase base, pero su implementación reside en
la clase derivada y se produce en el momento de ejecución.

Tipo System Object

Todas las clases hereden (directamente o indirectamente) de System.Object, lo que


significa que siempre podra asignar cualquier tipo a una variable System.Object y
nunca obtendrá un error de compilación o en tiempo de ejecución.

Dim MiVar as System.Objetc = New OtraCalase()

La única cosa de .Net Framework que no deriva de System.Object son las


Interfaces.

El system.object tiene 5 métodos en concreto

Equals : un método reemplazable que verifica si el objeto actual tiene el mismo


valor que el objeto que se ha pasado como argumento

GetHashCode : método reemplazable que devuelve el código hash


correspondiente al objeto. Este método se utiliza cuando emplee el objeto como una
clave para las colecciones y las tablas hash. Idealmente, el código hash debe ser
único para cada instancia de objeto por lo que podría verificarse dos objetos son
“iguales 2 sin más que comparar su código hash.

GetType : es un método que devuelve un valor que identifica el tipo del objeto. El
valor proporcionado se suele utilizar normalmente en operaciones de reflexión.

ToString: es un método reemplazable que devuelve el nombre completo de la clase.

ReferenceEquals : es un método compartido que acepta dos argumentos de objeto


y devuelve true si hacen referencia a la misma instancia.

Posee también dos métodos protegidos

MenberwiseClone : devuelve un objeto del mismo tipo y que inicializa sus campos
y propiedades a fin de que el nuevo objeto pueda ser considerado una copia

Finalize : es un método reemplazable que se llama cuando un objeto ha sido


recolectado por no haber sido utilizado ( tiempo de vida de un objeto )

Métodos Públicos y Protegidos

Como todas las clases heredan de System.Object, todas ellas exponen los cinco
métodos que también expone System.Object, estos son:

Equals: Un método remplazable que verifica si el objeto actual tiene el mismo valor
que el objeto que se ha pasado como argumento, devuelve un boleano.

GetHashCode: Método remplazable que devuelve el código hash correspondiente


al objeto, este será único para cada instancia del objeto.

GetType: Es un método que devuelve un valor que identifica el tipo de objeto.

ToString: Es un método remplazable que devuelve el nombre completo de la clase.

ReferenceEquals: Es un método compartido que acepta dos argumentos de objeto


y devuelve trae si hcen referencia a la misma instancia.

La clase System.Object también expone dos métodos protegidos, estos son:

MenberwiseClone: Es un método que devuelve un nuevo objeto del mismo tipo y


que inicializa sus campos y propiedades con el fin de que el nuevo objeto pueda ser
considerado una copia del objeto actual.

Finalize: Es un método remplazable que llama a . NET Framework cuando el objeto


a sido recolectado por no haber sido utilizado.

Tipos de valor y por referencia


Tipos por valor: los tipos por valor almacenan datos a los que se puede acceder
de forma directa, a su vez dentro de esta categoría encontramos más subcategorías
como los tipos nativos de .NET, los tipos de datos creados por el programador y los
enumerados. Los tipos por valor no pueden tener valores nulos.
Tipos por referencia: Los tipos creados por referencia almacenan la dirección de
memoria en la que se encuentra un dato determinado de manera que usaremos esa
dirección de memoria para acceder de forma indirecta al dato. Los tipos por
referencia se dividen en varios subgrupos como son las clases propias de la
plataforma, interfaces, clases creadas por el programador, etc.

Cuando ejecutamos una aplicación es necesario que los datos se sitúen en la


memoria del ordenador, la cual está divida en dos partes, una llamada Stack, de
pequeño tamaño pero de un acceso muy rápido y otra llamada Heap que cuenta
con un mayor tamaño pero con una velocidad de acceso inferior.

Cuando creamos tipos por valor, el valor de la variable de este tipo se almacena en
el Stack, si asignamos una variable de estas características a otra, se crea una copia
en el Stack. Al destruir un tipo por valor, se destruye también el valor que se guardó
en el Stack.
Cuando creamos un tipo por referencia, en realidad lo que guardamos en el Heap
es una dirección de memoria que apunta a un valor, pero no al valor en si mismo.
Si asignamos una variable que contiene un tipo por referencia a otra variable, se
dice que ambas se refieren al mismo valor. Los tipos por referencia si pueden
contener valores nulos.

Boxining y Unboxining

Boxing permite a cualquier tipo de dato por valor ser convertido de manera explícita
a un valor de tipo objeto. Boxing es el proceso en donde las instancias de un
objeto son creadas y sus valores son copiados directamente a la instancia.

Unboxing es lo contrario en donde un valor es copiado desde una instancia a


un medio de almacenamiento en particular. Es común en el lenguaje Visual
Basic.NET ya que por años y años a ofrecido a los programados esa conversión
interna y tratado de los tipos de datos cuando son intercambiados entre objetos.

Tipo String

La clase String expone numerosos métodos constructores sobrecargados, con lo


que podrá crear sus cadenas de diversas formas.

MiVar = New String(CChar(“A”), 10)


Console.WriteLine (MiVar) = `AAAAAAAAAA
Propiedades y Métodos

Las únicas propiedades de la clase string son Length y Chars.


Length: Devuelve el número de caracteres que forman la cadena.
Chars: Devuelve el carácter situado en un índice determinado.

Optimización de la Cadena

Un importante detalle que deberá recordar es que un objeto string es inmutable (una
vez que cree un string no podrá cambiar su contenido).
Las aplicaciones .NET podrán optimizar la administración de las cadenas sin mas
que mantener un grupo interno de valores de cadena conocido como grupo interno
(o pool interno). Si el valor que se ha asignado a una variable de cadena coincide
con una de las cadenas contenida ya en el grupo interno, no se reservara memoria
adicional y la variable recibirá la dirección del valor de la cadena en el grupo.
Sin embargo, este paso de optimización no se llevara a cabo en tiempo de
ejecución.

Das könnte Ihnen auch gefallen