SlideShare una empresa de Scribd logo
1 de 3
Descargar para leer sin conexión
CLASES ABSTRACTAS Y CONCRETAS
En algunos casos es conveniente declarar clases para las cuales el programador nunca creará instancias de
objetos. Puesto que sólo se utilizan como superclases en jerarquías de herencia, estas son llamadas
superclases abstractas. Las clases abstractas están incompletas, las subclases deben declarar las “piezas
faltantes” para convertirse en clases “concretas”, a partir de las cuales se podrán instanciar objetos.
El propósito de una clase abstracta es proporcionar una superclase apropiada, a partir de la cual puedan
heredar otras clases y, por ende, compartir un diseño común. Las superclases abstractas son demasiado
generales como para crear objetos reales; sólo especifican lo que tienen en común las subclases. Se necesita
ser más específicos para poder crear objetos.
Analice la siguiente jerarquía de clases de la figura 1:
Figura 1. Jerarquía de figuras (Deitel).
Todas las figuras tienen un área y perímetro, por lo cual dichos métodos deben ir en la clase abstracta Figura,
además si se quisiera dibujar la figura también se debería manejar desde la misma superclase. Ahora hágase
la siguiente pregunta, ¿si deseara o calcular el perímetro de una figura cual sería la implementación de dicho
método de la clase Figura?
Si se desea obtener el perímetro de la clase abstracta Figura, la clase sabe que las figuras deben poder
obtener el perímetro, pero no sabe a qué́ figura especifica se le debe calcular, por lo que no puede
implementar un verdadero método obtenerPerimetro. Las clases concretas proporcionan los detalles
específicos que hacen razonable la creación de instancias de objetos. No todas las jerarquías de herencia
contienen clases abstractas.
Las clases abstractas dan más facilidades a los programadores. Por ejemplo, un programador puede escribir
un método con un parámetro de un tipo de superclase abstracta. Cuando se llama, ese método puede recibir
un objeto de cualquier clase concreta que extienda en forma directa o indirecta a la superclase especificada
como el tipo del parámetro.
Algunas veces las clases abstractas constituyen varios niveles de una jerarquía, esto se puede evidenciar en
la Figura 1.
Lenguaje de
programación
Técnica profesional en desarrollo de software
Profesor: Andrés Herrera R. Mail: jherrera@eam.edu.co
Laboratorio
Abstract
Nombre:_________________________________________________________________________
2
Declaración de clases y método abstractos
Para hacer una clase abstracta, está se declara con la palabra clave abstract. Por lo general, esta clase
contiene uno o más métodos abstractos, cada uno con la palabra clave abstract en su declaración, como en:
public abstract void obtenerArea(); // método abstracto
Los métodos abstractos no proporcionan implementaciones. Una clase que contiene uno o más métodos
abstractos debe declararse de manera explícita como abstract, aun si esa clase contiene métodos concretos
(no abstractos). Cada subclase concreta de una superclase abstracta también debe proporcionar
implementaciones concretas de cada uno de los métodos abstractos de la superclase. Los constructores y los
métodos static no pueden declararse como abstract.
A tomar en cuenta:
• Una clase abstracta declara los atributos y comportamientos comunes (tanto abstractos como concretos) de las
diversas clases en una jerarquía de clases.
• Tratar de instanciar un objeto de una clase abstracta lanza un error de compilación.
• Si no se implementan los métodos abstractos de una superclase en una subclase, se produce un error de compilación,
a menos que la subclase también se declare como abstract.
Métodos y clases final
Las variables pueden declararse como final para indicar que no pueden modificarse una vez que se inicializan;
dichas variables representan valores constantes. También es posible declarar métodos, parámetros de los
métodos y clases con el modificador final.
Un método final en una superclase no puede sobrescribirse en una subclase; esto garantiza que todas las
subclases directas e indirectas en la jerarquía utilicen la implementación del método final. Los métodos que se
declaran como private o como static son implícitamente final, ya que no se pueden sobrescribir. Las llamadas
a los métodos final se resuelven en tiempo de compilación; a esto se le conoce como vinculación estática.
Una clase que se declara como final no puede ser una superclase (es decir, una clase no puede extender a
una clase final). Todos los métodos en una clase final son implícitamente final. La clase String es un ejemplo
de una clase final. Al hacer la clase final también se evita que los programadores creen subclases que podrían
ignorar las restricciones de seguridad.
PRACTICA
1- Cree un proyecto y nómbrelo <<Figuras Geométricas>>.
2- Cree el paquete <<com.eam.lenguaje>>. Cree dentro del anterior paquete el paquete <<vo>>. Todos los objetos creados
de ahora en adelante tienen que estar dentro del paquete <<vo>>.
3- Cree la clase abstracta Figura con atributos de clase nombre y color. Programe el método constructor usando todos los
atributos y los métodos get y set. Además, cree el método abstracto <<obtenerArea (double)>>. Intente inicializar un objeto
tipo Figura, ¿Qué sucede cuando hace dicha inicialización?
3
4- Cree la clase abstracta Figura2D heredando de Figura. Programe el método constructor de Figura2D y un método
abstracto de nombre <<getPerimetro (double)>>.
5- Cree la clase abstracta Figura3D heredando de Figura. Programe el método constructor de Figura3D y un método
abstracto de nombre <<getVolumen (double)>>.
6- Programe las clases Cuadrado, Esfera, Circulo, Triagulo, Cubo y Tetraedro heredando de las clases que usted considere
pertinente. Implemente de forma específica en la subclase todos los métodos abstractos.
7- Cree una clase ManejadorDeFiguras en el paquete <<com.eam.lenguaje>>. Como atributo de clase cree una ArrayList de
tipo Figura.
8- Programe el método constructor para la clase ManejadorDeFiguras, inicialice el array y agregue dos figuras especificas por
cada clase (subclase de figura) concreta programada anteriormente.
9- Programe en ManejadorDeFiguras un método que retorne el nombre de las dos figuras que tienen un perímetro mayor.
10- Programe en ManejadorDeFiguras un método que retorne el color de la figura que tiene más volumen y la que tiene menos
volumen.
11-Programe en ManejadorDeFiguras un método que retorne cuál tipo de figura tiene la suma superior entre las áreas ¿figuras
2d o 3d?
ENTREGABLE
Enviar al correo jherrera@eam.edu.co el proyecto comprimido en zip la Practica realizada en su totalidad.
BIBLIOGRAFÍA
Deitel, P. J. & Deitel, H. M. (2012). Como Programar en java. Novena edición. México: Prentice Hall.

Más contenido relacionado

La actualidad más candente

Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaAngel Vázquez Patiño
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje javaMargarita Romero
 
Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoAlvaro Enrique Ruano
 
Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4K Manuel TN
 
Elementos caracteristicos de la poo
Elementos caracteristicos de la pooElementos caracteristicos de la poo
Elementos caracteristicos de la pooMagda Fernandez
 
Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)Alexandra Pérez
 
Modularidad en Jav
Modularidad en JavModularidad en Jav
Modularidad en Javmaynet
 
Trabajo tutorial de visual C++
Trabajo tutorial de visual C++Trabajo tutorial de visual C++
Trabajo tutorial de visual C++Bryangio2002
 
Definicion De Subclases Y Herencia H F M
Definicion De Subclases Y Herencia  H F MDefinicion De Subclases Y Herencia  H F M
Definicion De Subclases Y Herencia H F Mangel_toledo
 

La actualidad más candente (16)

Clases abstractas e interfaces en java
Clases abstractas e interfaces en javaClases abstractas e interfaces en java
Clases abstractas e interfaces en java
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en Java
 
Programación 1: modularización
Programación 1: modularizaciónProgramación 1: modularización
Programación 1: modularización
 
Interfaces en java
Interfaces en javaInterfaces en java
Interfaces en java
 
Java OO - Tema 03 - Sobrecarga
Java OO - Tema 03 - SobrecargaJava OO - Tema 03 - Sobrecarga
Java OO - Tema 03 - Sobrecarga
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje java
 
Tutorial jared
Tutorial jaredTutorial jared
Tutorial jared
 
Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismo
 
Clase viii
Clase viiiClase viii
Clase viii
 
Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4
 
Elementos caracteristicos de la poo
Elementos caracteristicos de la pooElementos caracteristicos de la poo
Elementos caracteristicos de la poo
 
Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)
 
Modularidad en Jav
Modularidad en JavModularidad en Jav
Modularidad en Jav
 
Interfaces en Java
Interfaces en JavaInterfaces en Java
Interfaces en Java
 
Trabajo tutorial de visual C++
Trabajo tutorial de visual C++Trabajo tutorial de visual C++
Trabajo tutorial de visual C++
 
Definicion De Subclases Y Herencia H F M
Definicion De Subclases Y Herencia  H F MDefinicion De Subclases Y Herencia  H F M
Definicion De Subclases Y Herencia H F M
 

Similar a Laboratorio clase abstract

Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02Kositha Jimhiz G
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoAngel Vázquez Patiño
 
Clases abstractas java metodos abstract class api ejemplo ejercicio
Clases abstractas java metodos abstract class api ejemplo ejercicioClases abstractas java metodos abstract class api ejemplo ejercicio
Clases abstractas java metodos abstract class api ejemplo ejercicioJose Luis Moreno Arcos
 
secme-23192.pdf
secme-23192.pdfsecme-23192.pdf
secme-23192.pdf202100941c
 
Clases en Java y todo lo relacionado
Clases en Java y todo lo relacionadoClases en Java y todo lo relacionado
Clases en Java y todo lo relacionadoJuan Carlos Espinoza
 
8 Mecanismos-de-abstraccion-en-Java.pptx
8 Mecanismos-de-abstraccion-en-Java.pptx8 Mecanismos-de-abstraccion-en-Java.pptx
8 Mecanismos-de-abstraccion-en-Java.pptxjuan gonzalez
 
Proyecto en android completado
Proyecto en android completadoProyecto en android completado
Proyecto en android completadoKai Exo
 
Net1 oop vbnet
Net1 oop vbnetNet1 oop vbnet
Net1 oop vbnetjhordy2000
 
Tarea 5
Tarea 5Tarea 5
Tarea 5ar qb
 
Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosAntonio Palomares Sender
 
Constructor Y Destructor
Constructor Y DestructorConstructor Y Destructor
Constructor Y DestructorTecnologico
 
Capitulo 7 moving features between objects
Capitulo 7  moving features between objectsCapitulo 7  moving features between objects
Capitulo 7 moving features between objectsJ Pablo Rivera
 

Similar a Laboratorio clase abstract (20)

03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
 
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismo
 
Clases abstractas java metodos abstract class api ejemplo ejercicio
Clases abstractas java metodos abstract class api ejemplo ejercicioClases abstractas java metodos abstract class api ejemplo ejercicio
Clases abstractas java metodos abstract class api ejemplo ejercicio
 
secme-23192.pdf
secme-23192.pdfsecme-23192.pdf
secme-23192.pdf
 
Clases en Java y todo lo relacionado
Clases en Java y todo lo relacionadoClases en Java y todo lo relacionado
Clases en Java y todo lo relacionado
 
Unidad o informatica
Unidad o informaticaUnidad o informatica
Unidad o informatica
 
8 Mecanismos-de-abstraccion-en-Java.pptx
8 Mecanismos-de-abstraccion-en-Java.pptx8 Mecanismos-de-abstraccion-en-Java.pptx
8 Mecanismos-de-abstraccion-en-Java.pptx
 
Proyecto en android completado
Proyecto en android completadoProyecto en android completado
Proyecto en android completado
 
Leccion 9 Java
Leccion 9 JavaLeccion 9 Java
Leccion 9 Java
 
Net1 oop vbnet
Net1 oop vbnetNet1 oop vbnet
Net1 oop vbnet
 
Datos previos
Datos previosDatos previos
Datos previos
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
 
Tarea 5
Tarea 5Tarea 5
Tarea 5
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
 
Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetos
 
Constructor Y Destructor
Constructor Y DestructorConstructor Y Destructor
Constructor Y Destructor
 
Unidad II_1.pptx
Unidad II_1.pptxUnidad II_1.pptx
Unidad II_1.pptx
 
Capitulo 7 moving features between objects
Capitulo 7  moving features between objectsCapitulo 7  moving features between objects
Capitulo 7 moving features between objects
 
Presentacion de clases en c#
Presentacion de clases en c#Presentacion de clases en c#
Presentacion de clases en c#
 

Más de Andres Herrera Rodriguez (17)

Lab archivos
Lab archivosLab archivos
Lab archivos
 
Lab excepciones propias
Lab excepciones propiasLab excepciones propias
Lab excepciones propias
 
unidad 5 excepciones propias
unidad 5 excepciones propiasunidad 5 excepciones propias
unidad 5 excepciones propias
 
Lab excepciones
Lab excepcionesLab excepciones
Lab excepciones
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
3. unidad 4 polimorfismo
3. unidad 4 polimorfismo3. unidad 4 polimorfismo
3. unidad 4 polimorfismo
 
GuiaFTP
GuiaFTPGuiaFTP
GuiaFTP
 
Lab herencia
Lab herenciaLab herencia
Lab herencia
 
Guia mysql
Guia mysqlGuia mysql
Guia mysql
 
Lenguaje de programacion unidad 3 arreglos de objetos
Lenguaje de programacion unidad 3 arreglos de objetosLenguaje de programacion unidad 3 arreglos de objetos
Lenguaje de programacion unidad 3 arreglos de objetos
 
Lenguaje de programacion laboratorio arreglos
Lenguaje de programacion laboratorio arreglosLenguaje de programacion laboratorio arreglos
Lenguaje de programacion laboratorio arreglos
 
Formularios HTML
Formularios HTMLFormularios HTML
Formularios HTML
 
Botones HTML
Botones HTMLBotones HTML
Botones HTML
 
Lenguaje de programacion unidad 2 clases y objetos
Lenguaje de programacion unidad 2 clases y objetosLenguaje de programacion unidad 2 clases y objetos
Lenguaje de programacion unidad 2 clases y objetos
 
Lenguaje de programacion unidad 1 UML
Lenguaje de programacion unidad 1 UMLLenguaje de programacion unidad 1 UML
Lenguaje de programacion unidad 1 UML
 
programación WEB Unidad 1 html
programación WEB Unidad 1 htmlprogramación WEB Unidad 1 html
programación WEB Unidad 1 html
 
Lectura y ejemplos clases y objetos
Lectura y ejemplos clases y objetosLectura y ejemplos clases y objetos
Lectura y ejemplos clases y objetos
 

Último

Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfcarolinamartinezsev
 
informe-de-laboratorio-metodos-de-separacion-de-mezclas.pdf
informe-de-laboratorio-metodos-de-separacion-de-mezclas.pdfinforme-de-laboratorio-metodos-de-separacion-de-mezclas.pdf
informe-de-laboratorio-metodos-de-separacion-de-mezclas.pdfAndreaTurell
 
Lineamientos de la Escuela de la Confianza SJA Ccesa.pptx
Lineamientos de la Escuela de la Confianza  SJA  Ccesa.pptxLineamientos de la Escuela de la Confianza  SJA  Ccesa.pptx
Lineamientos de la Escuela de la Confianza SJA Ccesa.pptxDemetrio Ccesa Rayme
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024IES Vicent Andres Estelles
 
GRUPO 2 - LA GRAN TRIBULACIÓN 25-03-2024 vf.pdf
GRUPO 2 - LA GRAN TRIBULACIÓN 25-03-2024 vf.pdfGRUPO 2 - LA GRAN TRIBULACIÓN 25-03-2024 vf.pdf
GRUPO 2 - LA GRAN TRIBULACIÓN 25-03-2024 vf.pdfjorge531093
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxpaogar2178
 
REGLAMENTO FINAL DE EVALUACIÓN 2024 pdf.pdf
REGLAMENTO  FINAL DE EVALUACIÓN 2024 pdf.pdfREGLAMENTO  FINAL DE EVALUACIÓN 2024 pdf.pdf
REGLAMENTO FINAL DE EVALUACIÓN 2024 pdf.pdfInformacionesCMI
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxFernando Solis
 
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptxAEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptxhenarfdez
 
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...Agrela Elvixeo
 
Educacion Basada en Evidencias SM5 Ccesa007.pdf
Educacion Basada en Evidencias  SM5  Ccesa007.pdfEducacion Basada en Evidencias  SM5  Ccesa007.pdf
Educacion Basada en Evidencias SM5 Ccesa007.pdfDemetrio Ccesa Rayme
 
Planeacion para 1er Grado - (2023-2024)-1.docx
Planeacion para 1er Grado - (2023-2024)-1.docxPlaneacion para 1er Grado - (2023-2024)-1.docx
Planeacion para 1er Grado - (2023-2024)-1.docxSarisdelosSantos1
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONamelia poma
 
UNIDAD DIDACTICA nivel inicial EL SUPERMERCADO.docx
UNIDAD DIDACTICA nivel inicial EL SUPERMERCADO.docxUNIDAD DIDACTICA nivel inicial EL SUPERMERCADO.docx
UNIDAD DIDACTICA nivel inicial EL SUPERMERCADO.docxMaria Jimena Leon Malharro
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOluismii249
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024IES Vicent Andres Estelles
 

Último (20)

Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
informe-de-laboratorio-metodos-de-separacion-de-mezclas.pdf
informe-de-laboratorio-metodos-de-separacion-de-mezclas.pdfinforme-de-laboratorio-metodos-de-separacion-de-mezclas.pdf
informe-de-laboratorio-metodos-de-separacion-de-mezclas.pdf
 
Lineamientos de la Escuela de la Confianza SJA Ccesa.pptx
Lineamientos de la Escuela de la Confianza  SJA  Ccesa.pptxLineamientos de la Escuela de la Confianza  SJA  Ccesa.pptx
Lineamientos de la Escuela de la Confianza SJA Ccesa.pptx
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
GRUPO 2 - LA GRAN TRIBULACIÓN 25-03-2024 vf.pdf
GRUPO 2 - LA GRAN TRIBULACIÓN 25-03-2024 vf.pdfGRUPO 2 - LA GRAN TRIBULACIÓN 25-03-2024 vf.pdf
GRUPO 2 - LA GRAN TRIBULACIÓN 25-03-2024 vf.pdf
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docx
 
REGLAMENTO FINAL DE EVALUACIÓN 2024 pdf.pdf
REGLAMENTO  FINAL DE EVALUACIÓN 2024 pdf.pdfREGLAMENTO  FINAL DE EVALUACIÓN 2024 pdf.pdf
REGLAMENTO FINAL DE EVALUACIÓN 2024 pdf.pdf
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptxAEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
 
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...
 
Educacion Basada en Evidencias SM5 Ccesa007.pdf
Educacion Basada en Evidencias  SM5  Ccesa007.pdfEducacion Basada en Evidencias  SM5  Ccesa007.pdf
Educacion Basada en Evidencias SM5 Ccesa007.pdf
 
Planeacion para 1er Grado - (2023-2024)-1.docx
Planeacion para 1er Grado - (2023-2024)-1.docxPlaneacion para 1er Grado - (2023-2024)-1.docx
Planeacion para 1er Grado - (2023-2024)-1.docx
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
UNIDAD DIDACTICA nivel inicial EL SUPERMERCADO.docx
UNIDAD DIDACTICA nivel inicial EL SUPERMERCADO.docxUNIDAD DIDACTICA nivel inicial EL SUPERMERCADO.docx
UNIDAD DIDACTICA nivel inicial EL SUPERMERCADO.docx
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 

Laboratorio clase abstract

  • 1. CLASES ABSTRACTAS Y CONCRETAS En algunos casos es conveniente declarar clases para las cuales el programador nunca creará instancias de objetos. Puesto que sólo se utilizan como superclases en jerarquías de herencia, estas son llamadas superclases abstractas. Las clases abstractas están incompletas, las subclases deben declarar las “piezas faltantes” para convertirse en clases “concretas”, a partir de las cuales se podrán instanciar objetos. El propósito de una clase abstracta es proporcionar una superclase apropiada, a partir de la cual puedan heredar otras clases y, por ende, compartir un diseño común. Las superclases abstractas son demasiado generales como para crear objetos reales; sólo especifican lo que tienen en común las subclases. Se necesita ser más específicos para poder crear objetos. Analice la siguiente jerarquía de clases de la figura 1: Figura 1. Jerarquía de figuras (Deitel). Todas las figuras tienen un área y perímetro, por lo cual dichos métodos deben ir en la clase abstracta Figura, además si se quisiera dibujar la figura también se debería manejar desde la misma superclase. Ahora hágase la siguiente pregunta, ¿si deseara o calcular el perímetro de una figura cual sería la implementación de dicho método de la clase Figura? Si se desea obtener el perímetro de la clase abstracta Figura, la clase sabe que las figuras deben poder obtener el perímetro, pero no sabe a qué́ figura especifica se le debe calcular, por lo que no puede implementar un verdadero método obtenerPerimetro. Las clases concretas proporcionan los detalles específicos que hacen razonable la creación de instancias de objetos. No todas las jerarquías de herencia contienen clases abstractas. Las clases abstractas dan más facilidades a los programadores. Por ejemplo, un programador puede escribir un método con un parámetro de un tipo de superclase abstracta. Cuando se llama, ese método puede recibir un objeto de cualquier clase concreta que extienda en forma directa o indirecta a la superclase especificada como el tipo del parámetro. Algunas veces las clases abstractas constituyen varios niveles de una jerarquía, esto se puede evidenciar en la Figura 1. Lenguaje de programación Técnica profesional en desarrollo de software Profesor: Andrés Herrera R. Mail: jherrera@eam.edu.co Laboratorio Abstract Nombre:_________________________________________________________________________
  • 2. 2 Declaración de clases y método abstractos Para hacer una clase abstracta, está se declara con la palabra clave abstract. Por lo general, esta clase contiene uno o más métodos abstractos, cada uno con la palabra clave abstract en su declaración, como en: public abstract void obtenerArea(); // método abstracto Los métodos abstractos no proporcionan implementaciones. Una clase que contiene uno o más métodos abstractos debe declararse de manera explícita como abstract, aun si esa clase contiene métodos concretos (no abstractos). Cada subclase concreta de una superclase abstracta también debe proporcionar implementaciones concretas de cada uno de los métodos abstractos de la superclase. Los constructores y los métodos static no pueden declararse como abstract. A tomar en cuenta: • Una clase abstracta declara los atributos y comportamientos comunes (tanto abstractos como concretos) de las diversas clases en una jerarquía de clases. • Tratar de instanciar un objeto de una clase abstracta lanza un error de compilación. • Si no se implementan los métodos abstractos de una superclase en una subclase, se produce un error de compilación, a menos que la subclase también se declare como abstract. Métodos y clases final Las variables pueden declararse como final para indicar que no pueden modificarse una vez que se inicializan; dichas variables representan valores constantes. También es posible declarar métodos, parámetros de los métodos y clases con el modificador final. Un método final en una superclase no puede sobrescribirse en una subclase; esto garantiza que todas las subclases directas e indirectas en la jerarquía utilicen la implementación del método final. Los métodos que se declaran como private o como static son implícitamente final, ya que no se pueden sobrescribir. Las llamadas a los métodos final se resuelven en tiempo de compilación; a esto se le conoce como vinculación estática. Una clase que se declara como final no puede ser una superclase (es decir, una clase no puede extender a una clase final). Todos los métodos en una clase final son implícitamente final. La clase String es un ejemplo de una clase final. Al hacer la clase final también se evita que los programadores creen subclases que podrían ignorar las restricciones de seguridad. PRACTICA 1- Cree un proyecto y nómbrelo <<Figuras Geométricas>>. 2- Cree el paquete <<com.eam.lenguaje>>. Cree dentro del anterior paquete el paquete <<vo>>. Todos los objetos creados de ahora en adelante tienen que estar dentro del paquete <<vo>>. 3- Cree la clase abstracta Figura con atributos de clase nombre y color. Programe el método constructor usando todos los atributos y los métodos get y set. Además, cree el método abstracto <<obtenerArea (double)>>. Intente inicializar un objeto tipo Figura, ¿Qué sucede cuando hace dicha inicialización?
  • 3. 3 4- Cree la clase abstracta Figura2D heredando de Figura. Programe el método constructor de Figura2D y un método abstracto de nombre <<getPerimetro (double)>>. 5- Cree la clase abstracta Figura3D heredando de Figura. Programe el método constructor de Figura3D y un método abstracto de nombre <<getVolumen (double)>>. 6- Programe las clases Cuadrado, Esfera, Circulo, Triagulo, Cubo y Tetraedro heredando de las clases que usted considere pertinente. Implemente de forma específica en la subclase todos los métodos abstractos. 7- Cree una clase ManejadorDeFiguras en el paquete <<com.eam.lenguaje>>. Como atributo de clase cree una ArrayList de tipo Figura. 8- Programe el método constructor para la clase ManejadorDeFiguras, inicialice el array y agregue dos figuras especificas por cada clase (subclase de figura) concreta programada anteriormente. 9- Programe en ManejadorDeFiguras un método que retorne el nombre de las dos figuras que tienen un perímetro mayor. 10- Programe en ManejadorDeFiguras un método que retorne el color de la figura que tiene más volumen y la que tiene menos volumen. 11-Programe en ManejadorDeFiguras un método que retorne cuál tipo de figura tiene la suma superior entre las áreas ¿figuras 2d o 3d? ENTREGABLE Enviar al correo jherrera@eam.edu.co el proyecto comprimido en zip la Practica realizada en su totalidad. BIBLIOGRAFÍA Deitel, P. J. & Deitel, H. M. (2012). Como Programar en java. Novena edición. México: Prentice Hall.