Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
OBJETOS?
La programación Orientada a objetos (POO) es una forma especial de
programar, más cercana a como expresaríamos las cosas en la vida real que
otros tipos de programación.
Con la POO tenemos que aprender a pensar las cosas de una manera distinta,
para escribir nuestros programas en términos de objetos, propiedades,
métodos y otras cosas que veremos rápidamente para aclarar conceptos y dar
una pequeña base que permita soltarnos un poco con este tipo de programación.
¿QUÉ ES EL ENCAPSULAMIENTO?
La encapsulación es un mecanismo que consiste en organizar datos y métodos
de una estructura, conciliando el modo en que el objeto se implementa, es
decir, evitando el acceso a datos por cualquier otro medio distinto a los
especificados. Por lo tanto, la encapsulación garantiza la integridad de los
datos que contiene un objeto.
La ocultación de datos
¿QUÉ ES EL POLIMORFISMO?
En programación orientada a objetos se denomina polimorfismo a la capacidad
que tienen los objetos de una clase de responder al mismo mensaje o evento en
función de los parámetros utilizados durante su invocación. Un objeto
polimórfico es una entidad que puede contener valores de diferentes tipos
durante la ejecución del programa.
Ejemplo:
Propiedades en clases
¿QUE ES UN OBJETO?
Los objetos son ejemplares de una clase cualquiera. Cuando creamos un
ejemplar tenemos que especificar la clase a partir de la cual se creará. Esta
acción de crear un objeto a partir de una clase se llama instanciar (que viene
de una mala traducción de la palabra instace que en inglés significa ejemplar).
Por ejemplo, un objeto de la clase fracción es por ejemplo 3/5. El concepto o
definición de fracción sería la clase, pero cuando ya estamos hablando de una
fracción en concreto 4/7, 8/1000 o cualquier otra, la llamamos objeto.
Para crear un objeto se tiene que escribir una instrucción especial que puede
ser distinta dependiendo el lenguaje de programación que se emplee, pero será
algo parecido a esto:
Estados en objetos
Cuando tenemos un objeto sus propiedades toman valores. Por ejemplo, cuando
tenemos un coche la propiedad color tomará un valor en concreto, como por
ejemplo rojo o gris metalizado. El valor concreto de una propiedad de un objeto
se llama estado.
-miCoche.color = rojo
El objeto es miCoche, luego colocamos el operador punto y por último el nombre
es la propiedad a la que deseamos acceder. En este ejemplo estamos cambiando
el valor del estado de la propiedad del objeto a rojo con una simple asignación.
Mensajes en objetos
Para mandar mensajes a los objetos utilizamos el operador punto, seguido del
método que deseamos invocar.
-miCoche.ponerseEnMarcha()
En este ejemplo pasamos el mensaje ponerseEnMarcha(). Hay que colocar
paréntesis igual que cualquier llamada a una función, dentro irían los
parámetros.
¿QUÉ ES UN ATRIBUTO?
En la programación orientada a objetos, un atributo es una especificación que
define una propiedad de un objeto, elemento o archivo. También puede
referirse o establecer el valor específico para una instancia determinada de
los mismos.
Para mayor claridad, los atributos deben ser considerados más correctamente
como metadatos. Un atributo es con frecuencia y en general una característica
de una propiedad.
¿QUÉ ES UN MENSAJE?
El modelado de objetos no sólo tiene en consideración los objetos de un
sistema, sino también sus interrelaciones.
Mensaje
Una clase es una construcción que le permite crear sus propios tipos
personalizados agrupando las variables de otros tipos, métodos y eventos. Una
clase es como un plano. Define los datos y el comportamiento de un tipo. Si la
clase no se declara como estática, el código de cliente puede usarla mediante la
creación de objetos o instancias que se asignan a una variable. La variable
permanece en memoria hasta que todas las referencias a ella están fuera del
ámbito. En ese momento, CLR la marca como apta para la recolección de
elementos no utilizados. Si la clase se declara como estática, solo habrá una
copia en la memoria y el código de cliente solo podrá tener acceso a ella a
través de la propia clase, y no a través de una variable de instancia. Para
obtener más información, vea Clases estáticas y sus miembros.
Declarar clases
Las clases se declaran mediante la palabra clave class, como se muestra en el
siguiente ejemplo:
C#Copiar
La palabra clave class va precedida del nivel de acceso. Como en este caso se
usa public, cualquier usuario puede crear objetos de esta clase. El nombre de la
clase sigue a la palabra clave class . El resto de la definición es el cuerpo de la
clase, donde se definen los datos y el comportamiento. Los campos, las
propiedades, los métodos y los eventos de una clase se denominan de forma
colectiva miembros de clase.
Ejemplo:
// Method
public void SetName(string newName)
{
name = newName;
}
}
class TestPerson
{
static void Main()
{
// Call the constructor that has no parameters.
Person person1 = new Person();
Console.WriteLine(person1.name);
person1.SetName("John Smith");
Console.WriteLine(person1.name);
// Sarah Jones
Puesto que las clases son tipos de referencia, una variable de un objeto de
clase contiene una referencia a la dirección del objeto del montón
administrado. Si se asigna un segundo objeto del mismo tipo al primer objeto,
ambas variables hacen referencia al objeto de esa dirección. Este punto se
analiza con más detalle más adelante en este tema.
class Program
{
static void Main()
{
Person person1 = new Person("Leopold", 6);
Console.WriteLine("person1 Name = {0} Age = {1}", person1.Name,
person1.Age);
}
}
/*
Output:
person1 Name = Leopold Age = 6
person2 Name = Molly Age = 16
person1 Name = Molly Age = 16
*/
Dado que las estructuras son tipos de valor, una variable de un objeto de
estructura contiene una copia de todo el objeto. También se pueden crear
instancias de estructuras usando el operador new , pero esto no resulta
necesario, como se muestra en el ejemplo siguiente:
C#Copiar
https://www.desarrolloweb.com/articulos/499.php
https://styde.net/encapsulamiento-en-la-programacion-orientada-a-
objetos/
https://damian02.wordpress.com/polimorfismo-poo/
http://www.upv.es/amiga/43.htm
http://programacion.net/articulo/programacion_orientada_a_objetos_279
http://profesores.fi-b.unam.mx/carlos/java/java_basico3_2.html