Download Curso de JAVA Standard Edition y JAVA EE (J2EE)

Document related concepts
no text concepts found
Transcript
Aspectos Básicos
de Programación en
JAVA
CARACTERISTÍCAS ESENCIALES DE UN
PROGRAMA EN JAVA
JOSÉ LUIS REDONDO GARCÍA.
GRUPO QUERCUS ENGINEERING SOFTWARE, UEX
Elementos comunes en los lenguajes de
programación
2
 Los lenguajes de programación, incluyendo Java,
incluyen una serie de elementos comunes:






Palabras reservadas
Tipos de datos
Identificadores
Signos de puntuación
Operadores
Reglas de Sintaxis
2
Elementos comunes en los lenguajes de
programación (cont.)
3
 Usaremos el siguiente programa para
identificar estos elementos:
public class PayrollApp {
public static void main(String[] args) {
int hours = 40;
double payRate = 25.0, grossPay;
grossPay = hours * payRate;
System.out.print(″Gross Pay: $″);
System.out.println(grossPay);
}
}
3
Elementos comunes en los lenguajes de
programación (cont.)
4
 Las palabras reservadas (keywords)
tienen un significado especial en el lenguaje.

En el programa aparecen: public, class, static,
void, int y double.
 No pueden ser utilizadas para ninguna otra
cosa que no sea para lo que fueron definidas.
 En Java las palabras reservadas se escriben
usando sólo letras minúsculas.
4
Palabras Reservadas
 Palabras con un significado especial para el
compilador
 Ejemplos:
Nombres de tipos básicos: boolean, char, double, int, …
 Indicadores de controls: do, if, else, for, while, …
 Class, interface, extends, implements
 package, import
 this, super
 Modificadores de acceso: public, private, protected
 Constantes: true, false, null
 Etc…

Tipos de Datos
 Java define dos tipos de datos
 Tipos primitivos
 Tipos referencia
 Los tipos primitivos son ocho agrupados en
cuatro categorías:
Lógico: boolean
 Texto: char
 Entero:byte, short, int, long
 Real: float, double

 Los tipos referencia son apuntadores a
objetos.
Tipos de Datos
 Tipos primitivos:
 boolean true o false
 char
unicode! (16 bits)
 byte
entero de 8 bits con signo.
 short
entero de 16 bits con signo.
 int
entero de 32 bits con signo.
 long
entero de 64 bits con signo.
 float,double IEEE 754 floating point
Tipos de datos: Referencia
 Un tipo referencia guarda un apuntador a la dirección
donde se ubica el objeto (32 bits).
 Sólo puede almacenar objetos de su propio tipo.
 Ejemplo:
Cuadrado cuad1, cuad2;
Circulo circ1;
cuad1 = new Cuadrado();
circ1 = cuad1;
// Error de compliación
cuad2 = cuad1’;
// Ok
 Todas las clases son de tipo referencia.
 El valor que toma por defecto una variable de tipo
referencia es null.
Tipos de Datos: String
 La clase String permite manejar cadenas de
caracteres.
 El literal string debe ir entre comillas dobles “”.
 Se puede crear una cadena de caracteres de dos
formas:

String nombre = new String(“Pepe”);

String nombre = “Pepe”;
 Para concatenar dos cadenas se usa el operador +.
 No se guarda el carácter fin de cadena.
Identificadores
10
 Los identificadores son palabras que el
programador utiliza para nombrar cosas
tales como programas, clases, variables y
rutinas (métodos), entre otros.

En el programa aparecen:
PayRollApp, String y System para el programa y
otras clases
 args, hours, payRate, grossPay y out para las
variables
 main y println para los métodos

10
Identificadores
11
 En Java los identificadores que corresponden
a las clases comienzan con letra mayúscula.
 Los identificadores que corresponden a las
variables y a los métodos se escriben
comenzando con letra minúscula y usando
una letra mayúscula al comienzo de cada
nueva “palabra”.
11
Java es Case Sensitive
12
 Java es un lenguaje sensitivo a mayúsculas y
minúsculas (case sensitive).
 Esto quiere decir que todos los identificadores tienen
que escribirse tal como fueron definidos.

Por ejemplo, grossPay y GrossPay serían dos
identificadores distintos.
12
Elementos comunes en los lenguajes de
programación (cont.)
13
 Los signos de puntuación sirven propósitos
específicos, tales como marcar el final de una
instrucción o indicar el comienzo y el fin de un
conjunto de instrucciones.

En Java las instrucciones terminan con punto y coma
(‘;’).

En Java las cadenas de caracteres (Strings) se colocan
dentro de comillas dobles (‘″’).

En el programa aparecen otros signos de puntuación
tales como las llaves (‘{’ y ‘}’), los paréntesis (‘(’ y ‘)’),
los corchetes (‘[’ y ‘]’) y el punto (‘.’).
13
Operadores
14
 Los operadores son símbolos o que llevan a
alguna operación con datos, también
conocidos como operandos.
 Algunos ejemplos de operadores
aritméticos son:




+ para sumar dos números
- para restar dos números
* para multiplicar dos números
/ para dividir dos números
14
Operadores (I)
 Unarios: +.  Aritméticos: +, -, *, /, % (resto de la división).
 De Asignación: =, +=, -=, *=, %=
<var> += <exp> ó <var> = <var> + <exp>
 Operadores incrementales: ++, -
Precediendo a la variable: ++<var>, --<var>

siguiendo la variable: <var>++, <var>--
Operadores (II)
 Operadores Comparación: == (igual). != (distinto),
<, >, <=, >=, …
 Operadores booleanos: && (AND), || (OR), ! (NOT),
& (AND), | (OR).

&& y || realizan evaluación perezosa

& y | siempre evalúan los dos operadores
 El operador instanceof: <objeto> instanceof
<clase> determina si un objeto pertenece a una
clase.
Elementos comunes en los lenguajes de
programación (cont.)
17
 Algunos operadores pueden utilizarse para varias
cosas.
 Por ejemplo, el operador + puede ser utilizado
para:



Sumar dos números
Indicar que un número es positivo
Concatenar (unir) dos cadenas de caracteres
17
Elementos comunes en los lenguajes de
programación (cont.)
18
 Un operador importante es el =,
que requiere una variable a la izquierda y
una expresión a la derecha:
grossPay = hours * payRate;
 Este operador, llamado operador de
asignación, evalúa la expresión de la
derecha y asigna el resultado a la variable de
la izquierda.
18
Asignaciones: conversiones de tipos
 La conversión de tipos (casting) debe realizarse




entre tipos de la misma naturaleza: numéricos o
referencia.
Al convertir un tipo a un tamaño más pequeño se
puede perder la información del los bits de mayor
peso.
No hay conversión automatica con el tipo
boolean!
La sintaxis es: (<tipo>) <expresion>
Ejemplo: int i = (int) 1.345;
Elementos comunes en los lenguajes de
programación (cont.)
20
 Las reglas de sintaxis indican cómo
escribir correctamente los programas.
 Estas reglas indican cómo se pueden utilizar
las palabras reservadas y los operadores y
cómo los signos de puntuación deben
aparecer.
 Un programa con errores de sintaxis no
puede compilarse ni ejecutarse.
20
Elementos fundamentales de un programa en Java
21
 Consideremos de nuevo este programa:
public class PayrollApp {
public static void main(String[] args) {
int hours = 40;
double payRate = 25.0, grossPay;
grossPay = hours * payRate;
System.out.print(″Gross Pay: $″);
System.out.println(grossPay);
}
}
21
Elementos fundamentales de un programa en Java
(cont.)
22
 Todo programa en Java debe tener por lo menos una
clase.
 Una clase (class) es un contenedor de rutinas
(llamadas métodos en Java).
 En un archivo fuente se puede tener más de una
clase pero sólo una puede tener el atributo public.
22
Elementos fundamentales de un programa en Java
(cont.)
23
 Cuando un archivo fuente en Java contiene una clase
pública, el nombre de la clase pública tiene que ser el
mismo del archivo.
 En el ejemplo, la clase pública que representa el
programa se llama PayrollApp.
 Por lo tanto, el archivo fuente se tiene que llamar
PayrollApp.java
23
Elementos fundamentales de un programa en Java
(cont.)
24
 La definición de una clase comienza con un
encabezado que contiene la palabra class.
 Todas las definiciones e instrucciones que
pertenecen a una clase están encerrados
entre llaves: { }
 Estas definiciones e instrucciones son
conocidas como el cuerpo de la clase
(class body).
24
Elementos fundamentales de un programa en Java
(cont.)
25
 En el programa de ejemplo se definió esta
clase:
public class PayrollApp {
cuerpo de la clase PayrollApp
}
25
Elementos fundamentales de un programa en Java
(cont.)
26
 Como se indicó anteriormente, una clase es
un contenedor de métodos.
 Un método (method) es un contenedor de
instrucciones que llevan a cabo una tarea.
 Toda aplicación tiene que tener un método
principal de nombre main que es el punto de
comienzo de la aplicación.
26
Elementos fundamentales de un programa en Java
(cont.)
27
 En el programa de ejemplo se definió el
método main:
public class PayrollApp {
public static void main(String[] args) {
cuerpo del método main
}
}


El método main siempre lleva el mismo
encabezado.
Durante el curso se explicarán los
componentes de este encabezado.
27
Elementos fundamentales de un programa en Java
(cont.)
28
 Los métodos también llevan un encabezado y el
cuerpo del método (method body) se coloca
dentro de llaves.
 Los métodos contienen enunciados
(statements) que son las instrucciones que se le
dan a la computadora.
 Existen dos tipos principales de enunciados:


Enunciados de declaración
Enunciados ejecutables
28
Elementos fundamentales de un programa en Java
(cont.)
29
 Los enunciados de declaración (declaration
statements) permiten indicar el tipo de datos,
nombre y, posiblemente, un valor inicial para cada
variable o constante.
29
Elementos fundamentales de un programa en Java
(cont.)
30
 Nuestro programa contiene los siguientes
enunciados de declaración (resaltados):
public class PayrollApp {
public static void main(String[] args) {
int hours = 40;
double payRate = 25.0, grossPay;
grossPay = hours * payRate;
System.out.print(″Gross Pay: $″);
System.out.println(grossPay);
}
}
30
Variables y Constantes
 Ejemplos de declaración de variables:
 int x,y,z;
 int x = 9;
 boolean terminar = false;
 Cliente c1 = new Cliente();
 Constantes: Zona de memoria cuyos valores
no cambian
 Declaración:

final <tipo> <variable> = <valor>;
 Ejemplo: final double PI = 3.14159;
Elementos fundamentales de un programa en Java
(cont.)
32
 Los enunciados ejecutable (executable
statements) permiten que la computadora lleva a
cabo instrucciones tales como:



Obtener un valor del usuario (input)
Asignarle a una variable el resultado de una expresión
(process)
Mostrar un valor en la pantalla (output)
32
Elementos fundamentales de un programa en Java
(cont.)
33
 Nuestro programa contiene los siguientes
enunciados ejecutables (resaltados):
public class PayrollApp {
public static void main(String[] args) {
int hours = 40;
double payRate = 25.0, grossPay;
grossPay = hours * payRate;
// Process
System.out.print(″Gross Pay: $″); // Output
System.out.println(grossPay);
// Output
}
}
33
Los métodos print y println
34
 Java provee la clase System que contiene
una referencia a la pantalla llamada out.
 La variable out reconoce los métodos print
y println que se utilizan para mostrar
valores en la pantalla (una operación de
output).
 La clase System es un contenedor de
definiciones y métodos pero no es una
aplicación ya que no contiene el método
main.
34
Los métodos print y println (cont.)
35
 Los clase System y los métodos print y println
pertenecen a lo que se denomina como la Interfaz de
Programación de Aplicaciones (Java API,
Application Programming Interface).
 Un API es una biblioteca (library) que contiene una
serie de clases para llevar a cabo ciertas operaciones.
 Las clases y los métodos en el Java API están disponibles
para todos los programas en Java.
35
Los métodos print y println (cont.)
36
 Para mostrar en la pantalla (out) el
mensaje:
Programming is Fun!
se puede utilizar el método println de la
siguiente manera:
System.out.println(″Programming is Fun!″);
 Como el mensaje es una cadena de
caracteres, éste debe colocarse entre
comillas dobles (‘″’).
36
Los métodos print y println (cont.)
37
 El método println muestra un valor en la
pantalla y mueve el cursor al inicio de la
próxima línea.
 El método print muestra un valor en la
pantalla pero no mueve el cursor.
 Por ejemplo, otra forma de mostrar el
mensaje Programming is Fun! es:
System.out.print(″Programming″);
System.out.println(″ is Fun!″);
37
Los métodos print y println (cont.)
38
 El método println es una forma especial
del método print.
 Por ejemplo, el siguiente enunciado
System.out.println(″Programming is Fun!″);
es equivalente a
System.out.print(″Programming is Fun!\n″);
 El segundo enunciado utiliza la secuencia
de escape \n (newline) para indicar que se
debe mover el cursor al inicio de la próxima
línea.
Los métodos print y println (cont.)
39
 Existen varias secuencias de escape (escape
sequences) que controlan cómo se muestran los
valores en la pantalla pero las veremos cuando
las necesitemos.
 La secuencia \n se puede colocar en cualquier
lugar de una cadena de caracteres.
 Por ejemplo,
System.out.println(″Programming\n is Fun!″);
muestra lo siguiente:
Programming
is Fun!
Los métodos print y println (cont.)
40
 En el programa del ejemplo se calcula el
salario de un empleado asumiendo que
trabajó 40 horas, a $25 por hora:
grossPay = hours * payRate;
System.out.print(″Gross Pay: $″);
System.out.println(grossPay);
 El resultado saldrá así en la pantalla:
Gross Pay: $1000.0
40
Los métodos print y println (cont.)
41
 Otra forma de mostrar varios valores en una sola
línea es usar el operador +, como muestra este
ejemplo:
System.out.println(″Gross Pay: $″ + grossPay);
 Cuando uno de los valores es un caracter o una
cadena de caracteres, al operador + se le llama
concatenación.
 Este operador simplemente une los dos valores.
 El resultado saldrá así en la pantalla:
Gross Pay: $1000.0
Documentación interna
42
 El código fuente de todo programa debe estar
documentado con comentarios descriptivos y
explicativos.
 Los comentarios son anotaciones que hace el
programador para explicar líneas o secciones
de código.
 Son para las personas que van a ver el código
ya que el compilador los ignora.
42
Documentación interna (cont.)
43
 Existen tres formas de hacer comentarios en Java:
 Comentarios de una sola línea
 Comentarios de más de una línea
 Comentarios de documentación
43
Documentación interna (cont.)
44
 Para escribir un comentario de una sola
línea se usan los símbolos //:
// Esto es un comentario.
 Para escribir un comentario de varias líneas
se comienzan con /* y se finaliza con */:
/*
* Esto es un comentario
* de dos líneas.
*/
44
Paso de Parámetros
 Todos los tipos simples y la clase String se pasan a los
métodos por valor.
 En cambio en Java, todas las clases se pasan por
Referencia.
 Cualquier cambio al objeto local que ocurra dentro del
método afectará al objeto original que fue pasado
como argumento.
Parámetros por Referencia -Ejemplo
class PruebaPasoPorReferencia {
public static void main(String[] args){
Circulo miCirculo;
miCirculo = new Circulo(5.0, "blanco");
imprimeCirculo(miCirculo);
colorCirculo(miCirculo, "negro");
imprimeCirculo(miCirculo);
}
public static void colorCirculo( Circulo c, String color)
{
c.color = color;
}
public static void imprimeCirculo(Circulo c) {
System.out.println("El área del circulo de radio " +
c.getRadio( ) + " es " +c.Area());
System.out.println("El color del Circulo es " +c.color);
}
}
Parametros por referencia –Ejemplo (cont.)
class Circulo {
private double radio;
String color;
public Circulo(double r, String c){
radio = r;
color = c;
}
public double getRadio( ){
return radio;
}
public double Area( ){
return radio*radio*Math.PI;
}
}
Alcance de las variables (I)
 En java se dispone tres tipos de alcance de
variables:



Las variables miembro pertenecientes a una clase.
Argumentos de un método de la clase.
Variables locales de un método de la clase.
 Los argumentos trabajan como variables locales.
class Ejemplo {
int x;
// variable miembro
metodo (int y){ // argumento
int z;
x = y + z;
}
}
// variable local
Alcance de las variables (II)
 Las variables miembros son visibles desde
cualquier parte de la clase.
 Los argumentos y variables locales sólo son
visibles dentro del método al que pertenece,
dejan de existir al finalizar el método.
 Dentro de un método, si coincide el
identificador de un argumento o variable local
con el de una variable miembro, sólo se accede
a la variable del método.
La referencia this
 Se emplea para referirse al objeto actual dentro de
un método.
 Con this se hace accesible una variable miembro
cuyo identificador coincide con una variable local.
Constructores (I)
 Un constructor es un tipo especial de método que
permite construir un objeto de una clase.
 Ejemplo:
class Circulo {
public Circulo(){…}
public Circulo(double r){…}
public Circulo(double r, String c){…}
}
 Se utilizan junto con la palabra reservada new
Circulo c1 = new Circulo(27);
Constructores (II)
 Los constructores se pueden sobrecargar y son
opcionales
 Si no se define ningún constructor, Java
proporciona uno por defecto.
 Si se define un constructor con argumentos se
pierde el constructor por defecto
 Normalmente en el constructor se inicializan las
variables miembro.
Destructores
 En Java no hay destructores como en C++
 El “recolector de basura” es el encargado de liberar la
memoria.

Cuando se detecta objetos no referenciados

Al final de un bloque que haya utilizado objetos.