Documente Academic
Documente Profesional
Documente Cultură
ORIENTADA A OBJETOS
❖ Licenciatura: Informática
❖ Turno: Matutino
❖ Fecha: 17/02/19
❖ Semestre: 7º U
Introducción a la Programación Orientada a Objetos
La Programación Orientada a Objetos (POO) es una técnica para escribir programas. Es decir, es
la aplicación de un lenguaje orientado a objetos para implementar una solución previamente
diseñada, usando el paradigma orientado a objetos.
La POO tiene cuatro características principales: abstracción, encapsulamiento, herencia y
polimorfismo. La abstracción consiste en ignorar aquellos aspectos, del objeto a describir, que no
son relevantes, para de esta manera concentrarse en los que sí lo son. El encapsulamiento
consiste en incluir dentro de una clase todos los atributos y métodos que la definen, de tal manera
que otros objetos puedan usarla sin necesidad de conocer su estructura interna. La herencia
permite compartir atributos y métodos entre clases y subclases. Finalmente, en el polimorfismo una
operación puede tener el mismo nombre en diversas clases, y funcionar de manera diferente en
cada una. Estos temas se tratarán en las siguientes secciones y capítulos.
Características de la POO
• Abstracción: Es el principio que permite (al observar el objeto o concepto que se quiere
representar) ignorar aquellos aspectos que no son relevantes, para de esta manera
concentrarse en los que sí lo son. Se trata de abstraer los datos (llamados atributos) y las
operaciones (llamadas métodos) comunes a un conjunto de objetos y agruparlos bajo un
mismo concepto clase. Es decir, facilita la generalización conceptual de los atributos y
propiedades de un determinado conjunto de objetos. De esta forma, introducir o eliminar un
objeto en una determinada aplicación requerirá un trabajo mínimo.
Abstracción
• Encapsulamiento: (ocultamiento de información). Se refiere a incluir dentro de la definición
de una clase todo lo que se necesita, de tal forma que ningún otro objeto requiera conocer
su estructura interna para poder usarla. Es decir, se tomará cada clase y en consecuencia
cada objeto como una unidad básica de la cual desconocemos su estructura interna. En la
figura 1.1 se grafica esta idea, señalando a la clase (formada por atributos y métodos) como
una caja negra.
• Herencia: Permite compartir atributos y métodos entre clases y clases derivadas. Las clases
derivadas, también llamadas subclases, heredan atributos y métodos de las clases
superiores, que reciben el nombre de superclases o clases base.
Observe el ejemplo de la figura 1.2. La clase Persona es una superclase. Las clases Alumno y
Profesor son subclases o clases derivadas de la clase Persona, por lo que heredan todos los
atributos y métodos de ella. Esta relación expresa que un alumno y un profesor también son
personas.
• Polimorfismo: Permite implementar múltiples formas de un mismo método, de tal manera
que cada una de ellas se adapte a la clase sobre la cual se aplicará.
Polimorfismo
• Cuadrado
• Triangulo
• Rectángulo
• Romboide
• Trapecio
Código utilizado
package Figuras;
nombre=nom;
return nombre;
return area;
return perimetro;
}
public void dibujar()
package Figuras;
public Cuadrado(double L)
super("CUADRADO ");
lado=L;
this.perimetro=4*lado;
super.area=lado*lado;
}
public void dibujar()
super.dibujar();
for(int k = 0;k<lado;k++ )
System.out.print(" *");
System.out.println("");
for(int i = 0;i<lado-2;i++)
System.out.print(" *");
for(int k = 0;k<lado-2;k++)
System.out.print(" ");
System.out.println(" *");
for(int k = 0;k<lado;k++)
System.out.print(" *");
System.out.println("");
}
// Declarando la subclase o clase derivada Rectangulo
package Figuras;
super("RECTANGULO ");
base=b;
altura = a;
this.perimetro=(2*base)+(2*altura);
this.area=base*altura;
super.dibujar();
for(int k = 0;k<6;k++ )
System.out.print(" *");
System.out.println("");
for(int i = 0;i<4-2;i++)
System.out.print(" *");
for(int k = 0;k<4-2;k++)
System.out.print(" ");
System.out.println(" *");
for(int k = 0;k<6;k++)
System.out.print(" *");
System.out.println("");
package Figuras;
super("ROMBOIDE ");
base=b;
altura = a;
lado = l;
}
this.perimetro= (2*base)+(2*lado);;
this.area= base*altura;
super.dibujar();
package Figuras;
super("TRAPECIO ");
base=BM;
altura = h;
l = lado;
this.bm = bm;
}
public void setterperimetro()
this.perimetro = ((base)+(2*l)+(this.bm));
this.area= ((base+bm)*altura)/2;
super.dibujar();
package Figuras;
super("TRIANGULO ");
lado1base=b;
altura = a;
this.lado2 = lado2;
this.lado3 = lado3;
}
public void setterperimetro()
this.perimetro=lado1base+lado2+lado3;
this.area=(lado1base*altura)/2;
super.dibujar();
package Figuras;
import java.util.Scanner;
double lado,base,altura,lado2,lado3,bm;
lado=entrada.nextDouble();
objcuadro.settterPerimetro();
objcuadro.setterArea();
objcuadro.dibujar();
base=entrada.nextDouble();
altura=entrada.nextDouble();
objrectangulo.setterperimetro();
objrectangulo.setterArea();
objrectangulo.dibujar();
base=entrada.nextDouble();
altura=entrada.nextDouble();
lado2=entrada.nextDouble();
lado3=entrada.nextDouble();
objtriangulo.setterperimetro();
objtriangulo.setterArea();
objtriangulo.dibujar();
base=entrada.nextDouble();
altura=entrada.nextDouble();
lado=entrada.nextDouble();
objromboide.setterArea();
objromboide.dibujar();
base = entrada.nextDouble();
altura = entrada.nextDouble();
bm = entrada.nextDouble();
lado = entrada.nextDouble();
objtrapecio.setterperimetro();
objtrapecio.setterArea();
objtrapecio.dibujar();
System.out.println("\n");
Bibliografía
Guardati Buemo, S. (2007). Estructura de datos orientada a objetos:. Mexico: PEARSON
EDUCACIÓN.