Programación de Aplicaciones 
Los Principios del Desarrollo de Software de Hoy en Día 
Conceptos y utilización del paradigma de la programación orientada a objetos para la creación de soluciones informáticas.
Este webinar te interesa si deseas conocer cómo crear soluciones computarizadas… 
Aprenderás los principios que emplean los desarrolladores profesionales para crear los programas que hoy en día se utilizan alrededor del mundo.
Lic. Luis Ernesto Rubio Torres 
Profesor de la Academia de Tecnologías de la Información 
Sun Certified Java Programmer. 
Profesor de Ingenierías Ejecutivas en UNITEC 
luis_rubio@my.unitec.edu.mx
Comencemos con una pregunta: ¿Cómo se hace un programa?
PROGRAMACIÓN ORIENTADA A OBJETOS
Programa = Aplicación 
http://blogs.sun.com/manuelcr/entry/por_qu_eacute_java_es
http://leo.ugr.es/J2ME/INTRO/img/dispositivos.jpg
http://www.nasa.gov/mission_pages/mer/news/roverb-20090526.html http://www.telva.com/albumes/2009/09/02/electrodomesticos_inteligentes/index.html
http://www.telva.com/albumes/2009/09/02/electrodomesticos_inteligentes/index.html
http://java.sun.com/javaone/sf/2007/articles/toyshow.jsps http://library.abb.com/global/scot/scot271.nsf/veritydisplay/c9c1e89a8f8e6622c12574ef0053a7fb/$File/ABB%20SR_China_72dpi.pdf
http://blogs.sun.com/plamere/entry/lego_java_jsapi_talking_robots
http://blogs.sun.com/mgorshenev/entry/javaone_2007_part_3_cool http://blogs.sun.com/mgorshenev/resource/picturepuzzle.html
http://blogs.sun.com/jag/entry/java_for_first_robotics_competition
http://java.sun.com/
http://netbeans.org/features/all.html
http://netbeans.org/features/scripting/index.html
http://www.vancouver2010.com/olympic-medals/geo-view/
http://java.sun.com/javafx/index.jsp
http://netbeans.org/features/javafx
http://java.sun.com/developer/onlineTraining/index.jsp
http://www.sun.com/training/certification/java/scjp.xml
http://netbeans.org/features/
http://imagenes.mailxmail.com/cursos/imagenes/2/6/introduccion_7062_1_1.gif
http://robocode.sourceforge.net/
http://www.robocode-argentina.com.ar/descargas/tutderob.doc http://www.youtube.com/watch?v=ZWlATkrMflw 
public class MiPrimerRobot extends Robot { /** * El Metodo Run() del Robot*/ public void run() { while (true) { ahead(100); // Se mueve hacia adelante turnGunRight(360); // gira el arma back(100); // Se mueve hacia atrás turnGunRight(360); // Gira el arma} } /** * Dispara cuando ve un robot*/ public void onScannedRobot(ScannedRobotEvent e) { fire(1); } /** * Nos dieron, corramos! Girar perpendicularmente en contra de donde vino el disparo* */ public void onHitByBullet(HitByBulletEvent e) { turnLeft(90 - e.getBearing()); } }
Lenguaje de Programación
Person i = new Man(); Person you = new Woman(); for( this.day; ever && ever; always++) { if( you.love( me ) ) { i.love ( you ); } else { i.die( ) } }
Productora- cveProductora : int- nombre : String+ getNombre() : String+ getCve(argname) : int+ getProduccion(indice : int) : PeliculaActor- cveActor : int- nombre : String- edad : double- nacionalidad : String+ getNombre() : String+ getFilmografia(indice : int) : Pelicula+ getEdad(argname) : double+ getCve(argname) : int+ getNacion(argname) : StringPelicula- cveProductora : int- nombre : String+ getNombre() : String+ getCompañia() : Productora+ getSoundTrack() : TemaMusical+ getReparto(indice : int) : Actor+ getCve(argname) : int11..* -compañia1-producciones1..* 1..*1..* -reparto1..* -filmografia1..* Compositor- cveCompositor : int- nombre : String- nacionalidad : String+ getNombre() : String+ getNacion(argname) : String+ getCve(argname) : int+ getObra(indice : int) : TemaMusicalTemaMusical- cveTema : int- nombre : String+ getNombre() : String+ getAutor() : Compositor+ getCve(argname) : int11-soundtrack1-film11..*1..* -autor1..* -obras1..*
public class RepartoCorazonVal { 
Pelicula corazonVal; 
Productora twentiethCenturyFox; 
TemaMusical braveHeartSoundtrack; 
Compositor jamesHorner; 
Actor[] repartoEstelar; 
String reporte; 
public RepartoCorazonVal() { 
(corazonVal = new Pelicula()).setNombre("Corazon Valiente"); 
corazonVal.setCompañia(twentiethCenturyFox = new Productora()); 
twentiethCenturyFox.setNombre("20th Century Fox"); 
corazonVal.setSoundtrack(braveHeartSoundtrack = new TemaMusical()); 
braveHeartSoundtrack.setNombre("Brave Heart Song"); 
braveHeartSoundtrack.setAutor(jamesHorner = new Compositor()); 
jamesHorner.setNombre("James Horner"); 
corazonVal.setReparto(repartoEstelar = new Actor[3]); 
(repartoEstelar[0] = new Actor()).setNombre("Mel Gibson"); 
(repartoEstelar[1] = new Actor()).setNombre("Sophie Marceau"); 
(repartoEstelar[2] = new Actor()).setNombre("Catherine McCormack"); 
} 
}
reporte = "Pelicula: " 
+ corazonVal.getNombre() + "n" 
+ "Productora: " 
+ twentiethCenturyFox.getNombre() + "n" 
+ "Tema: " 
+ braveHeartSoundtrack.getNombre() + "n" 
+ "Autor: " 
+ jamesHorner.getNombre() + "n" 
+ "Reparto Estelar: " + "n"; 
for(int i = 0; i < 3; i++){ 
reporte = reporte 
+ "t" 
+ (corazonVal.getReparto(i)).getNombre() 
+ "n"; 
}
public class Pelicula { 
private int cveProductora; 
private String nombre; 
private Productora compañia; 
private Actor reparto[]; 
private TemaMusical soundtrack; 
Pelicula() { 
} 
public String getNombre() { 
return this.nombre; 
} 
public void setNombre(String nombre) { 
this.nombre = nombre; 
} 
public Actor getReparto(int indice) { 
return this.reparto[indice]; 
} 
public void setReparto(Actor interprete, int indice) { 
this.reparto[indice] = interprete; 
} 
}
Modelo Orientado a Objetos
Humano 
- nombre - edad - estatura 
+correr( ){normal} 
+hablar( ) 
+saltar( ){normal} 
Hombre 
- cuerpoMasculino 
Mujer 
- cuerpoFemenino 
Hulk 
- grandesMúsculos 
+saltar( ) {altísimo} +correr( ){superVeloz} 
Vehiculo 
- nombre - marca - motor 
+endencerMotor 
() 
Avión 
- turbina 
Automóvil 
- llantas 
<interface> Volador 
+despegar( ) +volar( ) +aterrizar( ) 
Mujer bettyRoss; 
Hombre bruceBanner; 
Hulk theHulk; 
Avion cazaII; 
CazaII = new Avion(); 
bettyRoss = new Mujer(); 
bruceBanner = new Hulk(); 
theHulk = bruceBanner; 
bettyRoss.hablar(“Ayuda”); 
bettyRoss.correr(); 
theHulk.correr(); 
theHulk.saltar(); 
theHulk.volar(); 
cazaII.volar();
Humano 
- nombre 
- edad 
- estatura 
+correr( ){normal} 
+hablar( ) 
+saltar( ){normal} 
Hombre 
- cuerpoMasculino 
Mujer 
- cuerpoFemenino 
Hulk 
grandesMúsculos 
+saltar( ) {altísimo} 
+correr( ) 
{superVeloz} 
Vehiculo 
- nombre 
- marca 
- motor 
+encenderMotor () 
Avión 
- turbina 
Automóvil 
- llantas 
<interface> 
Volador 
+despegar( ) 
+volar( ) 
+aterrizar( ) 
Mujer bettyRoss; Hombre bruceBanner; Hulk theHulk; Avion cazaII; CazaII = new Avion(); bettyRoss = new Mujer(); bruceBanner = new Hulk(); theHulk = bruceBanner; ((Humano)theHulk).correr(); Humano personaje; personaje = bettyRoss; personaje.correr(); personaje = theHulk; personaje.correr();
// TestSpidey.java 
public class TestSpidey{ 
public static void main( String args[] ) { 
Humano spiderMan; 
spiderMan = new Humano("Peter Parker", "castaño", "negros"); 
Humano maryJane = new Humano("Mary Jane Watson", "rojo", "azules"); 
Humano [ ] docOctopus; 
docOctopus = new Humano[ 8 ] ; 
docOctopus[ 0 ] = spiderMan; 
docOctopus[ 1 ] = maryJane; 
docOctopus[ 2 ] = new Humano("May Parker", "blanco", "cafes"); 
for( int k = 0; k < 3; k++) System.out.println( docOctopus[ k ].perfil() ); 
} 
}
import learning.business.superAnimals.*; public class TestCharlotte { public static void main(String[] args) { Spider charlotte; HomoSapiens otto; Animal someOne; SpiderMan peter; Arachnidsspidey; Charlotte = new Spider(); otto= new HomoSapiens(); peter = new SpiderMan(); someOne = charlotte; someOne.walk(); //displays: "This animal walks on 8 legs" someOne = otto; someOne.walk(); //displays "This animal walks on 2 legs" spidey = charlotte; spidey.climb(); spidey.jump(); //displays: "climb walls jump furniture" spidey = peter; spidey.climb(); spidey.jump(); //displays: "climb buildings jump towers" } } 
This animal walks on 8 legs. 
This animal walks on 2 legs. 
Spiders climb walls. 
Spiders jump furniture. 
SpiderMan climb buildings. 
SpiderMan jump towers.
@UNITECMX 
UNITEC 
Universidad Tecnológica de México 
UNITEC México 
Preguntas y Respuestas Ponente: Lic. Luis Ernesto Rubio Torres luis_rubio@my.unitec.edu.mx

Programación de Aplicaciones