0% encontró este documento útil (0 votos)
45 vistas12 páginas

Licenciatura en Administración de Tecnologías de Información

Este documento presenta información sobre una asignatura de Programación Orientada a Objetos en la Universidad Tecnológica de México. El profesor Luis Ernesto Rubio Torres imparte la asignatura al alumno Eduardo Carrasco Torres. El documento incluye el número de cuenta del alumno y el título y fecha de una actividad sobre los principios de abstracción, herencia y polimorfismo en Java.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
45 vistas12 páginas

Licenciatura en Administración de Tecnologías de Información

Este documento presenta información sobre una asignatura de Programación Orientada a Objetos en la Universidad Tecnológica de México. El profesor Luis Ernesto Rubio Torres imparte la asignatura al alumno Eduardo Carrasco Torres. El documento incluye el número de cuenta del alumno y el título y fecha de una actividad sobre los principios de abstracción, herencia y polimorfismo en Java.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Universidad Tecnológica de Mexico

Carrera:

Licenciatura en Administración de Tecnologías de Información

Nombre de la asignatura:

Programación Orientada a Objetos

Profesor:

Luis Ernesto Rubio Torres

Alumno:

Eduardo Carrasco Torres

Número de cuenta:

20920504

Título de la actividad:

Foro 2

Fecha de la actividad:

10/02/2022
1.- Captura imágenes con tus resultados al ejecutar el programa
MediaPlayer.java, explicando a detalle el código de tu programa y cómo
aplica los principios de Abstracción, Herencia y Polimorfismo.

Ilustra el principio de polimorfismo se la da la instrucción y nos da el mensaje


escuchando una canción y otra viendo una película ahí podemos apreciar la
capacidad de objetos de distinta clase de responder a la misma orden.

Cuando poliPlayer apunta a un objeto de CDPlayer la orden poliPlayer.play(1,


"Allá en el rancho grande"); resulta en Escuchando la canción #1: Allá en el
rancho grande!!! Pero cuando poliPlayer refiere a un objeto de la clase DvdPlayer
la misma instrucción poliPlayer.play(1,"Allá en el rancho grande"); resulta
Viendo la película #1: Allá en el rancho grande!!! La misma instrucción da resultados
distintos dependiendo a la clase que estamos utilizando ahí se ven aplicados todos
los elementos necesarios para el polimorfismo.
Superclase poliPlayer que apunta a subclases la jerarquía de herencia se ilustra
en la siguiente imagen.

Cada uno de ellos sobrescribe el método play de la superclase y se hace mediante


este método sustituto.

Igualmente, la clase CdPlayer y DvdPlayer sobrescribe o sustituye el método play


realizando llamadas a otras órdenes.
La superclase hereda a la subclase en este caso cada subclase sustituye el método
play en la aplicación la super referencia Poliplayer apunta a objetos de las subclases
CdPlayer y DvdPlayer logrando el efecto de la invocación virtual de métodos que
consiste en llamar a un método sustituto mediante una referencia polimorfa o super
referencias, provoca que cada llamada invoque al método play correspondiente de
CdPlayer y DvdPlayer y asi se ve el efecto de polimorfismo.
2.- Captura imágenes con tus resultados al ejecutar en tu proyecto
Aprendiendo con OOPS, el siguiente programa anexo:
SupermanVsHulk.java, explicando a detalle el código de tu programa y
cómo aplica los principios de Abstracción, Herencia y Polimorfismo, así
como las clases de la librería learning.BasicGUI.

En este ejercicio el principio de abstracción es utilizado la siguiente parte del


código
En esta parte de la clase WalkButton aísla la propiedad o función walkAction() del
objeto, básicamente la abstracción es aislar los elementos de su entorno.
El principio de Herencia se utiliza al permitirnos crear nuevas clases a partir unas
ya existentes a fin de reutilizar el código, generando así una jerarquía de clases
dentro de una aplicación. Si una clase deriva de otra, esta hereda sus atributos y
métodos y puede añadir nuevos atributos, métodos o redefinir los heredados.

Aquí por ejemplo la clase SupermanVsHulkApp hereda de BaseAppGUI todos su


atributos y métodos.

La clase de la librería learning.BasicGUI son:

En cada una de ellas se tiene el desarrollo para que complementa la ejecución de


la aplicación.
BaseAppGUI

En esta clase se están definiendo las propiedades que tendrá la ventana de la


aplicación asi como la creación de 2 clases que permitirán dentro del código de la
aplicación ser modificados a conveniencia para la solución de la aplicación.
BorderPanel

En esta clase se utiliza el método setLayout() para hacer que el objeto sea el
controlador de posicionamiento de la ventana de aplicación
3.- Incluye las imágenes de tus resultados al programar la aplicación para
el sistema de “Los 4 Fantásticos” (capturas de la aplicación funcionando
y el código de la aplicación completa en Java en un IDE), explicando tu
experiencia al programar este software.

import learning.business.superAnimals.Superman;
import learning.business.superAnimals.ElasticHuman;
import learning.basicGUI.BaseAppGUI;
import learning.basicGUI.ImagePanel;
import learning.basicGUI.InternalButton;
import learning.basicGUI.FlowPanel;
import learning.basicGUI.GridPanel;
import java.awt.TextArea;
import java.awt.event.*;

public class CuatroFan extends BaseAppGUI {

private class WalkButton extends InternalButton{


public void pushAction(){
walkAction();
}
}

private class FlyButton extends InternalButton{


public void pushAction(){
flyAction();
}
}

private class StretchButton extends InternalButton{


public void pushAction(){
superHero.stretch(space, 200, 250 );
}
}

private boolean visibleFlag = true;

private class VisibleButton extends InternalButton{


public void pushAction(){
visibleFlag = !visibleFlag;
space2.setVisible(visibleFlag);
}
}

private class MouseStretch extends MouseAdapter {


public void mousePressed(MouseEvent e){
superHero.stretch(space, e.getX(), e.getY() );
}
}

private ElasticHuman superHero;


private ImagePanel space;

private ElasticHuman superHero2;


private ImagePanel space2;

private Superman superHero3;


private ImagePanel space3;

private ElasticHuman superHero4;


private ImagePanel space4;

private FlowPanel controlPanel;


private WalkButton ;
private FlyButton flyButton;
private StretchButton ;
private VisibleButton ;
private int spaceWidth;
private int spaceHeight;

private GridPanel gridPanel;


private int renglones;
private int columnas;

public void createComponents(){

super.createComponents();

superHero = new ElasticHuman();


space = new ImagePanel();

superHero2 = new ElasticHuman();


space2 = new ImagePanel();

superHero3 = new Superman();


space3 = new ImagePanel();

superHero4 = new ElasticHuman();


space4 = new ImagePanel();

controlPanel = new FlowPanel();


walkButton = new WalkButton();
flyButton = new FlyButton();
stretchButton = new StretchButton();
visibleButton = new VisibleButton();

spaceWidth = 600;
spaceHeight = 600;

renglones = 2;
columnas = 2;
gridPanel = new GridPanel(renglones, columnas);

public void distributeComponents(){

space.imageX = 10;
space.imageY = 0;
space.addMouseListener(new MouseStretch());
space.setImage("C:/Users/ECARRASCOT/Documents/NetBeansProjects/OOPS/resources/images/supers/Fantastic4/Reed Richards.jpg",
200,250);

space2.imageX = 0;
space2.imageY = 0;
space2.setImage("C:/Users/ECARRASCOT/Documents/NetBeansProjects/OOPS/resources/images/supers/Fantastic4/Sue Storm.jpg",
200,250);

space3.imageX = 10;
space3.imageY = 0;
space3.setImage("C:/Users/ECARRASCOT/Documents/NetBeansProjects/OOPS/resources/images/supers/Fantastic4/Jhonny Storm.jpg",
200,250);

space4.imageX = 0;
space4.imageY = 0;
space4.setImage("C:/Users/ECARRASCOT/Documents/NetBeansProjects/OOPS/resources/images/supers/Fantastic4/Ben Grimm.jpg",
200,250);

walkButton.setLabel("< Walk >");


flyButton.setLabel("< Fly >");
stretchButton.setLabel("< Stretch >");
visibleButton.setLabel("< Visible >");

controlPanel.add(stretchButton);
controlPanel.add(visibleButton);
controlPanel.add(walkButton);
controlPanel.add(flyButton);

gridPanel.add(space);
gridPanel.add(space2);
gridPanel.add(space3);
gridPanel.add(space4);

frameGUI.setTitle("Fanstastic Four !!!");


frameGUI.setSize(spaceWidth, spaceHeight);
frameGUI.setResizable(false);
frameGUI.addNorth(controlPanel);
frameGUI.addCenter(gridPanel);

public void startApplication(){

frameGUI.setVisible(true);

public void walkAction(){


superHero4.walk(space4, spaceWidth/2, spaceHeight);
}

public void flyAction(){


superHero3.fly(space3, spaceWidth/2, spaceHeight);
}

public static void main(String [] args){


CuatroFan theTest = new CuatroFan();
theTest.startApplication();
}

}
Funcionamiento de Botones
El Boton Stretch en el que al dar clic sobre la imagen esta estará cambiando de
tamaño y al presionar el botón stretch regresara a su forma original

El Botón Visible hará que aparezca y desaparezca la imagen al presionarlo


El Botón Walk hará que el personaje se desplace horizontalmente al presionarlo

El Botón Fly hará que el personaje se desplace verticalmente

Esta actividad me ha gustado por que me ayuda a comprender mas acerca de la


POO aunque es en un foro considero que son de gran utilidad estas practicas por
que permiten el uso de la aplicación y el desarrollo o modificación del código,
ayudan a tener una idea de lo que implica desarrollar una aplicación y todo lo que
está detrás de ella el tema de la herencia, polimorfismo y abstracción está presente
dentro en el código y sirve mas verlo de esta manera que solo agregando una
definición.

También podría gustarte