Download Programación en Java - paradigmas

Document related concepts
no text concepts found
Transcript
Programación en Java
Introducción a
Java
Reseña histórica




Surge en 1991 por Sun Microsystems
Desarrollado para electrodomésticos
Se buscaba un código neutro
El lema del lenguaje es

“WRITE ONCE, RUN EVERYWHERE”
(Escribir una vez, ejecutar donde sea)
Reseña histórica

Versiones





(continuación)
Java 1.0 (212 Clases, 12 paquetes). Muchos
navegadores llevan esta versión, se usa para
applets.
Java 1.1 (504 Clases, 23 paquetes). Uso en
sistemas donde no está la V 1.2
Java 1.2 (1520 Clases, 59 paquetes). Plataforma
Java 2.0
Java 1.3 (Beta) Pequeñas correcciones y
actualizaciones
Mas nuevos hoy *7.0
Características








Lenguaje orientado a objeto
Simple
Portable
Robusto
Seguro
Pequeño
Interpretado
Dinámico
Instalación y configuración


Copiar e Instalar el JDK a la estación de
trabajo.
Modificar del archivo autoexec.bat:

El directorio BIN (donde están los archivos
ejecutables) debe estar incluido en la variable
PATH.

Agregar una variable PATH (que le indica al JDK
donde buscar los paquetes para la ejecución de un
programa Java) con las entradas “classes.zip” y el
directorio actual “.”.
Aplicación Java

¿Qué es una aplicación Java?



Aplicaciones estándar
Applets
Creación


Necesitamos
 Editor de texto
Salida
 Grabar un archivo del mismo nombre de la
clase (respetando las mayúsculas y minúsculas)
con extensión “.java”
Aplicación Java

(continuación)
Compilación
 Necesitamos


JDK (javac.exe)
Salida
Al ejecutar la sentencia
“javac <NombreArchivo>.java” se crea un
archivo del mismo nombre de la clase con
extensión “.class”

Aplicación Java

(continuación)
Ejecución

Necesitamos


JDK (java.exe)
Se ejecuta mediante la sentencia “java
<NombreArchivo>” .
Aplicación Java
(continuación)
Fichero Java
(*.java)
javac.exe
Byte-code
(*.class)
java.exe
Aplicación
Aplicación Java

(continuación)
Ejemplo (HolaMundo.java)
class HolaMundo
{
public static void main(String args[])
{
System.out.println("Hola Mundo");
}
}
Sintaxis en Java
Comentarios

Para una sola línea
// nota

De una o mas líneas
/* nota */

De documentación
/** nota */
Separadores






Paréntesis
Llaves
Corchetes
Punto y coma
Coma
Punto
Identificadores




Nombran variables, funciones, clases y
objetos
Comienza con una letra, un guión bajo (_) o
un símbolo pesos ($). Los siguientes
caracteres pueden ser letras o dígitos
Distinción entre mayúsculas y minúsculas
No hay longitud máxima
Operadores
Operador
+
*
/
%
!=
&
!
Función
Suma o concatena caracteres.
Resta
Multiplicación
División
Resto de la división
Distinto
AND
Negación
Operador
++
-==
=
=>
=<
<, >
|
Función
Incrementar en uno
Decrementar en uno
Igual que
Asignar a
Mayor o igual que
Menor o igual que
Menor que, Mayor que
OR
Tipos primitivos
Entero
byte [-128 a 127]
short [-32768 a 32767]
int [-2147483648 a 2147483647]
long [-9223372036854775808 a
9223372036854775807]
Coma Flotante
float [3,4E-38 a 3,4E38]
double [1,7E-308 a 1,7E308]
true [valor cierto]
false [valor falso]
char [carácter alfanumérico]
Booleano
Carácter
Cadena
int variable;
byte variable;
short variable;
long variable;
int i1,i2;
float fvar=3,1416;
double dvar=3.1416d;
Boolean llave=false;
llave=true;
char letra=’a’;
letra=’b’;
String [Matriz de caracteres; realmente String s;
se trata de una clase, que encapsula las s=new String();
operaciones de gestión de caracteres] // declaración conjunta
String s=new String();
// con inicialización
String s="cadena";
// forma alternativa
String s;
s="cadena";
Control de Flujo

Sentencias de Salto
Posibilitan la ejecución selectiva de porciones del
programa según el valor de algunas expresiones
if( Boolean )
{
sentencias;
}
else
{
sentencias;
}
Control de Flujo
switch( expr1 )
{
case expr2:
sentencias;
break;
case expr3:
sentencias;
break;
default:
sentencias;
}
(continuación)
Control de Flujo

(continuación)
Sentencias de Ciclos
Repiten la ejecución de bloques de sentencias
for(expr1 inicio;expr2 test;expr3 incremento)
{
sentencias;
}
while(Boolean)
{
sentencias;
}
Control de Flujo
do
{
sentencias;
}
while( Boolean);
(continuación)
Control de Flujo

(continuación)
Control General del Flujo
Pueden usarse para tener un mayor control sobre
la sentencias de ciclos
break [etiqueta]
continue [etiqueta]
return expr;
return;
etiqueta: sentencia;
Arrays

Declaración
char s[];
Punto p[];

Construcción
 Array vacío
int tabla[][] = new int[4][5];

Array con sus valores iniciales
String nombres[] = { "Juan","Pedro","Maria" };
Clases
“ Es una Abstracción de un elemento
del mundo real ”
“ Una clase es una agrupación de
datos (variables o campos) y de
funciones (métodos) que operan
sobre esos datos”
Clases




(continuación)
Posee Métodos y Atributos.
Todo forma parte de una clase, es una
clase o describe como funciona una
Todos los métodos se definen dentro
de una clase
No soporta funciones o variables
globales
Clases
(continuación)
Declaración

<tipo de clase> class <nombre> [extends <nombreClase>] {...}

Tipos de clases

public:

abstract:

final:
son accesibles desde otras clases. Son accesibles
dentro del mismo paquete en el que se han declarado. Para
acceder desde otros paquetes, primero tienen que ser
importadas.
tiene al menos un método abstracto. Una
clase abstracta no se instancia, sino que se utiliza como
clase base para la herencia.
se declara como la clase que termina una cadena
de herencia. No se puede heredar de una clase final.
Clases

(continuación)
Componentes

Variables



De instancia
De clase
Métodos


De instancia
De clase
Métodos


Los métodos son funciones que pueden
ser llamadas dentro de la clase o por
otras clases
Declaración
<modificadores> <tipo_retorno> <nombre>
([<lista_argumentos>])
{...}
Métodos

(continuación)
Constructores




Toda clase tiene al menos un constructor.
Es un tipo específico de método.
No retornan ningún valor.
Su nombre es igual que la clase.
Métodos

(continuación)
Control de acceso

Cuando se crea una nueva clase en Java,
se puede especificar el nivel de acceso que
se quiere para las variables de instancia y
los métodos definidos en la clase:




public
protected
private
friendly (sin declaración específica)
Clases

(continuación)
Ejemplo
public class MiClase
{
int i;
public MiClase()
{ i = 10; }
public void sumaAi( int j
{ i = i + j; }
}
Herencia



En Java no se puede hacer herencia
múltiple
La palabra clave extends se usa para
generar una subclase de un objeto
Los constructores no se heredan
Herencia

(continuación)
Sobreescritura


Una subclase puede alterar el
comportamiento heredado de una clase
padre
El nombre, tipo de retorno y argumentos
del nuevo método deben coincidir con los
de la clase padre
this y super


La palabra clave this hace referencia al
objeto o instancia actual
Java asocia automáticamente todas las
variables de instancia con this, por lo cual
su uso a veces puede ser redundante.
this y super

(continuación)
La palabra clave super hace referencia
a la superclase de la clase que se
emplea
Ejemplo
public class MiClase {
int i;
public MiClase()
{ this.i = 10; }
}
public class MiNuevaClase extends MiClase {
public void sumaAi( int j ) {
i = i + ( j/2 );
super.sumaAi( j );
}
}
Paquetes



La palabra clave package permite
agrupar clases e interfaces
Son palabras separadas por puntos y se
almacenan en directorios que coinciden
con esos nombres
Si un archivo fuente Java no contiene
ningún package, se coloca en el
paquete por defecto sin nombre. Es
decir, en el mismo directorio que el
archivo fuente
Paquetes

(continuación)
Import
Los paquetes de clases se cargan con la palabra
clave import, especificando el nombre del
paquete como ruta y nombre de clase. Se pueden
cargar varias clases utilizando un asterisco
import java.Date;
import java.awt.*;
import MiClase; //paquete por defecto