Sintaxis Del Lenguaje Java PDF
Sintaxis Del Lenguaje Java PDF
Sintaxis Del Lenguaje Java PDF
2 | La función main 5
5 | Literales 12
7 | Operadores y tipos 15
10 | Funciones y parámetros 25
11 | Comentarios 27
En el ejemplo “HolaMundo.Java”, en la función “main” se ejecuta la Un bloque es un grupo de sentencias, delimitadas por los caracteres
sentencia: “{“ y “}”. En el ejemplo siguiente se muestra un bloque formado por
una única sentencia:
System.out.println(“Hola mundo”);
{
Como se irá viendo en este apartado y siguientes los principales System.out.println(“Hola mundo”);
tipos de sentencias son:
}
• De creación de posiciones de memoria (variables y objetos).
• De asignación, almacenar un valor en una posición de memoria. Por claridad en la escritura y lectura del código se utilizan los espacios
tabulados para ir “identando” las sentencias que están dentro de un
• De llamada a una función, como la mostrada más arriba que
bloque y así distinguir las de los diferentes bloques anidados unos
llama a la función “println” que muestra un mensaje por pantalla.
dentro de otros, como por ejemplo en el siguiente código:
• De control del flujos de programa, como son las sentencias de
decisión y de iteración.
public class HolaMundo{
Incluso es válida la sentencia vacía formada solamente por un “;”. public static void main(String[] args) {
System.out.println(“Hola mundo”);
}
}
Sintaxis del lenguaje Java | TELEFÓNICA / 4
En este ejemplo se tienen dos bloques, uno que engloba todas Ejemplos de sentencias:
las sentencias que definen la clase “HolaMundo”. Dentro de este
bloque sólo existe la definición de la función “main”, que a su vez es
un bloque con la sentencia que se ejecuta cuando es invocada. La
sentencia o sentencias de cada bloque se “identan” o sangran con int i=0; //Sentencia de creación de variable
las tabulaciones.
i = teclado.nexInt(); //Sentencia de asignación
boolean esPar = i % 2 == 0 ? true : false; //Sentencia de
asignación
if( esPar == true){ //sentencia de decisión simple
System.out.println(“Se ha tecleado un número par”);
}else{
System.out.println(“Se ha tecleado un número impar”);
}
Sintaxis del lenguaje Java | TELEFÓNICA / 5
2. La función main
Una función es un código que se ejecuta cuando es llamada, por tanto las funciones tienes dos
partes bien diferenciadas:
• Definición, bloque se sentencias que se ejecutan.
• Llamada a la función, provoca que se ejecuten las sentencias.
La función “main” es la que se tiene que definir en los programas Cuando se quiere utilizar una clase, una función o un dato, fuera del
Java para indicar que sentencias son las que dicho programa ejecuta, ámbito o bloque donde esta definido se utiliza el especificador de
en definitiva y expresado de forma sencilla la función “main” es el acceso “public”. Como se estudiara existen especificadores de acceso
programa Java. más restrictivos para impedir el acceso al elemento que especifican.
La función “main” es pública, para que la JVM pueda invocarla, al
La función “main” es llamada, como se comento en apartado anterior, igual que la clase “HolaMundo”.
por la JVM, cuando desde “java” se invoca la clase en la que esta
definida. La clase que contiene la función “main” de un programa Java tiene
que estar en ámbito de acceso “public”, además de estar almacenada
Todas las funciones cuando terminan de ejecutarse devuelven siempre en un archivo con el mismo nombre y con extensión “java”, como en
un valor a quien las llama, en el caso de la función main no devuelve el ejemplo “HolaMundo”.
nada, “void” en Java, al sistema, a la JVM.
Las funciones en su definición a la derecha de su nombre y encerrada
En Java cuando una función no necesita ser invocada por medio de un entre paréntesis contienen la lista de parámetros que pueden
objeto, en su definición se utiliza la palabra “static”, que como veremos recibir en su llamada. La lista puede estar vacía, puede contener un
más adelante significa que la función o variable son de la clase, no de elemento o más de uno, en este caso el separador de parámetros
instancias de la misma (objetos). La función “main” es de la clase que en el carácter “,”.
forma la aplicación Java, no se necesita crear ningún objeto para que
JVM la invoque.
Sintaxis del lenguaje Java | TELEFÓNICA / 6
public static void main(String[] args) FIGURA 2.1: EJECUCIÓN DE “HOLAMUNDO” SIN LISTA DE PARÁMETROS.
args es un array que contiene una cadena por cada uno de los
parámetros con los que se invoco con “java” a la clase que define la
función. En el ejemplo “Hola Mundo”, cuando se ejecuto se invoco
sin parámetros, como se observa en la imagen siguiente:
Sintaxis del lenguaje Java | TELEFÓNICA / 7
En el código del ejemplo siguiente se utiliza el primer String En la imagen siguiente se muestra como es la forma de invocar a
almacenado en el array de los parámetros de la llamada a “main” esta nueva versión de “HolaMundo” y cuál es el resultado, después
para cambiar la cadena que se muestra en pantalla. de compilar.
Sin embargo el código de esta nueva versión falla cuando se llama El código de “main” tiene que tener en cuenta si será ejecutado su
a HolaMundo sin ningún parámetro, porque se intenta acceder al código con o sin parámetros, la forma correcta sería la siguiente:
elemento de índice 0 del “array” args y en este caso esta vacío, no
tiene ningún elemento. El resultado de la ejecución de esta forma es
el mostrado en la imagen siguiente:
public class HolaMundo{
public static void main(String[] args) {
if (args.length == 0){
System.out.println(“Hola mundo”);
}
else{
System.out.println(“Hola mundo, “+
args[0]);
FIGURA 2.2: EJECUCIÓN DE HOLAMUNDO CON UN PARÁMETRO. }
}
}
Sintaxis del lenguaje Java | TELEFÓNICA / 9
Las reglas para formar identificadores validos son las siguientes: Estas reglas son de obligado cumplimiento, pero además se tienen
en cuenta otras por convección o estilo que se pueden resumir en las
• El primer carácter tiene que ser una letra, el carácter subrayado
siguientes:
(_) o el carácter dólar ($).
• Puede incluir números, pero no comenzar por uno de ellos.
• No se pueden incluir espacios en blanco. Tipo de
Convención Ejemplo
• Se distingue entre letras mayúsculas y minúsculas. identificador
• No se pueden utilizar las palabras reservadas como nombre comienza por String, System,
identificadores. de una clase letra mayúscula HolaMundo
nombre comienza con getEdad, setNombre,
de función letra minúscula calculaArea
nombre comienza por
edad, nombre, i
de variable letra minúscula
nombre en letras
X_MAX, PI, VERDE
de constante mayúsculas
En la tabla siguiente se
muestran los 9 tipos, con sus Valor por Clase
características. Cada tipo tiene Tipo Representación Bytes Rango
omisión envoltorio
asociado una clase (llamada
envoltorio) que permitirá trabajar Caracter
char 2 \u0000 a \uFFFF \u0000 Character
con objetos que encapsulan Unicode
estos tipos primitivos. byte 1 -128 a 127 0 Byte
short 2 -32768 a 32767 0 Short
Entero con -2147483648 a
int
signo 4 0 Integer
2147483647
-9223372036854775808
long 8 0 Long
a 9223372036854775807
Punto flotante
float 4 ±3.4*10-38 a ±3.4*1038 0.0 Float
precisión simple
Punto flotante ±1.8*10-308 a
double 8 0.0 Double
precisión doble ±1.8*10308
boolean Lógico 1 true o false false Boolean
void - - - - Void
5. Literales
Los literales son valores fijos o
constantes, representados en forma Tipos Representación Ejemplos
legible para las personas. cada tipo
primitivo tiene su forma de representar char Encerrados entre ‘ ‘ ‘a’, ‘1’, ‘\n’, ‘\u0037
sus literales. Los dígitos del número, sin parte
byte, 1245, -345678, 3_456_789
fraccionaria. Por omisión todos son
short, int El carácter _ hace de separador de miles
de tipo int.
Como los anteriores pero terminados 34567898923L, -383838383l,
long
en l o L 89_678_578_976L
Con parte decimal, por omisión todos
double 0.0, -12345e-125, .0456
los punto flotante son double
float Como los anteriores seguidos de f o F 0.0F, -1245.35f, 345.43e12F, .0f
boolean true o false
Aunque no es un tipo primitivo, sus
String literales tienen representación como “Hola mundo”, “\nNombre: “
caracteres delimitados por “”
El contenido de las variables pueden cambiar de valor, desde que se La sintaxis de declaración de una variable es la siguiente:
crean hasta que dejan de existir. Esto puede cambiar según veremos
• Declaración de una variable:
utilizando modificadores como final.
Tienen un tiempo de vida y un ámbito de acceso. Se crea espacio en <tipo> <identificador> [=<valor_inicial>];
memoria cuando se declaran y se libera el espacio cuando llegan al
final de su ámbito.
• Declaración de un grupo de variables todas del mismo tipo:
En resumen, las variables se declaran, se inicializan y se usan.
7. Operadores y tipos
Un operador es un símbolo que relaciona elementos mediante una funcionalidad. Los operadores
indican al compilador que realice una operación. Los elementos que relaciona un operador son los
operandos. Cada operador relaciona operandos de tipos determinados y concretos. Una primera
clasificación de los operadores es la que distingue con cuantos operadores se relaciona un operador.
En Java según este criterio existen tres tipos de operadores:
• Unarios: sólo tienen un operador. Según la funcionalidad del operador se pueden agrupar en las
categorías siguientes:
• Binarios: se relacionan con dos operadores.
• Aritméticos: +, -, *, /, %, ++, --
• Ternarios: se relacionan con tres operadores.
• De asignación: =, +=, -=, *=, /=, %=
• Relacionales: ==, !=, <, >, <=, >=
• Lógicos: ^, &&, ||, !, &, |
• Concatenación: +
• Nivel u orden de bits: &, !, ^, <<, >>
• Especiales: ?, new, [], ( )
Sintaxis del lenguaje Java | TELEFÓNICA / 16
Los operadores aritméticos +, -, * y /, se pueden aplicar a cualquier Los operadores de asignación, cambian el valor de la variable de su
tipo numérico, incluso char. izquierda por el valor de la expresión de su derecha. Los que tienen
asociado un operador matemático, almacenan en el operando de su
Los operadores + y - son también unarios y cambian el signo del izquierda el valor de la expresión de la derecha operado con el valor
operando que les sucede. de la variable de su izquierda.
Para las operaciones lógicas and y or se puede utilizar un símbolo o El operador de concatenación (+) ya se ha utilizado en ejemplo
dos, cuando se realiza la operación booleana con doble símbolo (&& “HolaMundo” utilizando el parámetro de main. este operador
o ||) se denomina “operador de cortocircuito”, , se aplica cuando se devuelve siempre una cadena de caracteres (String). Este operador
concatenan varios operadores booleanos en una misma expresión y transforma a cadena de caracteres el operando que no es de este
su funcionalidades: tipo.
• &&, en cuanto un operando es false, no se sigue evaluando.
Ejemplo:
• ||, en cuanto un operando es true, no se sigue evaluando.
String cadena=” la cadena “;
Ejemplos:
float numero= 3_456_789e-5f;
boolean a=true, b=false ,c=true; boolean booleano= false;
b = a | c; //a: true b: true c: true cadena = numero + cadena + booleano; // “34.56789
c = !a; //a: true b: true c: false cadena false”
b = c && a && b; //a: true b: false c: false
Los demás tipos de operadores se irán estudiando según se avance
c= a ^ !b; //a: true b: false c: false en el desarrollo del contenido del curso.
Sintaxis del lenguaje Java | TELEFÓNICA / 19
Cuando se utilizan dos o más operadores hay que tener en cuenta la • Para cambiar el orden de evaluación según la prioridad se utilizan
prioridad de evaluación. Se aplican las seis siguientes: el operador paréntesis. Siempre se evalúa primero lo que este
encerrado entre paréntesis.
• En una expresión los operadores se evalúan de izquierda a
derecha. • Los operadores de asignación son los que menos prioridad
tienen, siempre son los últimos en evaluarse.
• No todos los operadores tienen la misma prioridad al evaluarse
una expresión. • A igual prioridad se evalúa de izquierda a derecha.
• El orden de evaluación sólo es aplicable para los operadores que
tengan la misma prioridad.
Sintaxis del lenguaje Java | TELEFÓNICA / 20
El orden de prioridad de más a menos en los operadores es el que En las asignaciones los tipos de variable y valor a asignar tienen que
se muestra en la tabla siguiente, mostrando también su forma de ser compatible. Todos los tipos numéricos son compatibles, pero hay
asociarse. Algunos operadores mostrados en la tabla se estudiaran que tener cuidado en los tamaños de los tipos del valor a asignar y
más adelante: el tamaño de la variable que reciba el valor, si este es más pequeño
se pierde precisión.
Operadores Tipo Asociatividad Las conversiones válidas entre tipos numéricos son las que se
indican en la imagen siguiente:
[] . () y llamada a
método Especiales De izquierda a derecha
! ~ ++ -- +(unario)
Unarios, moldeo char
-(unario) (moldeo) De derecha a izquierda
new y creación
*/% Aritméticos De izquierda a derecha
+- Aritméticos De izquierda a derecha
<< >> >>> Nivel de bits De izquierda a derecha byte short int long
Cuando se relacionan en expresiones, valores numéricos con Estas conversiones son todas implícitas, pero también se pueden
operadores aritméticos, también hay que tener en cuenta las realizar conversiones de forma explícita. Se realizan utilizando la
siguientes reglas: sintaxis siguiente:
• Si alguno de los operandos es double, el otro se convierte a
variable_destino = (tipo_destino) variable_origen;
double.
• Si ninguno es double, pero uno es float, el otro se convierte a A esta operación se le conoce como casting o estrechamiento y,
float. aunque en algunos casos puede provocar una pérdida de datos, no
se producirán errores en tiempo de ejecución.
• Si ninguno es double o float, pero uno es long, el otro se convierte
a long.
Ejemplo:
• En cualquier otro caso se convierten a int.
long l=100;
byte b;
b=(byte)l;
Sintaxis del lenguaje Java | TELEFÓNICA / 22
El flujo para introducir o producir información con el teclado es “in”. Otras funciones de Scanner para leer información son los siguientes:
La formas más sencilla de utilizarlo es a través de un objeto de la
• next(), lee como String lo tecleado hasta encontrar un espacio en
clase Scanner. En el ejemplo siguiente se muestra como introducir
blanco o fin de línea.
una cadena en un String con los caracteres tecleados hasta que se
pulsa la tecla “Enter”: • nextXXX(), donde XXX puede ser uno de los tipos primitivos del
lenguaje, excepto char. Lee el valor del tipo correspondiente. Si
el valor leído no es del tipo adecuado se produce la excepción
//Se crea objeto Scanner para el flujo “in”
InputMismatchException, por tanto habrá que estar seguro que
Scanner teclado = new Scanner(Sytem.in); lo que se ha teclado se corresponde con el tipo adecuado de la
función next.
//La función nextLine de Scanner devuelve todos los
//caracteres teclados hasta el caracter “fin de línea” En realidad las funciones next, leen del “buffer” asociado al objeto
Scanner, todo lo tecleado se almacena en dicho buffer y este se va
String cadena = teclado.nextLine(); vaciando de acuerdo con lo que se va leyendo con las funciones next.
• La cabecera o firma, en la que se define el tipo que devuelve, • El bloque de sentencias que se ejecutan, siempre encerrado
el nombre de la función y la lista de parámetros. También se entre llaves, { y }.
incluyen en esta parte el ámbito de acceso y otros modificadores,
• El valor devuelto, es el resultado de la expresión que se codifique
como el ya mencionado static.
a la derecha de la sentencia return. Si la función no devuelve
ningún valor, no hace falta incluir ninguna sentencia return.
La sintaxis puede ser esta que se indica a continuación:
Dentro de una función puede haber más de un return, porque
dependiendo de ciertas condiciones la función devolverá unos
<acceso> <funcionalidad> <tipo_devuelto> <nombre_
valores u otros.
funcion>(< parametros>)
• Los paréntesis son obligatorios aunque la lista este vacía.
Sintaxis del lenguaje Java | TELEFÓNICA / 26
Una función es un ámbito que tiene como duración, desde que es La llamada a una función tiene que estar conforme a su cabecera
llamada hasta que retorna el valor en la sentencia en la que fue o firma, indicando el nombre y entre paréntesis la lista de valores
llamada. Todas las variables y objetos que se creen dentro de este compatibles con los tipos de los parámetros. La funciones tienen
ámbito son liberados de memoria cuando la función finaliza. Por que ser llamadas donde se espere un valor del tipo que retorna la
eso todos los identificadores declarados dentro de una función son función. La siguiente imagen, muestra como se llama a la función
locales a dicha función. Por tanto una función define un ámbito local. del ejemplo anterior.
11. Comentarios
Los comentarios son anotaciones ignoradas por el compilador que ayudan a los programadores a
documentar y a explicar el código, para que otros lo entiendan y para facilitar los cambios o mejoras.
• Etiquetas de atributo (variable miembro): Se debe poner antes Un ejemplo de código con comentarios para javadoc es el siguiente:
de la declaración del atributo: