0% encontró este documento útil (0 votos)
2 vistas134 páginas

Identificacion de Los Elementos de Un Programa

Cargado por

ferran2gf
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
2 vistas134 páginas

Identificacion de Los Elementos de Un Programa

Cargado por

ferran2gf
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 134

1

PROGRAMACIÓN

TEMA 1. IDENTIFICACIÓN
DE LOS ELEMENTOS DE UN
PROGRAMA INFORMÁTICO
2

INDICE (1)
• 1. Lenguajes de programación: Lenguajes
estáticos y dinámicos.
• 2. Lenguaje de programación JAVA
2.1 Tecnologías JAVA
2.2 JAVA SE
• 3. Compilador.
• 4. Entorno de desarrollo.
• 5. Estructura y bloques fundamentales.
• 6. Variables
3

INDICE (2)
• 7. Tipos de datos.
• 8. Literales.
• 9. Constantes.
• 10. Operadores y expresiones.
• 11. Conversiones de tipo (Castings).
• 12. Comentarios y documentación.
• 13. Secuencias de escape
• 14. Errores a evitar
• 15. Webografía
4

1. Lenguajes de programación
(1)
• Un lenguaje de programación permite al
programador, escribir una instrucciones o
secuencia de órdenes en forma de algoritmos
con el fin de controlar el comportamiento físico o
lógico de una computador.

Al conjunto de órdenes escritas mediante un


lenguaje de programación se le denomina
programa.
5

1. Lenguajes de programación
(2)
Ejemplo de programa: MiPrimeraAplicacion.java

public class MiPrimeraAplicacion {

public static void main (String[] args) {


System.out.println(“CFGS DAM");
System.out.println(“Primera clase");
}

}
6

1. Lenguajes de programación
(3)
Lenguajes estáticos VS dinámicos

Lenguaje estático: los tipos de las variables tienen que


definirse en tiempo de compilación para que el
programa funcione.

• Si definimos una variable de tipo String esta solo


podrá contener instancias de este tipo, y si no es así,
el compilador nos mostrará un error.

• Lo mismo puede pasar cuando llamamos a un método


o función. Si no existe o hemos escrito mal el nombre,
el compilador nos mostrará un error y no nos dejará
ejecutar el programa hasta que lo arreglemos.
7

1. Lenguajes de programación
(4)
Lenguajes estáticos y dinámicos

Lenguajes dinámicos: los tipos de las


variables se definen en tiempo de ejecución.

• En los lenguajes dinámicos, lo que cuenta es


que si te equivocas en algo, casi siempre lo
vas a ver en tiempo de ejecución, ya que no
tienes el "paracaídas del compilador". Si
pones mal el nombre de una función, fallará
cuando vayas a usarla.
8

2. Lenguajes de programación JAVA


(1)

• Surge en 1995 de manos de Sun Microsystems.


• Su sintaxis deriva en gran medida de C y C++
• Licencia GNU GPL (Licencia Pública General)

9

2. Lenguajes de programación JAVA


(2)
1) Lenguaje de programación orientado a
objetos: dentro de los objetos se encapsulan
datos que son accedidos mediante métodos.

2) Permite el desarrollo de aplicaciones básicas,


empresariales y aplicaciones móviles.

3) Independiente de la plataforma: soporta los


sistemas operativos Windows, Linux, MacOS y a
su vez distintos tipos de dispositivos.
Cuando compilamos código fuente Java, no se
genera una código máquina específico (0 y 1) sino
que se generan bytecodes los cuales son
interpretados por la JVM (Java Virtual Machine).
10

2. Lenguajes de programación JAVA


(3)
4) Sencillo: es un lenguaje que está enfocado para ser
fácil de aprender (Y por eso lo vemos en este curso).

5) Seguro: los programas se ejecutan dentro de la JVM,


de tal modo que no pueden acceder a nada que no esté
dentro de esta JVM

6) Arquitectura neutral: independientemente de que se


ejecute en un arquitectura de 32 o 64 bits, los tipos de
datos ocupan siempre lo mismo.

7) Multihilo: Java nos permite la programación


concurrente, de manera que un programa puede abrir
diferentes hilos de ejecución.
11

2. Lenguajes de programación JAVA


(4)
8) Robusto: controla las situaciones de error en los
procesos de compilación y de ejecución, reduciendo el
riesgo de fallo.

Además Java realiza un control de la memoria,


liberándola mediante un “garbage collector”.

9. Interpretado: los bytecodes son interpretados en


tiempo real a código máquina.

10. Distribuido: Java está pensado para ser ejecutado


en arquitecturas distribuidas, como puede ser Internet.
12

2.1 Tecnologías JAVA (1)


• Dentro de Java existen diferentes tecnologías
de desarrollo, cada una enfocada a un fin
diferente (ya sea la base del lenguaje Java,
Java para el ámbito empresarial, Java para el
desarrollo de aplicaciones móviles,…)

• Cada una de las tecnologías de desarrollo del


lenguaje Java contiene:
- Java Virtual Machine (JVM)
- API de desarrollo de la plataforma: las librerías
con funcionalidades que nos ofrece Java
13

2.1 Tecnologías JAVA (2)


• La aplicación se ejecuta dentro de la Java Virtual
Machine (JVM) y tiene capacidad de acceder al
API.

Las tecnologías que existen para la plataforma


Java son:

JavaSE (Java Standard Edition)


JavaEE (Java Enterprise Edition)
JavaME (Java Mobile Edition)
JavaCard
14

2.2 JAVA SE (1)


• Java SE es la plataforma estándar en la cual se recogen
todas las funcionalidades básicas del lenguaje.

• Dentro de las funcionalidades básicas de Java encontramos:

- el uso de colecciones,
- acceso a ficheros con Java IO
- acceso a bases de datos con JDBC,
- librerías para el desarrollo de aplicaciones de escritorio o
web como Swing o JavaFX,
- librerías para la fecha y hora,
- posibilidad de crear aplicaciones multi-hilo,
- capacidades para realizar conexiones en red,
- manejo de contenido XML…
15

2.2 JAVA SE (2)


• Si estás empezando con Java lo más normal es
que te bajes las librerías de Java SE.

• Puedes consultar todo el contenido de Java SE:

https://docs.oracle.com/javase/8/
16

3. Compilador (1)
• Es un Software que traduce un programa escrito en un
lenguaje de programación de alto nivel (C / C ++, JAVA,
etc.) en lenguaje de máquina.

• Un compilador generalmente genera lenguaje


ensamblador primero y luego traduce el lenguaje
ensamblador al lenguaje máquina.

• Una utilidad conocida como «enlazador» combina todos


los módulos de lenguaje de máquina necesarios en un
programa ejecutable que se puede ejecutar en la
computadora.
17

3. Compilador (2)
18

4. Entorno de desarrollo (1)


• Un entorno de desarrollo o en inglés IDE (Integrated
Development Enviroment) es una aplicación informática
que proporciona servicios integrales para facilitarle al
programador el desarrollo de software (Maximizan la
productividad del programador).

Posee:
• Un editor de código fuente (Resalto de colores de las
palabras clave)
• Autocompletado inteligente de código
• Compilador (NetBeans y Eclipse)
19

4. Entorno de desarrollo (2)


20

4. Entorno de desarrollo (2)

Entorno Fabricante
Eclipse Eclipse Fundation
NetBeans Sun Microsystems
Jbuilder Borland
JDeveloper Oracle
21

4. Entorno de desarrollo (3): Eclipse


22

4. Entorno de desarrollo (4):


Netbeans
23

4. Entorno de desarrollo (4): JBuilder


24

5. Estructura y bloques fundamentales


(1)
• El código fuente de un programa en Java debe estar
escrito en un fichero de texto con extensión ".java".
Para crear o editar el fichero debe utilizarse un editor de
texto sin formato como el bloc de notas de Windows, el
editor de texto de Linux, o alguno de los programas y
entornos de desarrollo específicos para la creación de
aplicaciones.
• A continuación puedes ver el programa más sencillo
que se puede hacer en Java. El resultado que se obtiene
al ejecutar este programa es que se muestra en pantalla
el mensaje "Hola Mundo!". Este tipo de programa es el
que se suele crear habitualmente cuando un programador
se inicia en un lenguaje de programación.
25

5. Estructura y bloques fundamentales


(2)
• Nombre del archivo: HolaMundo.java

public class HolaMundo {


public static void main(String args[]) {
System.out.println("Hola Mundo!");
}
}

Hay que respetar las “Java Code Conventions”:


Identación, las clases empiezan siempre con mayúscula,
los métodos empiezan con minúscula y si son la
combinación de varias palabras, la palabra con la que se
unen se empieza por mayúscula…
26

5. Estructura y bloques fundamentales


(3)
• La primera línea de código indica el nombre de la clase
Java que estamos desarrollando. Todos los programas
Java están formados por una o más clases.

• Es importante tener en cuenta que el nombre de la clase


debe corresponder exactamente con el nombre del
fichero de texto que contiene el código fuente. En el
caso de este ejemplo, el código debe almacenarse en un
fichero de texto denominado "HolaMundo.java".

• public class HolaMundo


27

5. Estructura y bloques fundamentales


(4)
• Nombre del archivo: HolaMundo.java

public class HolaMundo {

public static void main(String args[]) {


System.out.println("Hola Mundo!");
}

}
28

5. Estructura y bloques fundamentales


(5)
• Las llaves { } que puedes observar en el código indican el
inicio y fin de cada bloque. Siempre deben ir en pareja, es
decir, que por cada llave de apertura debe exitir siempre
una llave de cierre.

• La siguiente línea realiza la declaración del método


llamado "main". Cada clase Java que forma una
aplicación contendrá uno o varios métodos, que son
bloques de código que permiten tenerlo más
organizado. Si una determinada clase Java contiene un
método con el nombre "main", la ejecución de dicha clase
comenzará por el código contenido en ese método.

• public static void main(String args[])


29

5. Estructura y bloques fundamentales


(6)
• Nombre del archivo: HolaMundo.java

public class HolaMundo {

public static void main(String args[]) {


System.out.println("Hola Mundo!");
}

}
30

5. Estructura y bloques fundamentales


(7)
• La última línea de código del ejemplo, contiene la
sentencias que se van a ejecutar.

• En este caso tan sólo hay una sentencia, pero podría


haber todas las que se quisieran. Aquí en concreto se
utiliza la llamada a System.out.println() que permite
mostrar en pantalla una serie de caracteres. El texto
mostrado es el indicado entre comillas: "Hola Mundo!".

• System.out.println("Hola Mundo!");
31

5. Estructura y bloques fundamentales


(8)
• Nombre del archivo: HolaMundo.java

public class HolaMundo {

public static void main(String args[]) {


System.out.println("Hola Mundo!");
}

Más adelante veremos que la estructura que acabamos de


presentar es muy básica y que puede complicarse
significativamente, puesto que no se ha incluido la declaración
de variables, constructores o métodos.
32

public class ClassExampe {


String name;
String course;

public String getName ( ) {


return name;
}

public void setName (String studentName) {


name = studentName;
}

public String getCourse ( ) {


return course;
}

public void setCourse (String studentCourse) {


course = studentCourse;
}

}
33

6. Variables (1)

• A) ¿Qué es una variable?

Una variable es el nombre dado a una ubicación de


memoria.

Es la unidad básica de almacenamiento en un programa.

El valor almacenado en una variable se puede cambiar


durante la ejecución del programa.
34

6. Variables (2)

• B) ¿Cómo declarar variables?

Podemos declarar variables en Java de la siguiente


manera.
35

6. Variables (3)
• Tipo de dato: tipo de datos que se pueden almacenar en esta
variable (int, char, string… ya los veremos más adelante).
• Nombre_variable: nombre dado a la variable.
• Valor: es el valor inicial almacenado en la variable.

Ejemplos:

float simpleInterest; //Declarando variable float


int time = 10, speed = 20; //Declarando e inicializ. la variable
integer
char var = 'h'; // Declarando e Inicializando la variable character

• Por ejemplo, el tipo de dato String se puede especificar para


permitir que una variable llamada “mensaje” contenga texto con
esta declaración:
36

6. Variables (4)
Como se desprende de los anteriores ejemplos, una
variable se declara de la forma:

tipo_dato nombre_variable;

Un nombre de variable válido debe cumplir las siguientes


reglas:

• Debe comenzar por un carácter alfabético.


• No puede contener espacios, signos de puntuación o
secuencias de escape.
• No puede utilizarse como nombre de variable una palabra
reservada, ya que tienen un significado especial en el
lenguaje Java.
37
38

6. Variables (5)
• También es posible declarar en una misma instrucción
varias variables de igual tipo:

tipo variable1, variable2, variable3;

• A continuación, se muestran ejemplos de declaraciones


de variables válidas y no válidas.
39

Ejercicio: variables válidas y NO validas


int k, cod;

boolean 7q;
// No válida: comienza por un número

int num uno;


// No valida: contiene un espacio

long p1;
char cad_2;
long class;
// No valida: utiliza una palabra reservada
40

6. Variables (6)
• C) Asignación

Una vez declarada una variable se le puede asignar un valor


siguiendo el formato:

Variable = expresión;

dónde expresión puede ser cualquier expresión Java que


devuelva un valor acorde con el tipo de datos de la variable:
int p, k, v;
p = 30;
k = p + 20;
v = k * p;
41

6. Variables (7)
También es posible asignar un valor inicial a una variable en
la misma instrucción de declaración:

int num=5; //Declara la variable y la inicializa


int p, n=7; //Declara dos variables y sólo inicializa
// la segunda
42

6. Variables (8)
• Por ejemplo, el tipo de dato String se puede especificar para
permitir que una variable llamada “mensaje” contenga texto con
esta declaración:

class PrimeraVariable {

public static void main ( String[] args ) {


String mensaje = "Valor inicial";
System.out.println (mensaje);

mensaje = "Valor modificado" ;


System.out.println (mensaje);
}
}
43

6. Variables (9)

• Salida por pantalla:

Valor inicial
Valor modificado
44

Ejercicio variables: Intercambio (1)


• Escribir un algoritmo donde, donde se definan 2 variables
enteras A y B asignadas con un valor (A = 2 y B = 3). En
dicho algoritmo habrá que conseguir intercambiar el valor
de dichas variables, es decir, que A valga 3 y B valga 2.

• Realiza primero dicho algoritmo en pseudocódigo y


tradúcelo posteriormente al lenguaje de programación
Java.

• (Nota: Deberás utilizar una variable auxiliar aux)


45

6. Variables (10)
• D) Tipos de variables

Según donde se declare una variable esta puede ser de


varios tipos. Es lo que conocemos como alcance de una
variable.

Hay tres tipos de variables en Java:


• i) Variables locales
• ii) Variables de instancia (campo o atributo)
• iii) Variables estáticas

Ahora aprendamos sobre cada una de estas variables en


detalle.
46

6. Variables (11): variables locales


• i) Variables locales: Una variable definida dentro de un
bloque, método o constructor se llama variable local.

• Estas variables se crean cuando el bloque ingresado o


método se llama y destruye después de salir del bloque o
cuando la llamada regresa del método.

• El alcance de estas variables solo existe dentro del


bloque en el que se declara la variable, es decir, podemos
acceder a estas variables solo dentro de ese bloque.

• Ejemplo:
47

6. Variables (11): variables locales


public class StudentDetails {

public void StudentAge() {


//variable local age
int age = 0;
age = age + 5;
System.out.println("La edad del estudiante es : " + age);
}

public static void main(String args[]) {


StudentDetails obj = new StudentDetails();
obj.StudentAge();
}

}
48

6. Variables (12): variables de instancia


• ii) Variables de instacia: Las variables de instancia son
variables no estáticas y se declaran en una clase fuera de
cualquier método, constructor o bloque. (**Volver aquí
dentro de 2 meses y leer esto de nuevo).

• Como las variables de instancia se declaran en una clase,


estas variables se crean cuando un objeto de la clase se
crea y se destruye cuando se destruye el objeto.

• A diferencia de las variables locales, podemos usar


especificadores de acceso* para variables de instancia. Si
no especificamos ningún especificador de acceso, se
utilizará el especificador de acceso predeterminado.
• Ejemplo:
49

6. Variables (13): variables de instancia


import java.io.*;
class Points {

//Estas variables son variables de instancia.


//Estas variables están en una clase y no están dentro
de ninguna función/método

int engPoints;
int mathsPoints;
int phyPoints;
}
50

class PointsDemo {

public static void main(String args[]) {

//primer objeto Points


obj1 = new Points();
obj1.engPoints = 5;
obj1.mathsPoints = 8;
obj1.phyPoints = 9;

//segundo objeto Points


obj2 = new Points();
obj2.engPoints = 80;
obj2.mathsPoints = 60;
obj2.phyPoints = 85;
51

//mostrando puntos para el primer objeto


System.out.println("Puntos para el 1er objeto:");
System.out.println(obj1.engPoints);
System.out.println(obj1.mathsPoints);
System.out.println(obj1.phyPoints);

//mostrando puntos para el segundo objeto


System.out.println("Puntos para el 2º objeto:");
System.out.println(obj2.engPoints);
System.out.println(obj2.mathsPoints);
System.out.println(obj2.phyPoints);
}
}
52

6. Variables (14): variables de instancia


• Salida:
Puntos para el primer objeto: 5 8 9
Puntos para el segundo objeto: 80 60 85

Como puede ver en el programa anterior, las variables


engPoints, mathsPoints, phyPoints; son variables de
instancia.
En caso de que tengamos varios objetos como en el
programa anterior, cada objeto tendrá sus propias copias
de variables de instancia.
Del resultado anterior se desprende que cada objeto
tendrá su propia copia de la variable de instancia.
53

*Especificadores de acceso (1)


• Un especificador (modificador) de acceso o alcance es una
palabra clave (reservada) que nos permite controlar nivel de
alcance que tiene cada variable, método o clase.
• Existen 5: public, protected, private, static, final.

• public establece un nivel de acceso total, es decir una clase


public puede ser usada por otras clases del mismo paquete y
de otros paquetes no relacionados, lo mismo para
los métodos y variables.

• public es el especificador de acceso mas utilizado en


estudiantes ya que no nos enfrentamos a la dificultad de tener
que determinar que se puede y que no se puede utilizar en un
clase.
54

*Especificadores de acceso (2)


• private establece un nivel restringido de acceso, en el cual los
miembros declarados como tal solo son accesibles dentro de
la clase, aunque la clase herede de esta última. Las variable
y métodos private son usados cuando los clientes de una
clase no deben preocuparse (ni les debe importar) como
se efectúan las acciones claves de un programa. Establecer
miembros private establece el mayor nivel de seguridad.

• protected establece un nivel de acceso intermedio entre


public y private en el que los miembros solo
son accesibles por clases y métodos dentro del mismo
paquete.
55

*Especificadores de acceso (3)


• static: el modificador static crea variables y métodos de clase
(variables de clase). Estos objetos pueden ser llamados
desde cualquier parte de la clase modificando sus valores
reales de forma definitiva.
La diferencia con una variable normal o variable de instancia es
que cuando llamamos a una variable de instancia (normal)
cambiamos su valor solo en ese instancia (metodos, etc..) en
cambio una variable estática cambia de valor definitivamente
(actualizamos su valor real desde cualquier parte del programa).

• final: el modificador final, crea una constante. En realidad en


java no existen las constantes, pero final hace que las
variables imiten su comportamiento. Cualquier intento por
modificar una variable final creara un error en tiempo de
ejecución.
Un ejemplo de final, es la variable PI, de la clase Math
56

*Especificadores de acceso (4)


• Un ejemplo de final, es la variable PI, de la clase Math.

class Generalidades {

public static void main(String[]agrs) {

System.out.println("El valor de Pi es"+ Math.PI);

// Intentamos cambiar el valor de PI.


// En la API de Java PI es una variable static
System.out.println("nuevo valor de Pi"+(Math.PI = 5));

} // fin del metodo main


} // Fin de la clase
57

*Especificadores de acceso (5)


• Esta seria la salida del compilador:

El valor de Pi es3.141592653589793
Exception in thread "main" java.lang.RuntimeException:
Uncompilable source code - cannot assign a value to final
variable PI at Ejemplo.Generalidades.main
(Generalidades.java:12)
58

6. Variables (15): variables estáticas


• iii) Variables estáticas: Las variables estáticas también
se conocen como variables de clase.

• Estas variables se declaran de forma similar a las


variables de instancia, la diferencia es que las variables
estáticas se declaran utilizando la palabra clave
(especificador de acceso static) static dentro de una clase
fuera de cualquier constructor o bloque de métodos.

• A diferencia de las variables de instancia, solo podemos


tener una copia de una variable estática por clase,
independientemente de cuántos objetos creemos.
59

6. Variables (16): variables estáticas


• iii) Variables estáticas:

• Las variables estáticas se crean al inicio de la ejecución


del programa y se destruyen automáticamente cuando
finaliza la ejecución.

• Para acceder a variables estáticas, no necesitamos crear


ningún objeto de esa clase, simplemente podemos
acceder a la variable como:

• nombre_clase.nombre_variable;
• Ejemplo:
60

import java.io.*;

class Emp {
// salario como variable estática
public static double salary;
public static String name = "Alex";
}

public class EmpDemo {

public static void main(String args[]) {


//acceder a la variable estática sin objeto
Emp.salary = 1000;
System.out.println(Emp.name + " salario promedio de: " +
Emp.salary);
}
}
61

6. Variables (17): variables estáticas


• iii) Variables estáticas:

• Salida:
Alex tiene un salario promedio de: 1000.0
62

6. Variables (18):

Variables de instancia VS Variables estáticas

• Cada objeto tendrá su propia copia de la variable de


instancia, mientras que solo podemos tener una copia de una
variable estática por clase, independientemente de cuántos
objetos creemos.

• Los cambios realizados en una variable de instancia utilizando


un objeto no se reflejarán en otros objetos, ya que cada objeto
tiene su propia copia de la variable de instancia.
• En caso de estática, los cambios se reflejarán en otros objetos
ya que las variables estáticas son comunes a todos los objetos
de una clase.
63

6. Variables (19):

Variables de instancia VS Variables estáticas

• Podemos acceder a variables de instancia a través de


referencias de objetos y se puede acceder directamente
a las variables estáticas usando el nombre de clase.

• En resumen, la sintaxis para variables estáticas y de


instancia es:
64

class Example {

//variable estática
static int a;

//variable de instancia
int b;
}
65

7. Tipos de datos (1)

Java es un lenguaje de tipado estático. Es decir, se define


el tipo de dato de la variable a la hora de definir esta.

Es por ello que todas las variables tendrán un tipo de dato


asignado. Java soporta ocho tipos de datos primitivos.

Byte short
Int long
Float double
Boolean char
66

7. Tipos de datos (2)

• Entre los ocho tipos de datos primitivos no encontramos


ninguno que represente una cadena de caracteres, el
motivo es que en Java éstas se tratan mediante objetos
(que aun no hemos visto y que veremos más adelante),
concretamente, objetos de la clase String.
67

7. Tipos de datos (3)


Tipo básico Tamaño
byte 8 bits
short 16 bits
int 32 bits
long 64 bits
char 16 bits
float 32 bits
double 64 bits
boolean 1 bit
68

7. Tipos de datos (4)

• byte: Representa un tipo de dato de 8 bits con signo. De tal


manera que puede almacenar los valores numéricos de
-128 a 127 (ambos inclusive).

• short: Representa un tipo de dato de 16 bits con signo. De


esta manera almacena valores numéricos de -32.768 a
32.767.

• int: Es un tipo de dato de 32 bits con signo para almacenar


valores numéricos. Cuyo valor mínimo es -231 y el valor
máximo 231-1.
69

7. Tipos de datos (5)

• long: Es un tipo de dato de 64 bits con signo que almacena


valores numéricos entre -263 a 263-1

• float: Es un tipo dato para almacenar números en coma


flotante con precisión simple de 32 bits.

• double: Es un tipo de dato para almacenar números en


coma flotante con doble precisión de 64 bits.

• boolean: Sirve para definir tipos de datos booleanos. Es


decir, aquellos que tienen un valor de true o false. Ocupa 1
bit de información.
70

7. Tipos de datos (6)

• char: Es un tipo de datos que representa a un carácter


Unicode sencillo de 16 bits.

• Hay un tipo de dato String para el manejo de cadenas que


no es en sí un tipo de dato primitivo. Con el tipo de dato
String podemos manejar cadenas de caracteres separadas
por dobles comillas. System.out.println(“Hola mundo”);

• El String no es un tipo de dato primitivo del lenguaje Java,


pero su uso es igual de importante que el de los tipos de
datos revisados aquí. Veremos más adelante en detalle, el
uso del tipo String.
71

8. Literales (1)
• Los valores literales en Java son aquellos que podemos
asignar a las variables.

• Dependiendo del tipo de variable podremos asignar unos


valores u otros. Tenemos:

• A) Literales de enteros
• B) Literales decimales
• C) Literales de caracteres y cadenas
• D) Literales subrayados
72

8. Literales (2): A) Literales de enteros


• Los enteros que podemos utilizar serán byte, short, int y
long. Los literales que les asignemos siempre será un
número entero.

byte variableByte = 12;


short variableShort = 12;
int variableInt = 12;
long variableLong = 12;
73

8. Literales (3): B) Literales de decimales


• Los dos tipos de datos de decimales que podemos
manejar son float y double. Para estos casos la
representación del literal de decimales serán con
separación de un punto entre la parte entera y la parte
decimal.

float variableFloat = 12.2;


double variableDouble = 12.2;
74

8. Literales (4): B) Literales de decimales


• De igual manera podemos utilizar las letras F o f para el
tipo de dato float y D o d para el tipo de dato double.
Siempre, por legilibilidad se recomienda la letra en
mayúsculas.

float variableFloat = 12.2F;


double variableDouble = 12.2D;
75

8. Literales (5): C) Literales de caracteres y


cadenas
• Tanto los caracteres del tipo de dato char, como las cadenas
del tipo de datos String contienen caracteres Unicode
UTF-16.

• Los caracteres UTF-16 se pueden escribir directamente en la


cadena o si nuestro editor de textos no nos permite el manejo
de esa codificación los podemos poner escapados en el
formato.

'uCODIGOUNICODE'

• Por ejemplo la letra como la ñ se escaparía de la siguiente


forma:
'u00F1'
76

8. Literales (6): C) Literales de caracteres y


cadenas
• Para utilizarla en una cadena de texto “España”
podríamos poner

String pais = "Espau00F1a";

• Para los caracteres utilizaremos comillas simples para


delimitarlos, mientras que para las cadenas utilizaremos
comillas dobles.

char variableChar = ‘a’;


String variableString = “cadena”;
77

8. Literales (7): C) Literales de caracteres y


cadenas
• Además en las cadenas podemos utilizar una serie de
secuencias de escape, las cuales empiezan por una barra
invertida y siguen con un modificador:

Secuencia Significado
b retroceso
t tabular la cadena
n salto de línea
f form feed
r retorno de carro
' comilla simple
" comilla doble
\ barra invertida
78

8. Literales (7): D) Literales subrayados


• A partir de la versión 1.7 de Java se puede utilizar el
subrayado para realizar separaciones entre números para
una mejor visualización.

• A todos los efectos el valor del número es como si no


existiese el carácter de subrayado.

long tarjetaCredito = 1234_5678_9012_3456L;


long mascaraBinaria = 011010010_01101001_10010100;
79

8. Literales (8): D) Literales subrayados


• No podremos utilizar el literal de subrayado al principio o
final del número, alrededor de un punto decimal, ni entre el
número y un literal de entero o decimal (D, F o L).
80

9. Constantes (1)
• La palabra clave “final” es un modificador que se puede usar
al declarar variables para evitar cualquier cambio posterior
en los valores que inicialmente se les asignaron.

• Esto es útil cuando se almacena un valor fijo en un programa


para evitar que se altere accidentalmente.

• Las variables creadas para almacenar valores fijos de esta


manera se conocen como “constantes“, y es convencional
nombrar constantes con todos los caracteres en
mayúsculas, para distinguirlas de las variables regulares.
Los programas que intentan cambiar un valor constante no
se compilarán, y el compilador javac generará un mensaje de
error.
81

class Constants {
public static void main ( String[] args ) {
//inicializamos tres constantes enteras
final int CONSTANTE1 = 6 ;
final int CONSTANTE2 = 1 ;
final int CONSTANTE3 = 3 ;

//declaramos variables regulares del tipo int


int td,pat,fg,total;

//Inicializamos las variables


regulares td = 4*CONSTANTE1;
pat = 3*CONSTANTE2;
fg = 2*CONSTANTE3;

total = (td+pat+fg) ;

System.out.println("Resultado: " + total);


}
}
82

10. Operadores (1)


• En esta sección vamos a ver los:
• A) Operadores de asignación
• B) Operadores aritméticos.
• C) Operadores unarios
• D) Operadores de igualdad
• E) Operadores relacionales
• F) Operadores condicionales
83

10. Operadores (2): Operador de Asignación

• El operador Java más sencillo es el operador de


asignación. Mediante este operador se asigna un valor a
una variable. El operador de asignación es el símbolo igual
(=).

• La estructura del operador de asignación es:


variable = valor;
84

10. Operadores (3): Operador de Asignación

• Así podemos asignar valores a variables de tipo entero,


cadena,…

int numero = 3;
String cadena = "Hola Mundo";
double decimal = 4.5;
boolean verdad = true;
85

10. Operadores (4): Operadores aritméticos

• Los operadores aritméticos en Java son los operadores que


nos permiten realizar operaciones matemáticas: suma, resta,
multiplicación, división y resto.

• Los operadores aritméticos en Java son:

Operador Descripción
Operador de Suma. Concatena
+
cadenas para la suma de String
- Operador de Resta
* Operador de Multiplicación
/ Operador de División
% Operador de Resto
86

10. Operadores (5): Operadores aritméticos

• Los operadores aritméticos en Java los utilizaremos entre


dos literales o variables y el resultado, normalmente lo
asignaremos a una variable o bien lo evaluamos.

variable = (valor1|variable1) operador (valor2|variable2);

• Así podemos tener los siguientes usos en el caso de que


queramos asignar su valor.
87

10. Operadores (6): Operadores aritméticos

• suma = 3 + 7; // Retorna 10
• resta = 5 - 2; // Retorna 3
• multiplicacion = 3 * 2; // Retorna 6
• division = 4 / 2; // Retorna 2
• resto = 5 % 3; // Retorna 2

Ten en cuenta que pueden ser valores o variables:

• suma = vble1 + 3;
// Sumamos 3 al valor de la variable vble1
• resta = vble1 - 4;
// Restamos 4 al valor de la variable vble1 ...
88

10. Operadores (7): Operadores unarios


• Los operadores unarios en Java son aquellos que solo
requieren un operando para funcionar.
• Los operadores unitarios que tenemos en Java son:

Operador Descripción
Operador unario suma. Indica un
+
número positivo.
Operador unario resta. Niega una
-
expresión.
Operador de incremento. Incrementa
++
el valor en 1.
Operador de decremento. Decrementa
--
el valor en 1.
Operador de complemento lógico.
!
Invierte el valor de un booleano
89

10. Operadores (8): Operadores unarios


Operadores unarios de suma o resta
• Los operadores unitarios de suma o resta son muy sencillos
de utilizar. En el caso del operador unitario suma su uso es
redundante. Con el operador unitario resta podemos invertir
un valor.

• Por ejemplo podríamos tener el siguiente código:


int valor = 2;
System.out.println(-valor);
// Imprimirá por pantalla un -2
90

10. Operadores (9): Operadores unarios


Operadores unarios de suma o resta
• Los operadores unitarios de suma o resta son muy sencillos
de utilizar. En el caso del operador unitario suma su uso es
redundante. Con el operador unitario resta podemos invertir
un valor.

• Por ejemplo podríamos tener el siguiente código:


int valor = 2;
System.out.println(-valor);
// Imprimirá por pantalla un -2
91

10. Operadores (10): Operadores


unarios
Operadores de incremento y decremento
• Los operadores de incremento se pueden aplicar como
prefijo o como sufijo (normalmente los ponemos de sufijo).

++ variable;
variable ++;
-- variable;
variable --;

• En todos los casos el valor de la variable acabará con una


unidad más (para el operador de incremento) o con una
unidad menos (para el operador de decremento).
92

10. Operadores (11): Operadores


unarios
Operadores de incremento y decremento

• Si bien si están participando en una asignación hay que tener


¡¡cuidado!! en si utilizamos el operador como prefijo o
como sufijo.

• En el caso de utilizarlo como prefijo el valor de asignación


será el valor del operando más el incremento de la unidad.
• Y si lo utilizamos como sufijo se asignará el valor del
operador y luego se incrementará la unidad sobre el
operando. (Cuidado: Quizás no queríamos hacer esto)
93

10. Operadores (12): Operadores


unarios
Operadores de incremento y decremento

• Es más sencillo verlo en código: suma = ++vble1;

• Sería lo mismo que poner: vble1 = vble1 + 1;


suma = vble1;

• Mientras que si escribimos: suma = vble1++;

• Sería lo mismo que poner: suma = vble1;


vble1 = vble1 + 1;

• Exactamente lo mismo le sucede al operador de decremento, pero


restando una unidad.
94

10. Operadores (13): Operadores


unarios
Operadores de complemento lógico

• El operador de complemento lógico sirve para negar un valor


lógico. Se suele utilizar delante de una operación de
evaluación booleana. Normalmente en sentencias de
decisión o bucles.

• La estructura es: ! (expresion)

• Si la expresión era un true la convierte en false y si era false


la convierte en true.
95

10. Operadores (14): Operadores


unarios
Operadores de complemento lógico

• Podemos verlo en el siguiente ejemplo:

int vble1 = 2;
int vble2 = 3;
if !(vble1 > vble2) {
System.out.println("vble1 es más pequeña que la vable 2");
}

• Como podemos observar el valor de la expresión evaluada


es convertido.
96

10. Operadores (15): Operadores de


igualdad
• Los operadores de igualdad y relacionales en Java son
aquellos que nos permiten comparar el contenido de una
variable contra otra atendiendo a si son variables con un
valor igual o distinto o bien si los valores son mayores o
menores.

• El listado de operadores de igualdad en Java es:

Operador Descripción
== igual a
!= no igual a
97

10. Operadores (16): Operadores de


igualdad
• Mediante los operadores de igualdad podemos comprobar si
dos valores son iguales (operador ==) o diferentes
(operador !=).

• La estructura de los operadores de igualdad es la siguiente:


vble1 == vble2

vble1 != vble2
98

10. Operadores (17): Operadores de


igualdad
• Podemos utilizar estos operadores de igualdad en Java de la
siguiente forma:

int vble1 = 5;
int vble2 = 3;
if (vble1 == vble2)
System.out.println("Las variables son iguales");

if (vble1 != vble2)
System.out.println("Las variables son distintas");
99

10. Operadores (18): Operadores


relacionales
• Permiten comprobar si un valor es mayor que (operador >),
menor que (operador <), mayor o igual que (>=) y menor o
igual que (<=).

Operador Descripción
> mayor que
>= mayor o igual que
< menor que
<= menor o igual que
100

10. Operadores (19): Operadores


relacionales
• Al final el operador lo valida entre dos valores o variables con
la estructura:
vble1 > vble2
vble1 < vble2
vble1 >= vble2
vble1 <= vble2

• De esta forma podemos tener un código fuente que nos


ayude a realizar estas validaciones de relación:
101

10. Operadores (19): Operadores


relacionales
int vble1 = 5;
int vble2 = 3;
if (vble1 > vble2)
System.out.println("La vble 1 es mayor que la vble 2");
if (vble1 < vble2)
System.out.println("La vble 1 es menor que la vble 2");
if (vble1 >= vble2)
System.out.println("La vble1 es mayor o igual q la vble2");
if (vble1 <= vble2)
System.out.println("La vble 1 es menor o igual q la vble2");
102

10. Operadores (20): Operadores


condicionales
• Los operadores condicionales en Java son aquellos que
evalúan dos expresiones booleanas.
• Dentro de los operadores condicionales en Java tenemos:

Operador Descripción
&& Operador condicional AND
|| Operador condicional OR
?: Operador Ternario
instanceof Operador instanceof
! Operador lógico NOT
103

10. Operadores (21): Operadores


condicionales
• La estructura de los operadores condicionales en Java es:

(expresion_booleana1 && expresion_booleana2)


(expresion_booleana1 || expresion_booleana2)

• En el caso del operador condicional AND el resultado será


true siempre y cuando las dos expresiones evaluadas sean
true. Si una de las expresiones es false el resultado de la
expresión condicional AND será false.

• Para el operador condicional OR el resultado será true


siempre que alguna de las dos expresiones sea true.
104

10. Operadores (21): Operadores


condicionales
• Los operadores booleanos funcionan mediante la evaluación
por cortocircuito. Es decir, que dependiendo del valor de la
expresión 1 puede que no sea necesario evaluar la expresión
2.

• Para el caso del operador condicional AND, si la primera


expresión es false ya devuelve false sin evaluar la segunda
expresión. Y en el caso del operador condicional OR si la
primera expresión es true ya devuelve true sin evaluar la
segunda expresión.

• Podríamos ver el uso de los operadores condicionales en el


siguiente código:
105

10. Operadores (23): Operadores


condicionales
• Podríamos ver el uso de los operadores condicionales en el
siguiente código:

int vble1 = 5;
int vble2 = 3;
if ((vble1 == 5) && (vble2 == 3))
System.out.println("Las dos vbles mantienen sus valores
iniciales");
if ((vble1 == 5) || (vble2 == 3))
System.out.println("Al menos una vble mantiene su valor
inicial");
106

11. Conversiones de tipo: Castings (1)


• Casting: transformar el tipo de una variable u objeto en otro
diferente al original. Esa trasformación se denomina
“conversión”, “tipado” o “casting”.

• Cuando se asigna valor de un tipo de datos a otro, los dos


tipos pueden no ser compatibles entre sí.

• Si los tipos de datos son compatibles, entonces Java realizará


la conversión (automáticamente) que se conoce como
Conversión automática de tipos y, en caso negativo, deberá
hacer un casting o convertirlo explícitamente.
107

11. Conversiones de tipo: Castings (2)


• Por ejemplo, asignar un valor int a una variable long.

• En la siguiente tabla se muestran las distintas posibilidades


de conversión con las variables de tipo primitivo.
108

11. Conversiones de tipo: Castings (3)


a) CONVERSIÓN AUTOMÁTICA (de pequeño a grande)
• La conversión de ampliación tiene lugar cuando dos tipos de datos
se convierten automáticamente. Esto sucede cuando:
• Los dos tipos de datos son compatibles.
• Cuando asignamos el valor de un tipo de datos más pequeño a un
tipo de datos más grande.

• En Java, los tipos de datos numéricos son compatibles entre sí,


pero no se admite la conversión automática de tipo numérico a
char o boolean. Además, char y boolean no son compatibles
entre sí.
109

EJERCICIO
a) CONVERSIÓN AUTOMÁTICA

class Test {
public static void main(String[] args) {
int i = 100;
long l = i; //conversion automatica de tipo
float f = l; //conversion automatica de tipo
System.out.println ("Valor Int “ + i);
System.out.println ("Valor Long “ + l);
System.out.println ("Valor Float “ + f);
}
}
110

EJERCICIO
a) CONVERSIÓN AUTOMÁTICA

Salida:

Valor Int 100


Valor Long 100
Valor Float 100.0
111

11. Conversiones de tipo: Castings (4)


b) CONVERSIÓN EXPLÍCITA O CASTING (de grande a peq.)
• Si queremos asignar un valor de tipo de dato más grande a
un tipo de dato más pequeño, realizamos un casteo/casting
o conversión de tipo explícito.

• Esto es útil para tipos de datos incompatibles donde la


conversión automática no se puede realizar.

• char y int no son compatibles entre sí. Veamos luego cuando


tratamos de convertir uno en otro.
112

// Programa Java para ilustrar el tipo de conversion explicita

class Test {
public static void main(String[] args) {
double d = 100.04;

//casting de tipo long


l = (long) d;

//casting de tipo int


i = (int) l;

System.out.println("Valor Double "+d); //parte fraccionaria perdida


System.out.println("Valor Long "+l); //parte fraccionaria perdida
System.out.println("Valor Int "+i);
}
}
113

11. Conversiones de tipo: Castings (4)


b) CONVERSIÓN EXPLÍCITA O CASTING (de grande a peq.)

• Salida

Valor Double 100.04


Valor Long 100
Valor Int 100
114

Ejercicio
// Programa Java para ilustrar Conversion de int y double a byte
class Test {
public static void main(String args[]) {
byte b;
int i = 257;
double d = 323.142;

System.out.println("Conversion de int a byte.");


//i%256
b = (byte) i;
System.out.println("i = " + i + " b = " + b);

System.out.println("\nConversion de double a byte.");


//d%256
b = (byte) d;
System.out.println("d = " + d + " b= " + b);
}
}
115

Salida del ejercicio

Conversion de int a byte.


i = 257 b=1

Conversion de double a byte.


d = 323.142 b= 67
116

12. Comentarios y documentación


(1)
• En un programa, los comentarios se usan para hacer que
el programa se vuelva más legible haciendo que el
mantenimiento sea más fácil y pueda encontrarse errores
fácilmente.

• Los comentarios son ignorados por el compilador al


compilar un código.

• En Java hay tres tipos de comentarios:


a) Comentarios de una sola línea.
b) Comentarios de múltiples líneas.
c) Comentarios de la documentación.
117

12. Comentarios y documentación


(2)
• En un programa, los comentarios se usan para hacer que
el programa se vuelva más legible haciendo que el
mantenimiento sea más fácil y pueda encontrarse errores
fácilmente.

• Los comentarios son ignorados por el compilador al


compilar un código.

• En Java hay tres tipos de comentarios:


a) Comentarios de una sola línea.
b) Comentarios de múltiples líneas.
c) Comentarios de la documentación.
118

a) Comentarios de una sola línea


(1)
• Un programador de nivel principiante utiliza comúnmente
comentarios de una sola línea para describir la
funcionalidad del código. Son los comentarios más fáciles
de escribir.

• Sintaxis:
• // Comentarios aquí ( El texto en esta línea solo se
considera comentario )
119

a) Comentarios de una sola línea


(2)
• Ejemplo: Programa Java que muestra comentarios de una
sola línea.

class Scomment {
public static void main(String args[]) {
// Comentario de una sola línea aquí
System.out.println ("Comentario de una sola línea arriba");
}
}
120

b) Comentarios de varias líneas (3)


• Para describir un método completo en un código o un
fragmento complejo, los comentarios de una sola línea
pueden ser tediosos de escribir, ya que tenemos que dar ‘// ‘
en cada línea. Entonces, para evitar repetir ‘// ‘ en cada línea,
podemos utilizar la sintaxis de los comentarios de varias
líneas.

• Sintaxis:
/* El comentario comienza
continúa
continúa . . .
El comentario termina */
121

b) Comentarios de varias líneas (4)


//Programa Java para mostrar comentarios de varias líneas

class Scomment {
public static void main(String args[]) {
System.out.println ("Comentarios de varias líneas a
continuación");

/* Línea de comentario 1
Línea de comentario 2
Línea de comentario 3 */
}
}
122

b) Comentarios de varias líneas (5)


También podemos realizar comentarios de una sola línea
usando la sintaxis anterior como se muestra a continuación:

/* Línea de comentario 1*/


123

c) Comentarios de la documentación
(6)
Este tipo de comentarios se utilizan generalmente al escribir código
para un paquete de proyecto/software, ya que ayuda a generar una
página de documentación para referencia, que puede usarse para
obtener información sobre los métodos presentes, sus parámetros,
etc.

• Sintaxis:
/**Comienza el comentario
*
*las etiquetas se utilizan para especificar un parámetro
*o método o título
*Las etiquetas HTML también se pueden usar
*como <h1>
*
*el comentario termina*/
124

c) Comentarios de la documentación
(7)
• Sintaxis:

/** Comienza el comentario


*
* las etiquetas se utilizan para especificar un parámetro
* o método o título
* Las etiquetas HTML también se pueden usar
* como <h1>
*
* el comentario termina*/
125

13. Secuencias de escape (1)


• Hay determinados caracteres en Java que, o bien no
tienen una representación explícita, o bien no pueden ser
utilizados directamente por el hecho de tener un
significado especial para el lenguaje.

• Para poder utilizar estos caracteres dentro de un


programa Java se utilizan las secuencias de escape.

• Una secuencia de escape está formada por el carácter "\"


seguido de una letra, en el caso de ciertos caracteres no
imprimibles, o del carácter especial.
126

13. Secuencias de escape (2)


• La tabla contiene las principales secuencias de escape
predefinidas de Java.

Secuencia de escape Significado

\b Retroceso
\n Salto de línea
\t Tabulación horizontal
\ Barra invertida \
\’ Comilla simple
\” Comilla doble
127

Ejemplo de secuencias de escape


(1)
• Si ejecutamos las siguiente instrucción:

System.out.println (“Java\t\”mañana\”\nVB\t\”tarde\””);

• Obtendríamos:
Java “mañana”
VB “tarde”
128

14. Errores a evitar (1):


• No distinguir mayúsculas y minúsculas: En Java,
Casa y casa son identificadores distintos.

• Omisión del punto y coma: Todas las sentencias de


Java deben terminar con punto y coma ( ; ).

• Comentarios anidados: Recuerde que los comentarios


no se pueden anidar, es decir, dentro de un comentario
no puede aparecer el símbolo /*.

• Comentarios mal finalizados: Un comentario debe


comenzar con el símbolo /* y finalizar con */. Si se olvida
alguno de estos símbolos se provocará un error.
129

14. Errores a evitar (2):


• Empleo de variables no definidas: Es también muy
común utilizar en los programas variables no definidas,
bien porque se ha olvidado su definición o bien porque
existe algún problema con las mayúsculas y las
minúsculas.

• Cadenas de caracteres sin dobles comillas: Cuando


se utiliza una cadena de caracteres en un programa como
literal y no se abre o cierra adecuadamente utilizando ",
se produce un error de compilación.
130

14. Errores a evitar (3):

• Olvido de las llaves en la función main: Las sentencias


de la función main, y en general de todas las funciones,
deben ir encerradas entre { y }.

• Intentar asignar tipos distintos sin especificadores de


conversión: Cuando no se especifica, o se emplea un
especificador de conversión incorrecto, en la asignación
de variables de dos tipos distintos, se obtendrá un error
de compilación.
131

15. Webografía (1):


• Lenguajes estáticos y dinámicos:
https://charlascylon.com/2017-05-10-dynamic-vs-static

• Compilador:
https://www.europeanvalley.es/noticias/que-es-un-compilad
or-en-programacion/

• Tutorial de Java: mi primera aplicación Java:


http://www.manualweb.net/java/mi-primera-aplicacion-java/
132

15. Webografía (2):


• Variables:
https://javadesdecero.es/basico/declaracion-y-tipos-variabl
es/

https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Jav
a/Variables

• Palabras clave en Java:


https://javadesdecero.es/fundamentos/identificadores-y-pal
abras-reservadas/
133

15. Webografía (3):


• Tipos de datos:
http://www.manualweb.net/java/tipos-datos-primitivos-java/

• Literales en Java:
http://www.manualweb.net/java/literales-java/

• Operadores:
http://www.manualweb.net/java/operadores-asignacion-arit
meticos-java/
134

15. Webografía (4):


• Castings:
https://javadesdecero.es/basico/conversion-tipo-ejemplos-c
asting/

También podría gustarte