Está en la página 1de 16

Clases y Objetos

Guía para comprender la programación Orientada a Objetos


Programación Orientada a Objetos (POO)

 Paradigma dentro de la programación que viene a innovar la forma de obtener


resultados
 Se popularizó a principios de la década de 1990
 Existen una gran variedad de lenguajes de programación que soportan la
orientación a objetos.
 Hay que saber aprovechar las ventajas que ofrece.
¿Cómo se piensa en POO?

 Para pensar en POO, tenemos que intentar modelar la vida real pensando en las caracteristicas y
operaciones que tiene un objeto.
 Por ejemplo vamos a pensar en un coche para tratar de modelarlo en un esquema de POO.

 Diríamos que el coche es el elemento principal que tiene una serie de características, como podrían ser:
 Color
 Modelo
 Marca.

 Además tiene una serie de operaciones o funcionalidades asociadas, como pueden ser:
 Poner en marcha
 Parar
 Estacionar.
Pensemos un poco…

 Hombre Un poco mas abstracto y mas correspondiente a


C#
 Características?
 Combobox:
 Operaciones?
 Características?
 Operaciones?
 Equipo de futbol:
 Características?
Otro no visual, pero que se podría aplicar
 Operaciones?
 Acumulador
 Caracteristicas ? Operaciones?
 Partido de Fútbol:
 Contador:
 Propiedades?
 Características? Operaciones?
 Métodos?
¿Qué es una Clase?

 Una clase define una especie de “molde” para un conjunto de objetos que tienen las
mismas características de comportamiento.
 Estructura de una clase
 Nombre
 Modificador de acceso (público o privado)
 Atributos  Características, propiedades
 Métodos  Acciones que realizan, comportamiento
¿Qué es un Objeto?

 Es lo mismo que entendemos por un objeto en la


realidad
 Instancia de un objeto.
 Instanciar es el acto de enviarle un mensaje a un
objeto para que se cree. Se reserva un espacio en
memoria.
 Un objeto unCoche poseerá la estructura definida
por la clase Coche, pero tendrá valores
personalizados en los atributos.
Algunos conceptos importantes

 Identidad
 Se refiere a la posición física de un objeto en la memoria. Todos los objetos tienen diferente identidad.
Nunca un objeto es igual a otro.
 Estado Interno
 Conjunto de valores que tienen los atributos de un objeto en un momento determinado.
 Comportamiento
 Determina las operaciones que un objeto puede realizar o a las que puede responder
ante mensajes enviados por otros objetos
 Modificadores de acceso
 Por el momento y por lo general, declaramos a todos los atributos como privados y los métodos como
públicos.
 private  Implica que solo el mismo objeto es capaz de acceder a esa parte del código
 public  Implica que cualquier objeto que se comunique podrá acceder a esa parte del código
Más adelante veremos otro tipo de modificadores
Definición de una clase en C#

 En nuestra solución, crearemos un proyecto de tipo “Class Library” llamado “Negocio”. En


este lugar se encontrarán las clases que tengan relación con el dominio de la aplicación.
Definición de una clase en C#

 Por defecto se generará un archivo de clase. Crearemos 1 archivo por cada clase que
querramos usar. Aprovechemos la clase creada y cambiemos el nombre por Coche.

 Vamos a definir los atributos y métodos de la clase y luego los analizaremos


 Tip : El nombre de la clase SIEMPRE comienza con mayúscula
Definición de una clase en C#

 Definimos la clase, con sus propiedades y métodos. Sin


embargo… existe un pequeño inconveniente con esta
solución.
 A la velocidad podemos modificarla, pero con lo que
escribimos, no podríamos acceder a visualizar ninguno de los
valores de los atributos, porque son privados.
 ¿Deben ser privados los atributos? La respuesta es sí, lo que
debemos hacer es crear métodos que obtengan y puedan
modificar esos atributos.
 Estos métodos por lo general no son incluidos en un diagrama
de clases, porque son obviados.
Veamos como funcionan…
Definición de una clase en C#

 Si utilizamos la funcionalidad Quick Actions and Refactorings y luego elegimos


“Encapsulate Fields” podremos crear las properties para poder acceder a los atributos.
 Ya podremos utilizar los atributos y métodos de una clase en el formulario
Definición de una clase en C#

 Vemos que se han creado lo que se llaman propiedades públicas, con los descriptores de
acceso get y set.
 Si queremos hacer que una propiedad no tenga acceso de escritura podemos
simplemente eliminar el descriptor set.
Instanciar un objeto en C#

 Una vez finalizada la estructura de la clase, podremos instanciar objetos.


 Para utilizar la clase Coche en uno de mis formularios, tengo que decirle al Visual que voy
a relacionar el namespace Negocio con el namespace del proyecto de WinForm.
Instanciar un objeto en C#

 Al tener la referencia creada, puedo agregar una línea de using al formulario, en la cual
voy a especificar que voy a usar Negocio. using Negocio;
 Una vez hecho esto, aparecerá para utilizar la clase Coche

Miren que interesante. En la primera línea


declaramos un objeto de tipo Coche. En
la segunda lo instanciamos. Y luego, un
ejemplo para setear el color y acelerarlo.

El objeto unCoche en este momento se


encuentra en la memoria principal.
Definiendo un constructor

 Un constructor es un método que se llama al instanciar un objeto de una clase.


 Si uno no lo especifica, se crea vacío
 Vamos a aprovecharlo y decirle a la clase que cuando se instancie un objeto,
directamente se carguen los atributos.
 Podemos declarar todos los constructores que querramos.
En la clase: En el formulario:
¿Qué aprendimos?

 Aprendimos un poco sobre la historia del paradigma orientado a objetos


 Aprendimos qué es una clase y cómo se define
 Aprendimos qué es un objeto y cómo se instancia
 Aprendimos a implementar clases y objetos en C#
 Aprendimos la importancia de entender el constructor y su uso

Pero queda mucho por aprender aún sobre clases y objetos ! Algunos temas que veremos
más adelante
 Herencia
 Polimorfismo
 Sobrecarga de métodos

También podría gustarte