Post on 08-Jul-2015
Java
Resumen
Un recorrido sobre conceptos explicados en clases y utilizados
en las tareas
Java Dr. Febles
Java Dr. Febles
Visión
Sus virtudes mas generales son:
•Naturaleza independiente de plataforma.
•Orientación a objetos.
•Fácil aprendizaje
Java Dr. Febles
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
Java Dr. Febles
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
No hay ninguna variable, función o constante que no esté dentro de una clase.
Orientado a objetos puro
Java Dr. Febles
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
Características distintivas
Java
Java Dr. Febles
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
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
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
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
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
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
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
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
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).
Identificador
Nombre
Que identifica
variable
método
función
Clase
Text
Java Dr. Febles
Reglas para nombrar indicadores
No se pueden usar palabras reservadas
Distingue mayúsculas de minúsculas
No pueden incluir espacio en blanco
Pueden incluir pero no comenzar con número
Han de comenzar con letra ó_ ó $.
Java Dr. Febles
Cuando las instrucciones producen un valor son llamadas expresiones.
Una instrucción representa una orden simple que es realizada en un programa en Java
El valor producido por una instrucción es llamado valor de retorno.
Instrucciones y expresiones
1 2 3
Java Dr. Febles
Java Dr. Febles
De instancia
De clase
Locales
Variables
Tipos
Todas las
variables han de declararse antes de usarlas
Java Dr. Febles
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
En Java
Java Dr. Febles
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.
Bloque de código
Grupo desentencias
Limitados por Llaves
Definición deuna Clase
Def. de unaFunción miembro
IteracciónFOR
Try…cath
Actúa como unidad
Java Dr. Febles
Java Dr. Febles
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.
La POO
Aspectos generales
Clases
Describe propiedades y comportamientos importantes e ignora otras
Objetos
Atributos
Operaciones
Enlaces
Son una abstracción
Java Dr. Febles
Java Dr. Febles
Como una colección de campos y
métodos (funciones y
procedimientos) que trabajan
juntos para acometer una tarea
específica de programación.
¿Cómo puedo definir una clase?
¿Y los atributos?
Atributos
Se guardan en variables denominadas de instancia
Apariencias
Otras cualidades
Color
Estatura
Características individuales
Java Dr. Febles
Java Dr. Febles
Ejemplos de clases
• Clase personas (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
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
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
Á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 ámbitoint i = 2; // error de compilación}
}
Java Dr. Febles
Abstract
Public
Final
Tipos
Clasificación de clases
Una clase final se declara como la clase que termina una cadena de herencia. No se puede heredar de una clase final
Una clase abstract tiene al menos un método abstracto. Una clase abstracta no se instancia, sino que se utiliza como clase base para la herencia
Las clases public son accesibles desde otras clases, bien sea directamente o por herencia
Lo fundamental de cada tipo de clase
Abstract Final Public
Java Dr. Febles
Java Dr. Febles
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
¿ Cómo se dice en java que una clase
está heredando de otra?
class nombreSubClase extends nombreSuperClase
{
......
}
Java Dr. Febles
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).
¿Qué variables miembro hereda
una subclase?
Java Dr. Febles
•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.
¿Qué variables miembro hereda una subclase?
Java Dr. Febles
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
¿Y los métodos?
El comportamiento de los objetos de una clase se implementa mediante funciones miembro o métodos.
Java Dr. Febles
Una definición de método
Es un conjunto de instruccionesque realizan una determinadatarea.
Son similares a las funciones de loslenguajes estructurados.
Métodos de instancia y de clase
De instanciaUn objeto llama a
un método para
realizar una
determinada
tarea
Métodos
De clase
El método
se llama
desde la
propia clase.
Java Dr. Febles
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
}
Implementación de Métodos
Java Dr. Febles
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
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() {
. . .
}
}
Obligatorio: el nombre y el tipo de retorno del método.
Java Dr. Febles
No devuelve valor
void
Devuelve valor
Dato primitivo
Referencia
Devolver un Valor desde un Método
Java Dr. Febles
Su nombre es igual que el de la clase
Inicializa un objeto de la clase
Son llamados mediante el operador new
El método constructor
Java Dr. Febles
Java Dr. Febles
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
El operador New
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
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.
Sobre escritura de métodos
Java Dr. Febles
Java Dr. Febles
Creando la jerarquía
Animal
Terrestre Acuático
Bípedos reptiles Voladores
Java Dr. Febles
Localización de métodos en una jerarquía
Definición del método Clase
Clase Clase
ClaseClase
ObjetoObjeto
Se envía el mensaje, recorre verticalmente la jerarquía hasta que una definición sea encontrada
Java Dr. Febles
El método es anulado por esta definición
Definición del método
inicial
Clase
ClaseClase
ObjetoObjeto
Se envía el mensaje, recorre verticalmente la jerarquía hasta que una definición sea encontrada
Clase
Este procedimiento es llamado anulación 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:
Nombre de método
Java Dr. Febles
Java Dr. Febles
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.