Unidad 1
Introducción a la POO
Conceptos básicos sobre POO
Programación Visual
Lenguajes Java
Instalación del IDE
Variables y Constantes
Operadores
Clases y Objetos
Diseño de una Clase:
Atributos
Métodos
Constructores
Generación de una clase utilizando ingeniería directa con UML
Herencia y Polimorfismo
Interfaces y clases abstractas
Interfaz de usuario utilizando applets de java
CONCEPTOS BÁSICOS SOBRE POO
Hay que entender los conceptos para entender luego el código
Libros recomendados
La recomendada dentro del silabo
PARADIGMAS DE PROGRAMACIÓN
Dentro de lo que es programación tenemos varios PARADIGMAS DE
PROGRAMACIÓN en general:
Programación orientada a procedimientos
Son antiguos
La mayoría los 60 y 70
Programación orientada a objetos
Son más modernos
Actualmente son los más utilizados
Diferencias:
Llego un momento de cambiar la forma de pensar
El código de las aplicaciones era bastante desordenado
El código era enorme y un error era muy difícil de arreglar
Si era otro programador el que tomaba la posta de agregar añadir o arreglar era
enorme
Difícil de reutilizar
Por qué objetos?
Por qué el diario vivir en que vivimos se utilizan objetos y sus características
ejemplos:
Silla, mesa, auto y enviarlos al código de programación
Ejemplos LOP
Fortran, cobol, basic, etc.
Desventajas:
Unidades de código muy grandes en aplicaciones complejas
Poco reutilizable
Si existe fallo en alguna línea del código, es muy probable que el
programa se caiga
Aparición del código espagueti (go to, go sub)
Difícil de depurar si estaba realizado por otros programadores
POO
¿En qué consiste?
Trasladar la naturaleza de los objetos de la vida real al código de
programación
¿Cuál es la naturaleza de un objeto de la vida real?
Los objetos tienen un estado, un comportamiento ( que pueden hacer?) y
tienen propiedades o características
Ejemplo: auto
¿Cuál es el estado de un auto? Parado, circulando, estacionado
¿Qué propiedades o características tiene un auto? Color, peso, tamaño
¿Qué comportamiento tiene un coche? Arrancar, chocar, frenar, acelerar
Ejemplos POO
C++, Java, Visual .Net, ruby , etc.
Ventajas
Programas divididos en “trozos”, “partes”, “módulos” o “clases”. Modularización
Ejemplo foto auto
Muy reutilizable. Herencia
Esquema de coche reutilizable
Si existe fallo en alguna línea de código, el programa continuará con su funcionamiento.
Tratamiento de Excepciones
Encapsulamiento
Ejemplo caja de cambios con las ruedas
CLASE:
Podemos considerar una clase como una colección de objetos que poseen características y
operaciones comunes. Una clase contiene toda la información necesaria para crear nuevos
objetos.
Ejemplo: Auto
Una estructura: motor, ruedas, chasis
Ejemplar perteneciente a una clase
Comparten características pero también existen otras que los
diferencian
Objeto: acceso a propiedades y comportamiento
(pseudocódigo)
Acceso a propiedades de objeto desde código (pseudocódigo)
Renaul.color = ”rojo”;
Renaul.peso = ”1500”;
Renaul.ancho = ”2000”;
Renaul.alto= ”900”;
Nombre.propiedad = valor
Accediendo a comportamiento de objeto desde código (pseudocódigo)
Renault.arranca();
Renault.frena();
Renault.gira();
Renault.acelera();
Nombre.metodo
Programación Visual
Que es?
La parte medular de la programación visual es diseñar y desarrollar aplicaciones en un entorno
visual amigable y fáciles de utilizar por el usuario.
JAVA
La principal característica de Java es la de ser un lenguaje compilado e interpretado.
Fue desarrollado por la compañía Sun Microsystems
Todo programa Java
compilarse y el código que se genera
bytecodes es interpretado por una máquina virtual. JVM
Por lo que no importa la plataforma en la que se ejecuta Ej. Windows, Linux, IOS
Java es un lenguaje orientado a objetos de propósito general. Aunque Java comenzará a ser
conocido como un lenguaje de programación de applets que se ejecutan en el entorno de un
navegador web, se puede utilizar para construir cualquier tipo de proyecto.
Su sintaxis es muy parecida a la de C y C++ pero hasta ahí llega el parecido. Java no es una
evolución ni de C++ ni un C++ mejorado.
Instalar entorno de Desarrollo
JDK 6 de Sun/Oracle.
IDE Eclipse para desarrolladores Java.
Configurar el JDK
https://josemmsimo.wordpress.com/2014/01/14/como-instalar-java-jdk-y-jr
e-en-linux-y-windows-con-detalles/
IDES
UNIDAD 1: CONCEPTOS BÁSICOS
Algoritmos:
Abstracción:
Ejemplo:
Arreglar el
ejercicio
Que esta mal?
Unidad 1. Diseño de una clase: atributos, métodos, constructores
métodos y propiedades genéricos (static)
Unidad 1. Diseño de una clase: atributos, métodos, constructores
métodos y propiedades genéricos (static)
List miLista = new ArrayList( );
miLista.add(“Hola”); String s = (String) miLista.get(0);
miLista.add(“Galaxia”); String st = (String) miLista.get(1);
miLista.add(new Integer(2001)); String str = (String) miLista.get(2);
al ejecutarse el programa se produjera un error!
List <String> miLista = new ArrayList <String>();
//al poner <String> estamos indicando que la lista sólo
acepta Strings
miLista.add(“Hola”); //un String, perfecto
miLista.add(“Galaxia”); //otro String, muy bien
miLista.add(new Integer(2001)); //¡error de
compilación, no es un String!
Unidad 1. Diseño de una clase: Generica
métodos y propiedades genéricos (static)
¿cómo crear nuestra propia clase genérica?
public class Generica<T>{
T objeto;
<T> representa un tipo que será usado por nuestra clase
public Generica(T o) { para definir algo que no conocemos hasta que el
objeto = o; constructor se llama
}
public void set (T t){
objeto = t;
}
public void tipoDeClase() {
System.out.println("El tipo de T es
" + objeto.getClass().getName());
}
}
Unidad 1. Diseño de una clase: Generica
métodos y propiedades genéricos (static)
public class Generica<Calcetines> o public class Generica<Camisetas>
Generica<Integer> intObj = new Generica<Integer>(4);
intObj.tipoDeClase();
Generica<String> intObj = new Generica<String>("juan");
intObj.tipoDeClase();
Unidad 1. Diseño de una clase: Generica
Ejemplo:
public class miClase<T> {
private ArrayList<T> lista;
public miClase() {
lista = new ArrayList<T>();
}
public void add(T element) {
lista.add(element); miClase<Integer> selector = new
} miClase<Integer>();
} selector.add(2);
selector.add(3);
selector.add(4);
selector.add(5);
selector.add(6);
System.out.println("resultado“) que hacemos?????
Unidad 1. Diseño de una clase: Herencia y Polimorfismo
Reutilización de clases = Herencia
Es muy utilizada en POO
Que Hace??
Como funciona?
Palabra clave extends tras el nombre de la clase y luego el nombre de clase que se
hereda
Solo se puede heredar una clase(superclase) a otra(subclase)
Unidad 1. Diseño de una clase: Herencia y Polimorfismo
Reutilización de clases = Herencia
Ejemplo
Unidad 1. Diseño de una clase: Herencia y Polimorfismo
Reutilización de clases = Herencia
Ejemplo
Unidad 1. Diseño de una clase: Herencia y Polimorfismo
Reutilización de clases = Herencia
Ejemplo Práctico
class vehiculo {
public int velocidad;
public int ruedas;
public class app {
public void parar() {
public static void main(String[] args) {
velocidad = 0; coche coche=new coche();
} coche.acelerar(80);//Método heredado
public void acelerar(int kmh) { coche.tanquear(12);
velocidad += kmh;
}
class coche extends vehiculo{
public int ruedas=4;
public int gasolina;
public void tanquear(int litros) {
gasolina+=litros;
}
}
Unidad 1. Diseño de una clase: Herencia y Polimorfismo
Reutilización de clases = Herencia
Ejemplo Práctico: la clase Ciudadano hereda desde
la clase Persona, para tomar funcionalidad y
extenderla.
Unidad 1. Diseño de una clase: Herencia y Polimorfismo
Reutilización de clases = Herencia
Ejemplo Práctico: la clase Ciudadano hereda desde
la clase Persona, para tomar funcionalidad y
extenderla.
Unidad 1. Diseño de una clase: Herencia y Polimorfismo
Reutilización de clases = Herencia
Ejemplo Práctico: la clase Ciudadano hereda desde
la clase Persona, para tomar funcionalidad y
extenderla.
Unidad 1. Diseño de una clase: Herencia y Polimorfismo
Reutilización de clases = Herencia
Ejercicio Práctico: Realizarlo del capitulo 10
10.5.2 Creación de la subclase concreta EmpleadoAsalariado
Unidad 1. Diseño de una clase: Clases Abstractas
A veces resulta que en las superclases se
desean incluir métodos teóricos, métodos que se las llama
no se desea implementar del todo, sino que clases abstractas
sencillamente se indican en la clase para
que el desarrollador que desee crear una
subclase heredada de la clase abstracta, esté
obligado a sobrescribir el método.
Son clases creadas para ser heredadas por nuevas clases creadas
por el programador. Son clases base para herencia.
Las clases abstractas no deben de
ser instanciadas (no se pueden crear objetos de las clases abstractas).
Unidad 1. Diseño de una clase: Clases Abstractas
Unidad 1. Diseño de una clase: Clases Abstractas
Unidad 1. Diseño de una clase: Clases Abstractas
Ejercicio 1 punto
En el diagrama vemos una clase Abstracta
Instrumento, la cual posee una propiedad tipo y
un método abstracto tocar(), vemos también las
clases hijas Guitarra, Saxofon y Violin que para
este ejemplo solo utilizaremos (mediante la
herencia) las propiedades de la clase Padre.
Todos los instrumentos musicales se pueden tocar,
por ello creamos este método abstracto, ya que es
un proceso común en todos los instrumentos sin
importar el detalle de como se tocan, pues
sabemos que una guitarra no se toca de la misma
manera que el saxofón, así al heredar de la clase
Instrumento, todas sus clases hijas están
obligadas a implementar este método y darle la
funcionalidad que le corresponda...
Unidad 1. Interfaces
La limitación de que sólo se puede heredar de una clase, hace
que haya problemas ya que muchas veces se deseará heredar
de varias clases.
Mediante interfaces se definen una serie de comportamientos
de objeto
Estos comportamientos puede ser “implementados” en una
determinada clase
Por ello lo normal es que el nombre de las interfaces terminen
con el texto “able” (configurable,modificable, cargable).
Por ejemplo en el caso de la clase Coche, esta deriva de la
superclase Vehículo, pero además puesto que es un vehículo a
motor, puede implementar métodos de una interfaz llamada
por ejemplo arrancable. Se dirá entonces que la clase Coche
es arrancable.
Unidad 1. Interfaces
Para hacer que una clase utilice una interfaz, se añade detrás del nombre de la clase
la palabra implements seguida del nombre del interfaz. Se pueden poner varios
nombres de interfaces separados por comas (solucionando, en cierto modo, el
problema de la herencia múltiple).
Unidad 1. Interfaces
Unidad 1. Interfaces
Características de las Interfaces.
Todos los métodos de una interfaz son implícitamente public abstract, no es
necesario especificarlo en la declaración del mismo.
•Todas las variables y atributos de una interfaz son implícitamente constantes
(public static final), no es necesario especificarlo en la declaración del misma
•Los métodos de una interfaz no pueden ser: static, final, strictfp ni native.
•Una interfaz puede heredar (extends) de una o más interfaces.
•Una interfaz no puede heredar de otro elemento que no sea una interfaz.
•Una interfaz no puede implementar (implements) otra interfaz.
•Una interfaz debe ser declarada con la palabra clave interface.
•Los tipos de las interfaces pueden ser utilizados polimórficamente.
•Una interfaz puede ser public o package (valor por defecto).
•Los métodos toman como ámbito el que contiene la interfaz.
Unidad 1. Interfaces
Unidad 1. Interfaces
Ejemplo
Diseñar una interface llamada cantante con un método
cantar
Luego implementar cantante en una clase llamada Persona
Y finalmente para ejecutarla crear una Clase con el
método main[]
Instanciar la clase persona y generar un método para
invocar al método cantar
Unidad 1. Interfaces
Ejemplo
public interface cantante {
void cantar();
}
public class Persona implements cantante {
public void cantar() {
System.out.println("La laa la raa
laaa!");
}}
public class EjecutaPersonaCantante {
public static void main(String[] args) {
Persona t = new Persona();
hacerCantar(t);}
public static void hacerCantar(cantante c)
{
c.cantar();
}
}
Unidad 1. Applets
Los Applets son aplicaciones Java que se ejecutan en el contexto de un
navegador web.
A través de código HTML reservamos una zona de la pagina web para
visualizar el Applet, y es el navegador web el encargado de descargar las
clases del Applet desde la url especificada, iniciar una instancia de la
maquina virtual de Java y ejecutar el Applet.
Para ejecutar un Applet es necesario descargar desde la web las clases
que se ejecutaran en nuestra maquina.
Fjate el riesgo que en principio se corre si no hubiese restricciones de
seguridad
un programa malicioso podrá acceder a tu disco duro para leer
información personal, o podrá borrar o modificar cheros, o escribir en tu
disco duro
Unidad 1. Applets
Restricciones
Un Applet no puede leer del disco duro del cliente.
Un Applet no puede escribir al disco duro del cliente.
Un Applet no puede abrir conexiones de red a ningun otro
servidor salvo aquel desde el que se descargo.
Un Applet no puede ejecutar aplicaciones en el cliente.
Un Applet no puede acceder a la informacion privada del
usuario.
Unidad 1. Applets
Eventos
Los eventos son sucesos que el sistema detecta
relacionados con el programa, la entrada/salida, y el
sistema de ventanas:
eventos de ratón: mover, hacer click, ...
eventos de teclado: pulsar o liberar una tecla
eventos de acción: pulsación de un botón o menú
eventos de texto: cambiar el valor de una entrada de
texto
eventos de ventana: cerrar una ventana, abrirla,
minimizarla...
Unidad 1. Applets
Arquitectura
Unidad 1. Applets
Ciclo de vida de un Applet
Unidad 1. Applets
Los navegadores que no dispongan de capacidad de
interpretar applets, desconocerán las etiquetas applet y no
ejecutarán su contenido.
<applet code=”applet3.class” width=400
height=250>
Su navegador no tiene capacidad de mostrar applets.
</applet>
Unidad 1. Applets
Ejemplo:
public class Applet extends JApplet{
public void paint(Graphics g)
{
g.drawString("Hola", 50, 50);
}
}
Unidad 1. Applets
public class Applet6 extends JApplet {
Ejemplo:
public void
init() {
}
public void
start() {
}
public void
paint(Graphics g) {
g.drawOval(10,10,100,100);
g.drawOval(30,30,20,20);
g.drawOval(70,30,20,20);
g.drawArc(30,30,60,60,210,120);
}
}
Unidad 1. Applets
Ejemplo
public class Applet2 extends
java.applet.Applet {
public void init()
{
setBackground(Color.black);
}
public void paint(Graphics g) {
g.setColor( Color.yellow );
g.drawLine( 20, 10, 310, 175 );
}
}
Unidad 1. Applets
Ejercicio en Clase: En el siguiente código agregar un
draw3DRect en el centro del applet que sea de color verde
el relleno de la figura y fondo total de color rojo
public class Dibujos extends java.applet.Applet
{ public void paint(Graphics g)
g.fillRect( 0, 0, 639, 479 );
g.setColor( Color.white ); g.drawLine( 20, 10, 310, 175 );
g.setColor( Color.yellow ); g.drawLine( 639, 0, 0, 479);
g.setColor( Color.blue ); g.fillRect( 30, 30, 270, 170 );
g.setColor( Color.cyan ); g.drawOval( 270, 100, 100,
200 ); } }
Ejemplos ejercicios applets
http://www.sc.ehu.es/sbweb/fisica/cursoJava/ejercicios_applets/
ejercicios_applet.htm