Está en la página 1de 37

JAVA BSICO

CUENCO SYSTEMS & CONSULTING S.l. || SPEARSOFT

public class Hola {


private string quien = Enrique Fernndez Martnez;
protected String buildHola (){
string saludo = Bienvenidos al curso de Java Bsico
soy: + quien + y voy a ser vuestro
profesor;
return saludo;
}
public void sayHola(){
System.out.println(this.buildHola());
}

}
Java Bsico (Saludo)

CONTENIDO DEL CURSO


Fundamentos de la programacin orientada a objetos
Presentacin del framework de trabajo Java
Herramientas de desarrollo en entornos Java
Programacin Java: conceptos bsicos y prcticas
Principios de conectividad a base de datos en aplicaciones Java
Proyecto de fin curso; desarrollo de una aplicacin completa en Java
trabajando en equipos

Java Bsico (Contenido)

CONTENIDO DEL CURSO


Fundamentos de la programacin orientada a objetos
Qu es un objeto?
Clases, atributos y mtodos
Abstraccin y Encapsulamiento
Herencia
Polimorfismo

Java Bsico (Contenido)

Qu es un objeto?

Java Bsico (Qu es un objeto?)

Qu es un objeto?
Objetos del mundo real comparten tres caractersticas:
estado o estructura: por ejemplo, en un coche el n de marchas, la
velocidad actual, el fabricante, el modelo, los aos del vehculo,
la marcha actual, etc...
comportamiento: por ejemplo, un coche puede arrancar, acelerar,
frenar, cambiar marcha, etc....
identidad : aquello que distingue a un objeto de todos los dems, por
ejemplo, si la estructura de un coche es su marca y modelo, es
posible que haya dos Citron DS3 que no son el mismo coche.

Java Bsico (Qu es un objeto?)

Qu es un objeto?
Los objetos software se utilizan para:
representar objetos del mundo real.
en un juego de carreras de coches, los coches del mundo real se podran
representar mediante objetos software.
en una aplicacin de dibujo, las figuras geomtricas (polgonos, rectas,...)
se podran representar mediante objetos software.
en una aplicacin de gestin de personal de una empresa, los
trabajadores de la empresa se podran representar mediante objetos
software.
representar conceptos abstractos.
en interfaces grficas de usuario, es habitual representar con objetos
(llamados eventos) las acciones realizadas por el usuario (ratn y
teclado).

Java Bsico (Qu es un objeto?)

Qu es un objeto?
Objetos software tambin tienen esas caractersticas:
estado: se almacena en un conjunto de variables.
comportamiento: se implementa con mtodos. Un mtodo es una
funcin (subrutina, subprograma, procedimiento).
identidad : garantizada por los sistemas de programacin orientada
a objetos (POO).

Definicin: Un objeto es una agrupacin de variables y mtodos


distinguible de todos los dems (identidad propia) desde su creacin.

Java Bsico (Qu es un objeto?)

Qu es un mensaje?

Java Bsico (Qu es un objeto?)

Qu es un objeto?
Los objetos software se comunican mediante paso de mensajes.
Los mensajes se componen de 3 elementos
destinatario del mensaje (Objeto llamante)
el nombre del mtodo a ejecutar
los parmetros (si existen) del mtodo

Definicin: La Programacin Orientada a Objetos es un paradigma de


programacin que utiliza objetos que se comunican a travs de
mensajes para la solucin de problemas.

Java Bsico (Qu es un objeto?)

Qu es una clase?

Java Bsico (Clases, Atributos y Mtodos)

Clases, Atributos y Mtodos


Los objetos del mundo real se pueden agrupar en tipos (clases) (personas,
coches, ordenadores, lavadoras, aviones, etc.) de manera que los objetos de la
misma clase tienen la misma estructura y el mismo comportamiento, aunque el
estado de dos objetos puede ser distinto.
Los objetos software tambin se pueden agrupar en clases utilizando un
criterio similar: los objetos de la misma clase comparten estado y
comportamiento.
En terminologa orientada a objetos, un objeto concreto de una clase es una
instancia de la clase.

Definicin: Una clase es un patrn o prototipo que define las variables y


los mtodos comunes a todos los objetos de un cierto tipo.

Java Bsico (Clases, Atributos y Mtodos)

Clases, Atributos y Mtodos


Las variables en las que se almacena el estado de un objeto, se
llaman atributos de instancia.

Los mtodos que implementan el comportamiento de un objeto se


llaman mtodos de instancia.

Modelemos: Coche

Java Bsico (Clases, Atributos y Mtodos)

Clases, Atributos y Mtodos


Atributos de clase: las clases, adems de definir las variables de instancia,
tambin pueden definir variables de clase, que contienen informacin comn
para todas las instancias de la clase.
Si un objeto modifica el valor de un atributo de clase, esta modificacin afecta a
todos los objetos de la clase.
Ejemplo1, en una aplicacin de facturacin, la clase Factura puede
tener una variable de clase con el IVA que se aplica a las facturas, ya
que este valor es comn a todos los objetos de la clase Factura, y no
sera eficiente que cada uno de los objetos de la clase tuviera una
copia.
Ejemplo2, en una aplicacin se quiere contabilizar el nmero de instancias
que hay de una determinada clase, se puede utilizar una variable de
clase.
Por ejemplo, la clase Ventana de una interfaz grfica puede declarar
atributos de clase para almacenar el nmero de ventanas visibles, el
tamao por defecto y el tamao mximo de cualquier ventana.
Java Bsico (Clases, Atributos y Mtodos)

Clases, Atributos y Mtodos


Mtodos de clase: son mtodos que afectan a la clase en s, y a los cuales se
puede acceder directamente desde la clase en oposicin al acceso a los
mtodos de instancia, que se realiza siempre a travs de los objetos.
Es importante sealar que para invocar un mtodo de clase no es
necesario haber instanciado ningn objeto que reciba como mensaje
una invocacin de ese mtodo.
Para usar un mtodo de instancia, por el contrario, se necesita
obligatoriamente que se cree un objeto de la clase que reciba el
mensaje de ese mtodo.
Por ejemplo, en la clase Factura se podran tener mtodos para
consultar y modificar el valor del IVA aplicable a las facturas, ya que
este valor tiene sentido en s mismo y no est condicionado a la
existencia de objetos de la clase.
Java Bsico (Clases, Atributos y Mtodos)

Clases, Atributos y Mtodos

Modelemos: Coche con Atributos y Mtodos de Clase

Java Bsico (Clases, Atributos y Mtodos)

Qu es abstraer y que es encapsular?

Java Bsico (Abstraccin y Encapsulamiento)

Abstraccin y Encapsulamiento
La abstraccin consiste en extraer los aspectos esenciales de una entidad e
ignorar sus propiedades accidentales, es una herramienta en el proceso de
creacin del modelo a partir de un problema real que est determinada por los
siguientes factores:
Identificacin de clases: los conceptos que tienen entidad en s
mismos, no dependen de otros, se pueden describir, comprender
y analizar pueden abstraerse como una clase.
El objetivo del modelo:
determina tanto el grado de detalle como la informacin
relevante.
Ejemplos:
Aplicacin de macroeconoma: los empleados de una empresa pueden no ser
importantes como individuos porque slo interese su comportamiento
global como plantilla; habr una clase plantilla pero no una clase
persona.
Aplicacin de nminas: necesita manipular la informacin de cada persona de
manera independiente; habr una clase persona.
Java Bsico (Abstraccin y Encapsulamiento)

Abstraccin y Encapsulamiento
El encapsulamiento es el proceso de almacenar en un mismo compartimento
los elementos de una abstraccin que constituyen su estructura y su
comportamiento; sirve para separar la interfaz contractual de una
abstraccin y su implantacin (Booch)

La abstraccin y el encapsulamiento son conceptos complementarios: la


abstraccin se centra en el comportamiento observable de un objeto,
mientras que el encapsulamiento se centra en la implementacin que da
lugar a ese comportamiento (Booch)
Una de las grandes ventajas del encapsulamiento es que posibilita
que la implementacin de un objeto se pueda cambiar sin afectar
a las aplicaciones que lo utilizan

Java Bsico (Abstraccin y Encapsulamiento)

Qu es la herencia?

Java Bsico (Herencia)

Herencia
La herencia es el mecanismo que permite definir una clase a partir de otra clase
(superclase o clase padre), de manera que la subclase hereda la estructura
(estado) de la superclase a travs de las variables, y hereda el comportamiento a
travs de los mtodos.

Por ejemplo, si se define la superclase Coche con las variables para


almacenar el N de marchas, la velocidad actual, y la marcha
actual, y los mtodos que permiten arrancar, acelerar, frenar y
cambiar de marcha, se puede construir la subclase
CocheCarreras a partir de Coche utilizando la herencia.
De esta manera, la clase CocheCarreras hereda las variables y los
mtodos de la clase Coche.

Java Bsico (Herencia)

Herencia
Habitualmente una clase hija aumenta o redefine la estructura y el
comportamiento de su superclase, digamos que especializa a la clase padre.
Ejemplo: Se define la superclase Reloj con variables para almacenar la
hora y la fecha actuales, y los mtodos que permiten fijar la hora y
fijar al fecha.
Podriamos construir la clase hija RelojDespertador a partir de Reloj
utilizando la herencia.
La clase RelojDespertador aumenta el comportamiento de la clase
Reloj ya que es capaz de emitir una alarma a una hora previamente
prefijada, para ello, la clase RelojDespertador aumenta la
estructura con una variable para almacenar la hora de la alarma,
otra para alamacenar el estado de la alarma (activada/desactivada)
y los mtodos que permiten fijara la hora de la alarma y activarla o
desactivarla.

Java Bsico (Herencia)

Herencia
La herencia genera una jerarqua de generalizacin/especializacin
en la que una clase hija especializa el comportamiento o la estructura
ms general de su clase padre.
La especializacin consistir en el aumento de la estructura y/o el
comportamiento, su redefinicin o su aumento y redefinicin.
La relacin de herencia modela la relacin semntica es un
ejemplo: un Reloj Despertador es un Reloj
un Coche es un Automvil.

Java Bsico (Herencia)

Herencia

Modelemos: Tienda Electrodomsticos

Java Bsico (Herencia)

Herencia
Se pueden distinguir distintos tipos de herencia en cuanto al
nmero de superclases de una subclase:
Herencia simple : una subclase hereda solamente de una superclase.
una clase hija solo tiene un padre.
Herencia mltiple: una subclase hereda de ms de una superclase.
una clase hija tiene ms de un padre.
Este tipo de herencia es conceptualmente correcta pero introduce
ciertas complejidades en los lenguajes de programacin.
Por ejemplo, puede ocurrir que una clase herede de dos superclases
que tienen atributos o mtodos con el mismo nombre. Esta colisin de
nombres se resuelve de distinta manera en los lenguajes orientados a
objetos:
en Java no se permite la herencia mltiple ,
en C++ s se permite (Especificacin de mtodo llamante).

Java Bsico (Herencia)

Herencia
Es fundamental sealar que la herencia no se limita a un nmero
determinado de niveles por lo que todas los objetos de una
aplicacin heredarn de las superclases ms altas de la jerarqua
de las que hereden directa o indirectamente.

Java Bsico (Herencia)

Herencia

Modelemos: Tienda Electrodomsticos varios Niveles

Java Bsico (Herencia)

Qu es un Overcraft?

Java Bsico (Herencia)

Qu es el polimorfismo?

Java Bsico (Polimorfismo)

Polimorfismo
Para poder definir el polimorfismo hemos de definir antes que es el tipado
dinmico de elementos (Enlace dinmico).
Esto quiere decir que el tipo de una variable, de un atributo o de una expresin
se conoce en tiempo de ejecucin y no en tiempo de compilacin.

Java Bsico (Polimorfismo)

Polimorfismo
Es la caracterstica ms potente de estos lenguajes que nace de la
interaccin de la herencia y el enlace dinmico.
Respecto al enlace dinmico:
Es importante sealar que esta tcnica tiene inters cuando variables
de un tipo pueden almacenar objetos de otros tipos.
Esto slo est permitido en programacin orientada a objetos cuando
la variable que almacenar objetos de distintos tipos es de una clase
ms general.
De manera formal se define como: Ante una misma signatura de un mtodo, este
puede presentar diferentes implementaciones.

Java Bsico (Polimorfismo)

Polimorfismo
Es la caracterstica ms potente de estos lenguajes que nace de la
interaccin de la herencia y el enlace dinmico.
Respecto al enlace dinmico:
Es importante sealar que esta tcnica tiene inters cuando variables
de un tipo pueden almacenar objetos de otros tipos.
Esto slo est permitido en programacin orientada a objetos cuando
la variable que almacenar objetos de distintos tipos es de una clase
ms general.
De manera formal se define como: Ante una misma signatura de un mtodo, este
puede presentar diferentes implementaciones.

Java Bsico (Polimorfismo)

Polimorfismo

Modelemos: Algo polimrfico un banco

Java Bsico (Polimorfismo)

Un poco ms
Relaciones entre objetos:
Se puede modelar las relaciones que se identifiquen entre las
clases. Estas relaciones pueden distinguirse por su significado o
semntica.

Como por ejemplo:


Generalizacin
Relacin de tipo es-un (herencia).
Un coche es-un automvil
Asociacin
Es una relacin que describe vnculos entre objetos.
Un pas tiene muchas ciudades
Agregacin
Es una relacin de tipo todo-parte.
Realmente la diferencia entre una relacin de agregacin y una
de asociacin es una cuestin de preferencia por parte del
analista.
Java Bsico (Un poco mas)

Un poco ms
Composicin
Es una relacin de tipo todo-parte ms fuerte que la agregacin.
Es similar a las relaciones de composicin fsicas.
Los tiempos de vida de las partes y el todo coinciden.
Una parte no puede pertenecer a dos composiciones al mismo tiempo.
El todo es responsable de la creacin y de la destruccin de las partes.
Por ejemplo: El coche tiene un volante.
Dependencia
Es un aspecto semntico que se puede identificar en muchos tipos de
relaciones y se refiere al hecho de que los cambios en unos objetos
afectan a otros.

Java Bsico (Un poco mas)

Un poco ms
Variables miembro de una relacin y clases de asociacin: de
forma similar a la manera en la que las variables miembro de una
clase describen su estructura, hay ocasiones en las que existe
cierta informacin relevante de una relacin entre clases
Las relaciones pueden especificar variables miembro para contener esta
informacin.
En este caso, puede resultar conveniente, definir una clase para contener esa
estructura
A estas clases se las conoce como clases de asociacin
Como por ejemplo: En una biblioteca en la que existen Libros y Socios, para
modelar un prstamo de un libro a un socio, tiene mucho sentido crear
la clase Prestamo con los metodos y atributos propios de un prestamos
como por ejemplo la fecha de vencimiento.

Java Bsico (Un poco mas)

Un poco ms
UML: Lenguaje universal de modelado, o como poner de manera grfica todo lo
que hemos visto hoy.
Como por ejemplo:

Java Bsico (Un poco mas)

También podría gustarte