SlideShare uma empresa Scribd logo
1 de 3
Baixar para ler offline
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.

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (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
 

Semelhante 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
 

Semelhante 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#
 

Mais 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

Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdfValeriaCorrea29
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxiemerc2024
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024IES Vicent Andres Estelles
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfUPTAIDELTACHIRA
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSSEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSYadi Campos
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONALMiNeyi1
 
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdfMiguelHuaman31
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOBRIGIDATELLOLEONARDO
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfAlfaresbilingual
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdfMiNeyi1
 

Último (20)

Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSSEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 

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.