Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 51

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

También podría gustarte