Este documento describe conceptos básicos de Java como su naturaleza independiente de plataforma, orientación a objetos, compilación e interpretación. También cubre temas como clases, objetos, métodos, herencia y polimorfismo.
1. Java
Resumen
Un recorrido sobre conceptos
explicados en clases y utilizados
en las tareas
Java Dr. Febles
2. Visión
Sus virtudes mas generales son:
•Naturaleza independiente de
plataforma.
•Orientación a objetos.
•Fácil aprendizaje
Java Dr. Febles
3. El lenguaje Java
Es a la vez:
Compilado: convierte los .java en
bytecodes.
Interpretado. ejecuta cada una de
estas instrucciones en un ordenador
específico.
Java Dr. Febles
5. Cinco tareas principales de la
JVM
1. Reservar espacio en memoria para los objetos
creados.
2. Liberar la memoria no usada (garbage collection).
3. Asignar variables a registros y pilas
4. Llamar al sistema huésped para ciertas funciones,
como los accesos a los dispositivos
5. Vigilar el cumplimiento de las normas de seguridad
de las aplicaciones Java
Java Dr. Febles
6. Orientado a objetos
puro
No hay ninguna variable,
función o constante que no
esté dentro de una clase.
Java Dr. Febles
7. Tipos de programas más comunes
applets (se ejecutan en el navegador de la
máquina cliente).
aplicaciones (programas que se ejecutan
directamente en la JVM).
servlet que es similar a los applets pero se
ejecutan en los servidores Java.
Java Dr. Febles
9. Es SIMPLE
Ofrece toda la funcionalidad de un lenguaje
potente, pero sin las características menos
usadas y más confusas de éstos. C++ es un
lenguaje que adolece de falta de seguridad,
pero C y C++ son lenguajes más difundidos,
por ello Java se diseñó para ser parecido a
C++ y así facilitar un rápido y fácil
aprendizaje.
Java Dr. Febles
10. Es DISTRIBUIDO:
Se ha construido con extensas
capacidades de interconexión TCP/IP.
Existen librerías de rutinas para acceder
e interactuar con protocolos como http y
ftp. Esto permite a los programadores
acceder a la información a través de la
red con tanta facilidad como a los
ficheros locales.
Java Dr. Febles
11. Es ROBUSTO
•Java realiza verificaciones en busca de problemas tanto
en tiempo de compilación como en tiempo de ejecución.
•Maneja la memoria para eliminar las preocupaciones por
parte del programador de la liberación o corrupción de
memoria.
•Implementa los arrays auténticos, en vez de listas
enlazadas de punteros, con comprobación de límites,
para evitar la posibilidad de sobreescribir o corromper
memoria resultado de punteros que señalan a zonas
equivocadas.
Java Dr. Febles
12. Es de ARQUITECTURA NEUTRAL
El compilador Java compila su código a un fichero
objeto de formato independiente de la arquitectura de
la máquina en que se ejecutará. Cualquier máquina
que tenga el sistema de ejecución (run-time) puede
ejecutar ese código objeto, sin importar en modo
alguno la máquina en que ha sido generado.
Java Dr. Febles
13. Es SEGURO
Cuando se usa Java para crear un
navegador, se combinan las
características del lenguaje con
protecciones de sentido común
aplicadas al propio navegador.
Java Dr. Febles
14. Es PORTABLE:
Más allá de la portabilidad básica por ser de
arquitectura independiente, Java implementa
otros estándares de portabilidad para facilitar
el desarrollo. Los enteros son siempre enteros
y además, enteros de 32 bits en complemento
a 2. Además, Java construye sus interfaces de
usuario a través de un sistema abstracto de
ventanas de forma que las ventanas puedan
ser implantadas en entornos Unix, Pc o Mac.
Java Dr. Febles
15. Es INTERPRETADO
El intérprete Java (sistema run-time) puede ejecutar
directamente el código objeto. Enlazar (linkar) un
programa, normalmente, consume menos recursos que
compilarlo, por lo que los desarrolladores con Java
pasarán más tiempo desarrollando y menos esperando
por el ordenador
Java Dr. Febles
16. Es MULTITHREADED
Al ser multithreaded (multihilvanado, en
mala traducción), Java permite muchas
actividades simultáneas en un programa. Los
threads (a veces llamados, procesos ligeros),
son básicamente pequeños procesos o piezas
independientes de un gran proceso.
Java Dr. Febles
17. Es DINAMICO
Java se beneficia todo lo posible de la
tecnología orientada a objetos. Java no
intenta conectar todos los módulos que
comprenden una aplicación hasta el
tiempo de ejecución. Las librería nuevas o
actualizadas no paralizarán las
aplicaciones actuales (siempre que
mantengan el API anterior).
Java Dr. Febles
19. Reglas para nombrar
indicadores
Han de comenzar con letra ó_ ó $.
Pueden incluir pero no comenzar con número
No pueden incluir espacio en blanco
Distingue mayúsculas de minúsculas
No se pueden usar palabras reservadas
Java Dr. Febles
20. Instrucciones y
expresiones
1 2 3
Una instrucción Cuando las
representa una El valor
instrucciones
orden simple producido por
que es producen un
una instrucción
realizada en un valor son
es llamado valor
programa en llamadas
de retorno.
Java expresiones.
Java Dr. Febles
21. Variables
Todas las De instancia
variables han de
declararse antes
de usarlas De clase
Locales
Tipos
Java Dr. Febles
22. En Java
Las variables locales se declaran en el
momento en el que son necesarias. Es una
buena costumbre inicializar las variables en
el momento en el que son declaradas. int
Java Dr. Febles
23. Precisión
Al contrario de otros lenguajes, java no
posee variables globales ( variables que
pueden ser usadas en todas las partes
del programa). Las variables de instancia
son usadas para comunicar
informaciones de un objeto a otro y eso
sustituye la necesidad de variables
globales.
Java Dr. Febles
24. Bloque de código
Actúa como unidad
Grupo de Iteracción
Definición de
FOR
una Clase sentencias
Def. de una Try…cath
Función miembro
Limitados por Llaves
Java Dr. Febles
25. La POO
La programación orientada a objetos
se basa en la programación de
clases. Un programa se construye a
partir de un conjunto de clases.
Java Dr. Febles
26. Aspectos generales
Son una abstracción
Objetos Operaciones
Clases
Atributos Enlaces
Describe propiedades y
comportamientos importantes e ignora otras
Java Dr. Febles
27. ¿Cómo puedo definir una clase?
Como una colección de campos y
métodos (funciones y
procedimientos) que trabajan
juntos para acometer una tarea
específica de programación.
Java Dr. Febles
28. ¿Y los atributos?
Características individuales
Apariencias Color
Atributos
Otras Estatura
cualidades
Se guardan en variables denominadas
de instancia
Java Dr. Febles
29. Ejemplos de clases
• Clasepersonas (atributos: nombre, edad,
dirección; operaciones: actualizar_edad,
cambiar_dirección).
• Clase polígonos (atributos: vértices, color del
borde y color del interior; operaciones: diseñar,
borrar y mover).
Nota: Cada objeto es denominado instancia de su
clase.
Java Dr. Febles
30. Cómo se crea una clase
Se utiliza la palabra reservada class y a continuación el
nombre de la clase. La definición de la clase se pone
entre las llaves de apertura y cierre. El nombre de la
clase empieza por letra mayúscula.
Ejemplo:
class Rectangulo{
//miembros dato
//funciones miembro
}
Java Dr. Febles
31. Los miembros dato
Los valores de los atributos se guardan en los
miembros dato o variables de instancia. Los nombres
de dichas variables comienzan por letra minúscula,
como ya hemos visto.
Java Dr. Febles
32. Ámbito de una
variable
No se puede declarar una variable con el mismo
nombre que una de ámbito exterior.
Ejemplo.
En C y C++ son distintas, porque están declaradas
dentro de ámbitos diferentes. En Java, esto es ilegal.
Class Ambito {
int i = 1; // ámbito exterior
{ // crea un nuevo ámbito
int i = 2; // error de compilación
}
}
Java Dr. Febles
34. Lo fundamental de cada tipo de
clase
Abstract Final Public
Una clase abstract
tiene al menos un Una clase final se
declara como la Las clases public
método abstracto.
clase que termina son accesibles
Una clase abstracta
una cadena de desde otras clases,
no se instancia, sino bien sea
que se utiliza como herencia. No se
puede heredar de directamente o por
clase base para la herencia
herencia una clase final
Java Dr. Febles
35. Herencia
Con la herencia definiremos nuevas clases
(subclases) a partir de clases ya existentes
(superclases) adaptando el código de esta
última o añadiendo nuevo código pero “sin
tocar” la clase original, es decir sin afectar la
funcionalidad ya existente para la superclase.
Java Dr. Febles
36. ¿ Cómo se dice en java que una clase
está heredando de otra?
class nombreSubClase extends nombreSuperClase
{
......
}
Java Dr. Febles
37. ¿Qué variables miembro hereda
una subclase?
Regla: Una subclase hereda todas las
variables miembros de su superclase
que puedan ser accesibles desde la
subclase (a menos que la variable
miembro esté oculta en la subclase).
Java Dr. Febles
38. ¿Qué variables miembro hereda una subclase?
•heredan aquellas variables miembros declaradas como public o
protected.
•heredan aquellas variables miembros declaradas sin
especificador de acceso (normalmente conocidas como "Amigas")
siempre que la subclases esté en el mismo paquete que la clase.
•no hereda las variables miembros de la superclase si la subclase
declara una variable miembro que utiliza el mismo nombre. La
variable miembro de la subclase se dice que oculta a la variable
miembro de la superclase.
•no hereda las variables miembro private.
Java Dr. Febles
39. Una definición de objeto
Un elemento independiente de un
programa de computadora que
representa un numero de recursos
relacionados y es proyectado para
cumplir tareas específicas.
Java Dr. Febles
40. ¿Y los métodos?
El comportamiento de los
objetos de una clase se
implementa mediante
funciones miembro o métodos.
Java Dr. Febles
41. Una definición de método
Es un conjunto de instrucciones
que realizan una determinada
tarea.
Son similares a las funciones de los
lenguajes estructurados.
Java Dr. Febles
42. Métodos de instancia y de clase
Métodos
De instancia De clase
Un objeto llama a El método
un método para se llama
realizar una
desde la
determinada
tarea propia clase.
Java Dr. Febles
43. Implementación de
Métodos
La implementación de un método consiste
de dos partes, la declaración (firma) y el
cuerpo del método.
declaraciónDeMétodo {
cuerpoDeMétodo
}
Java Dr. Febles
44. Aspectos de la declaración
El nombre del método
El tipo de retorno
Tipos y cantidad de argumentos
Quién puede Llamar al método
Java Dr. Febles
45. Obligatorio: el nombre y el tipo de
retorno del método.
Ejemplo, el código siguiente declara un método llamado
estaVacio() en la clase Pila que devuelve un valor booleano
(true o false):
class Pila {
...
boolean estaVacio() {
...
}
}
Java Dr. Febles
46. Devolver un Valor desde un Método
No devuelve Devuelve
valor valor
Dato
void
primitivo
Referencia
Java Dr. Febles
47. El método constructor
Su nombre es igual que el de la clase
Inicializa un objeto de la clase
Son llamados mediante el operador new
Java Dr. Febles
48. El operador New
Se usa para crear un nuevo objeto
Ejemplo:
String teamName = new String();
Radom randInfo = new Random();
Mamifero A = new mamifero();
Nota: Los paréntesis pueden estar vacíos pero son
importantes
Java Dr. Febles
49. Precisión sobre constructores
Todas las clases Java tienen métodos especiales
llamados Constructores que se utilizan para
inicializar un objeto nuevo de ese tipo.
Los constructores tienen el mismo nombre que la
clase --el nombre del constructor de la clase
Rectangle es Rectangle(), el nombre del
constructor de la clase Thread es Thread(),
etc...
Java Dr. Febles
50. Sobre escritura de métodos
Una clase puede sobrescribir un
método de sus superclases.
Debe tener el mismo, nombre, tipo
de retorno y lista de parámetros que
el método al que ha sobrescrito.
Java Dr. Febles
51. Creando la jerarquía
Animal
Terrestre Acuático
Bípedos reptiles Voladores
Java Dr. Febles
52. Definición
del método Localización de
Clase
métodos en
una jerarquía
Clase Se envía el
Clase
mensaje,
recorre
verticalmente
la jerarquía
hasta que una
Clase definición sea
Clase encontrada
Objeto Objeto
Java Dr. Febles
53. Definición El método es
Clase
del método anulado por
esta definición
inicial
Clase
Se envía el
mensaje,
recorre
verticalmente
la jerarquía
hasta que una
Clase definición sea
Clase encontrada
Este procedimiento
es llamado Objeto Objeto
anulación de
método Java Dr. Febles
54. Nombre de método
En Java, se puede utilizar el mismo nombre
para varios métodos pasándole un tipo de
parámetro diferente a cada uno de los
métodos.
Ejemplo: La clase de dibujo, se podrán
declarar tres métodos llamados draw<() y que
cada uno aceptara un tipo de parámetro
diferente: Java Dr. Febles
55. Variables de clase
class MiembroDeFamilia {
static String apellido = Perez;
String name;
int edad;
}
Nota: Si una clase tiene una variable declarada static ,
todo objeto de esa clase tendrá el mismo valor para
esa variable.
Java Dr. Febles