Sunteți pe pagina 1din 17

MODELO ORIENTADO A OBJETOS

Ing. Dagoberto Rodrguez C.

Ing.Dagoberto Rodriguez C.

Introduccin
Un modelo es una representacin abstracta de un sistema real. Los modelos orientados a objetos deben tener los siguientes componentes: Usar un lenguaje de programacin orientado a objetos (Java, C#, C++, VB.Net) Tener un diseo orientado a objetos. Hacer una implementacin orientada a objetos.
Ing.Dagoberto Rodriguez C.

MOO: Caractersticas
Abstraccin: Es la propiedad que permite representar las caractersticas (atributos) y comportamiento (mtodos) esenciales de un objeto. Encapsulamiento: O encapsulacin es la propiedad que permite asegurar que el contenido de la informacin de un objeto est oculta al mundo exterior; cada atributo y cada mtodo solo le pertenece a l y solo puede ser manejado por l. Modularidad: Es la propiedad que permite subdividir una aplicacin en partes ms pequeas (llamadas mdulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicacin en s y de las restantes partes.
Ing.Dagoberto Rodriguez C.

MOO: Caractersticas
Jerarquizacin: Es la propiedad que permite a los objetos hacer uso de las caractersticas y comportamiento de otros. La jerarqua se presenta de dos formas: Herencia (es un) y Agregacin (es parte de). Polimorfismo: Es la propiedad que indica, literalmente, la posibilidad de que una entidad tome muchas formas. En trminos prcticos, el polimorfismo permite referirse a objetos de clases diferentes mediante el mismo elemento de programa y realizar la misma operacin de diferentes formas, segn sea el objeto que se referencia en ese momento.
Ing.Dagoberto Rodriguez C.

La Herencia
Una de las propiedades ms importantes de los objetos es la herencia, la cual se puede definir como la capacidad que tiene un objeto hijo (subclase) de utilizar las caractersticas y comportamiento de su padre (superclase). En C# la herencia se representa usando dos puntos (:) y colocando el nombre de la clase padre.
Ing.Dagoberto Rodriguez C.

La Herencia
La notacin es la siguiente: Public class Padre //creacin de la superclase { //implementacin del cdigo de la superclase } Public class Hija : Padre //invocacin de la herencia { //implementacin del cdigo de la subclase. Solamente el cdigo //que le pertenece a esta clase. El cdigo de la superclase puede //ser usado por esta clase. }

Ing.Dagoberto Rodriguez C.

La Herencia (ejemplo)
Public class Poligono { Protected double radio; Protected double volumen; Public void cargar_radio(double r) { radio = r; } Public void devolver_radio() { return radio; } Public void devolver_volumen(double r) { return volumen; } Public void calcular_volumen(double h) { volumen = Math.PI / 3 * Math.Pow(radio,2) * h; } }
Ing.Dagoberto Rodriguez C.

La Herencia (ejemplo continuacin)


Public class Cono : Poligono //invocacin de la herencia { Private double altura; Public void cargar_altura(double h) { altura = h; } } La clase Cono podr hacer uso de las caractersticas de la clase Polgono, y por lo tanto no se requiere que se definan en ella ni los atributos ni los mtodos.
Ing.Dagoberto Rodriguez C.

Polimorfismo
Como se expreso antes, es la propiedad que permite que un objeto se comporte de diferentes formas. Este procedimiento se hace a travs de los mtodos. Ejemplo: Si se quisiera crea otra clase heredada de Polgono como por ejemplo la Esfera, el clculo de su volumen se hara de forma diferente, haciendo que el objeto Polgono actuara unas veces como esfera y otras veces como Cono, para lo cual implementaramos el cdigo respectivo al clculo de su volumen as:

Ing.Dagoberto Rodriguez C.

Polimorfismo
Public class Poligono { Protected double radio; Protected double volumen; Public void cargar_radio(double r) { radio = r; } Public void devolver_radio() { return radio; } Public void devolver_volumen(double r) { return volumen; } Public void calcular_volumen(double h) // calculo del volumen para el Cono { volumen = Math.PI / 3 * Math.Pow(radio,2) * h; } Public void calcular_volumen() // calculo del volumen para la Esfera { volumen = 4 / 3 * Math.PI * Math.Pow(radio,3); } Ing.Dagoberto Rodriguez C. }

Polimorfismo
La clase Esfera quedara en forma vaca ya que no requiere en este caso otras caractersticas: Public class Esfera : Poligono //invocacin de la herencia { }

Ing.Dagoberto Rodriguez C.

Ejemplo
Cree un proyecto nuevo en C#; sobre el formulario 1 agregue tres cajas de texto, dos botones; dos etiquetas. Se usar para la esfera una caja de texto (capturar radio) un botn y una etiqueta. Se usar para el cono dos cajas de texto (radio y altura) un botn y una etiqueta. Cree una clase con el nombre Poligono y escriba en ella el siguiente cdigo: class Poligono { protected double radio; protected double volumen; public void cargar_radio(double r) { radio = r; }

Ing.Dagoberto Rodriguez C.

Ejemplo (continuacin)
public double devolver_radio() { return radio; } public double devolver_volumen() { return volumen; } public void calcular_volumen() { volumen = 4 / 3 * Math.PI * Math.Pow(radio, 3); } public void calcular_volumen(double h) { volumen = Math.PI/3 * Math.Pow(radio, 2)*h; } }
Ing.Dagoberto Rodriguez C.

Ejemplo (continuacin)
Cree una clase Cono, coloque dos puntos ( : ) y a continuacin escriba Poligono, luego escriba el siguiente cdigo: class Cono:Poligono { private double altura; public void cargar_altura(double h) { altura = h; } public double devolver_altura() { return altura; } }
Ing.Dagoberto Rodriguez C.

Ejemplo (continuacin)
Cree una clase Esfera, coloque dos puntos ( : ) y a continuacin escriba Poligono, y djela vaca como se muestra a continuacin. class Esfera:Poligono { } Haga doble clic en el primer botn (esfera) y escriba el siguiente cdigo: private void button1_Click(object sender, EventArgs e) { Esfera miesfera = new Esfera(); miesfera.cargar_radio(double.Parse(textBox1.Text)); miesfera.calcular_volumen(); label1.Text = miesfera.devolver_volumen().ToString(); }

Ing.Dagoberto Rodriguez C.

Ejemplo (continuacin)
Haga doble clic en el segundo botn (cono) y escriba el siguiente cdigo: private void button2_Click(object sender, EventArgs e) { Cono micono = new Cono(); micono.cargar_radio(double.Parse(textBox2.Text)); micono.cargar_altura(double.Parse(textBox3.Text)); micono.calcular_volumen(micono.devolver_altura()); label2.Text = micono.devolver_volumen().ToString(); } Ejecute la aplicacin y observe los resultados.

Ing.Dagoberto Rodriguez C.

Taller
Para la aplicacin anterior implemente las clases cubo, dodecaedro, paraleleppedo y pirmide. Adems del mtodo calcular volumen, implemente el mtodo para calcular la superficie de cada uno de los polgonos trabajados.

Ing.Dagoberto Rodriguez C.

S-ar putea să vă placă și