Logo Studenta

Leccion-3-Teoria-Java

¡Este material tiene más páginas!

Vista previa del material en texto

JAVA BÁSICO 
 Página 1 Planes Gabriel 
 
Fundamentos de la Programación 
Declaración y uso de Variables 
Las variables son estructuras de datos. 
La memoria de una computadora nos permite almacenar y posteriormente recuperar datos. 
Cuando se programa en un lenguaje de alto nivel como Java, se utilizan nombres para hacer 
referencia a los datos que hay en la memoria. En el argot del programador, a estos datos con 
nombres en memoria se los llama variables. Por definición, no puede haber dos variables con 
el mismo nombre. 
Para garantizar una coherencia, además de tener un nombre deben tener un tipo de dato. El 
tipo nos indica que datos pueden almacenarse en ella (números, texto, etc.) y que operaciones 
pueden realizar. 
Por convención, se suele escribir el nombre de las variables en minúscula, si hay mas de una 
palabra en la variable podemos separarlo con un _ o colocar la primera letra de la nueva 
palabra en mayúscula (camel case), por ejemplo, variablePrueba. 
Empezaremos con los siguientes tipos: 
 int: valor entero entre -2147483648 y 2147483647. No admite decimales. 
 double: valor real sin límite de rango y de precisión arbitraria. Admite valores 
decimales. 
 String: texto de longitud arbitraria. 
 boolean: verdadero o falso. 
Para poder trabajar con una variable, primero debemos definirla. Definir una variable consiste 
en mencionar su nombre y su tipo. En Java primero se escribe su tipo, después 
su nombre y termina con punto y coma. El punto y coma es importante porque 
determina el final de la definición. 
Se define una variable llamada “contador” de tipo int. 
 
 
 
 
 
JAVA BÁSICO 
 Página 2 Planes Gabriel 
 
Las siguientes líneas: 
 
Definen tres variables: “esClientePreferente”, de tipo boolean y “capital” e “interés” de tipo 
double. Observen como podemos definir dos variables del mismo tipo en la misma línea 
separadas por la coma. 
La línea siguiente: 
 
Declara un arreglo (vector de variables) de tipo int llamado “valores”. Un arreglo es un 
conjunto de variables del mismo tipo. Utilizaremos “valores[0]” para referirnos a la primer 
variable, “valores[1]” para referirnos a la segunda y así sucesivamente. 
En Java, se pueden dar cualquier nombre a una variable. Sin embargo, se deben respetar 
algunas reglas. Los nombres de las variables: 
 No pueden comenzar por un carácter numérico. Por ejemplo, “12” o “1valor” no son 
nombres válidos. 
 No se pueden utilizar caracteres especiales: *,/,^,+,-,)=,(%,&,$,!,”. 
 No pueden llamarse igual que los elementos del lenguaje. Por ejemplo, no pueden 
llamarse “int” o “doublé”. 
 No pueden contener espacios. 
Otro punto a tener en cuenta es que Java distingue entre Mayúsculas y Minúsculas (case 
sensitive). 
 
Son diferentes en todos los sentidos. 
 
 
 
 
 
 
 
JAVA BÁSICO 
 Página 3 Planes Gabriel 
 
El operador de Asignación 
Una vez definida una variable, esta tiene un valor indefinido (con un valor por defecto 
dependiendo de su tipo). Para poder empezar a trabajar con ella se necesita asignarle un valor. 
Dichas asignaciones se hacen con el operador “=” (signo igual). 
Entonces, las líneas: 
 
Declaran una variable “contador” de valor 0. 
Como podemos observar, a la izquierda de operador de asignación se utiliza el nombre de la 
variable, y a la derecha, el valor que se le desea asignar. La asignación, así como la definición 
termina en punto y coma. 
Veamos más ejemplos: 
 
Asigna a la variable “suma” el resultado de sumar 3 + 2 (cinco). 
 
Asigna el valor 0 a la variable “contador” y luego la incrementa en 1. Es importante destacar 
que cuando asignamos un valor a una variable estamos sobrescribiendo el valor anterior. 
 
 
 
 
 
 
 
 
JAVA BÁSICO 
 Página 4 Planes Gabriel 
 
 
Asigna a la variable “frase” el resultado de concatenar el texto “La case de” y la variable 
“nombre”. Al finalizar la ejecución, la variable “frase” tendrá el valor “La casa de Maria”. 
Debemos notar que el texto se escribe encerrado entre comillas dobles (“”). 
 
 
Almacena en la variable “es_positivo” el resultado de evaluar si la variable “numero” es mayor 
que 0. Al finalizar el código, la variable “es_positivo” valdrá false. 
Para que una asignación sea válida debe haber cierta compatibilidad entre el tipo de variable 
y el tipo de dato que se le desea asignar. Por ejemplo, la asignación siguiente no es válida. 
 
Pues intenta asignar un valor decimal a una variable entera. 
 
Tampoco es válida esta asignación, ya que intenta asignar a una variable de tipo texto un valor 
entero. 
 
 
 
 
 
 
 
JAVA BÁSICO 
 Página 5 Planes Gabriel 
 
Antes de seguir, quiero mostrar un pequeño ejemplo de double, nosotros podemos almacenar 
en una variable de tipo double la suma de un double y un int, pero si la suma se almacena en 
un int nos dará un error al compilar, ya que un int no puede almacenar coma flotante. 
 
Salida de datos: System.out.println() 
Para mostrar un mensaje en consola, escribimos System.out.println(“cadena”); dentro del 
paréntesis, además de cadenas, podemos mostrar el valor de una variable, para ello, solo 
escribimos el nombre de la variable sin comillas dobles, no importa el tipo de variable. 
También se puede incluir una cadena de texto mas el valor de una variable, para ello 
escribimos la cadena con comillas dobles, un signo + y el nombre de la variable, recuerda 
poner un espacio entre una variable y una cadena de texto. 
Por ejemplo, System.out.println(“El valor de la variable num es 
“+num); o System.out.println(“El precio final es “+precio+” euros”); 
 
 
 
 
 
 
 
JAVA BÁSICO 
 Página 6 Planes Gabriel 
 
El resultado es: 
 
Estructura básica de un Programa 
En Java, se necesita de una estructura básica que acoja el programa y sus componentes. A 
esta estructura mínima la llamamos clase. 
 
Sin entrar en demasiados detalles, el código define una clase llamada “Programa” con una 
función “main” que será lo que se ejecutará al iniciar el programa. El nombre de la clase ha 
sido escogido arbitrariamente (es decir, que se puede cambiar); no así el nombre de la función, 
que siempre deberá llamarse “main”. Las funciones se estudiarán más adelante, pero es 
necesario adelantar que son simples agrupaciones (funcionales) de código. 
Este programa deberá guardarse en un archivo que se llamará como la clase con la extensión 
.java. Es decir, “Programa.java”. Debemos notar como el código de la clase va entre llaves { }. 
 
 
 
 
 
 
 
 
 
 
JAVA BÁSICO 
 Página 7 Planes Gabriel 
 
El programa siguiente: 
 
 
Calcula la distancia recorrida a partir de su velocidad y el tiempo que ha estado circulando. El 
texto precedido por la doble barra (//) son comentarios. Los comentarios son simples 
anotaciones que el programador hace en el código del programa para facilitar su compresión. 
Los comentarios no se ejecutan. La última línea usa la función “System.out.println” para 
escribir el resultado en la pantalla (mostrarlo en la consola). 
Como puede verse todas las variables han sido definidas al inicio del código. Lo cual es una 
buena práctica para ayudar a la legibilidad. Algo muy importante y una buena práctica es 
siempre tener un código fuente bien ordenado e identado (tabulado). 
 
Operadores 
 Asignación: asigna un valor a una variable. El operador de asignación es =, una vez 
asignado podemos reasignar de nuevo otro valor. Por ejemplo: 
 
 
 
 
JAVA BÁSICO 
 Página 8 Planes Gabriel 
 
 Aritmético: permiten operar con números como sumar, restar, etc. Se pueden 
sumar variables que almacenen números. Estos son los operadores: 
 
 
 
También podemos combinar los operadores de asignación y aritméticos. Se forman con la 
variable el operador aritmético seguido del de asignación y por último la otra variable. Por 
ejemplo: operador1 +=operador2. Es equivalente a operador1=operador1+operador2. Puedes 
hacer lo mismo con los anteriores operadores aritméticos. 
 
 Unarios: requieren un solooperando, existe el operador ++ y --. Es similar a sumar 
o restar una unidad a la variable. Tener en cuenta que el orden del operador es 
importante. Veamos un ejemplo: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
JAVA BÁSICO 
 Página 9 Planes Gabriel 
 
 
 
Como vemos el valor cambia según la localización del operador, la única diferencia es cuando 
incrementa el valor, cuando esta antes de la variable se produce un pre-incremento, es decir, 
se incrementa antes de asignar, cuando esta después se incrementa después de la asignación. 
No te preocupes si no lo entiendes demasiado, lo más usado es este último. 
 
 Relación: son operadores para comparar valores, de esta comparación se crea una 
variable booleana. Estos son los operadores: 
 
 
 
 
 
 
 
JAVA BÁSICO 
 Página 10 Planes Gabriel 
 
 
 Condicional: son operadores que permiten concatenar mas de una condición. Los 
operadores son: 
 
 
 
 
 
 
 
Estructuras de control de flujo 
Supongamos que se desea escribir un programa que calcule y muestre por pantalla el 
resultado de la suma de los primeros números pares entre 0 y 10. 
 
 
 
 
 
 
JAVA BÁSICO 
 Página 11 Planes Gabriel 
 
El programa efectivamente escribirá “20”. Sin embargo, si desea conocer la suma de los 
números pares entre 0 y 10.000 escribirlos todos sería inviable o cuando menos, demasiado 
costoso. 
La solución a estos problemas nos la dan las estructuras de control de flujo de la 
programación, que nos permiten repetir instrucciones o ejecutar unas u otras dependiendo 
de una condición. 
Para sumar los números pares entre 0 y 10.000, una forma fácil de hacerlo es en primer lugar 
partiendo del primer número par e ir sumándole de a 2. 
 
Hasta llegar al último par: 
 
En total, 4.998 líneas de código, mientras que “numeroPar” sea menor que 10.000. 
Afortunadamente, esto se puede reducir a tres líneas usando una estructura while (mientras). 
 
La estructura while repite una serie de instrucciones mientras se cumpla una condición dada. 
Dicha condición de encierra entre paréntesis a la derecha del while, mientras que las 
instrucciones a repetir se encierran entre llaves ({}). 
Volviendo a nuestro desafío por conocer el valor de la suma de los números pares, una vez 
localizados solo nos resta ir sumándolos. Para esto declararemos una variable “suma” que ira 
acumulando el resultado. Con la única precaución de inicializarla a cero antes de empezar. 
 
 
 
 
 
 
JAVA BÁSICO 
 Página 12 Planes Gabriel 
 
 
Debemos destacar la utilización del operador “+=”, que asigna a una variable el valor de ella 
misma más el valor especificado. 
Es decir, 
 
Equivale a: 
 
En el programa “SumaPares2” se podría haber optado por recorrer todos los números del 
intervalo, determinando cuales son pares y cuáles no. Esta dicotomía (si se cumple una 
condición, hacer A; si no, hacer B) se puede modelar mediante la estructura if/else(si / si no). 
Una forma de determinar si un numero dado es par o no, es dividiéndolo por cero y analizar su 
resto. Si el resto es cero, es un número par. En Java el resto de una división se obtiene 
mediante el operador %. 
 
 
 
 
 
 
JAVA BÁSICO 
 Página 13 Planes Gabriel 
 
 
La estructura if ejecuta una serie de instrucciones si se cumple una determinada condición. 
Dicha condición se encierra entre paréntesis a la derecha del if, mientras que las instrucciones 
que se han de ejecutar se cierran entre llaves { }. Opcionalmente la estructura if acepta una 
extensión else que especifica una serie de instrucciones que han de ejecutarse si la condición 
no se cumple. 
Volviendo al problema y utilizando la estructura de control if: 
 
 
Conclusiones 
Las estructuras condicionales nos permiten ejecutar una serie de instrucciones si cumple una 
determinada condición que nosotros le indiquemos. Es importante recordar que la condición 
debe dar un resultado booleano, por lo que lo más normal es usar 
operadores relacionales y condicionales. 
 
 
 
JAVA BÁSICO 
 Página 14 Planes Gabriel 
 
 
 if: le indicamos una condición, si esta es verdadera se ejecuta y si no lo es no se 
ejecutan las instrucciones de entre las llaves. Se suele traducir como “Si se cumple 
esta condición haz esto”. Su sintaxis es: 
 
 
 if – else: es como el anterior solo que después de cerrarse la llave de if, se añade 
else sin indicarle ninguna condición. Esto sirve para que, si la condición del if no es 
verdadera, ejecute otras instrucciones que estarán dentro de else. Se suele 
traducir como “Si se cumple esta condición haz esto y sino haz esto”. 
 
 
 
 
 
 
 
 
 
 
 
JAVA BÁSICO 
 Página 15 Planes Gabriel 
 
 
 if -elseif: esta estructura es como una mezcla de los anteriores, esto nos permite, 
que si no se cumple la condición podamos indicar otra condición para hacerlo 
aún más específico. Se suele traducir como “Si se cumple esta condición haz esto y 
si no, si cumple esta condición haz esto”. 
if anidados: 
 
 
 Switch: esta estructura condicional de selección múltiple, le damos un valor 
(puede ser una variable) y una lista de casos y si cumple alguno de los casos 
ejecuta las instrucciones asociadas a ella, en caso de que ninguna sea podemos 
indicarle que hace por defecto, normalmente se usa para indicar de un error o no 
coincidencia con un mensaje. Su sintaxis es: 
 
 
 
 
 
 
 
JAVA BÁSICO 
 Página 16 Planes Gabriel 
 
 
Repetición o Bucles. 
Una estructura de repetición o bucle: nos permite ejecutar un número de veces determinado 
una serie de instrucciones. La mayor utilidad es evitar la repetición de líneas de código iguales. 
Para salir del bucle, se indica una condición, si esa condición no se cumple se sale del bucle. 
Las estructuras de repetición son: 
 while: indicamos una condición que se ejecutara hasta que la condición sea falsa, 
es importante que la variable que este en la condición, varíe para que no se 
produzca un bucle infinito. Su sintaxis es: 
 
 
 
 
 
 
 
 
 
 
 
 
 
JAVA BÁSICO 
 Página 17 Planes Gabriel 
 
 
 
 
Como vemos, num vale 1 al principio, se comprueba la condición, como 1 es menor o igual 
que 5, entra en el bucle y ejecuta las instrucciones, y así sucesivamente hasta que num vale 6, 
ya que 6 no es menor o igual que 5. Si num no fuera modificado, nunca saldría del bucle. 
 
 for: este tipo de bucle, es como el anterior, pero además de la condición incluye una 
inicialización de una variable y un incremento o decremento de esa variable. Cada 
parte se separa con un ; . NOTA: cuando salimos del bucle, la variable inicializada no 
existe. Su sintaxis: 
 
 
Si nos fijamos, es como en while pero todo se define en el bucle. Veamos un ejemplo: 
 
 do-while: esta estructura repetitiva, tiene algo especial y es que como mínimo las 
instrucciones dentro de la estructura repetitiva al menos una vez, mientras que 
el while sus instrucciones pueden ejecutarse 0 o N veces. Se sale del bucle cuando 
la condición del while no se cumple, si esto pasa empieza desde el do. Se utiliza 
para la validación de datos. Su sintaxis es: 
 
 
 
 
JAVA BÁSICO 
 Página 18 Planes Gabriel 
 
 
 
 
Veamos un ejemplo: 
 
 
 
Entrada de datos por teclado: Scanner. 
La clase Scanner nos permite que un usuario externo a nuestra aplicación inserte datos 
necesarios para nuestro programa, por ejemplo, pedir al usuario un número para calcular 
alguna fórmula. 
La forma de crear un Scanner es la siguiente: 
 
Ya teniendo el objeto creado, podemos usar los métodos que tiene. Recordar que tenemos 
que importar la clase poniendo este import al principio del fichero. 
 
Los que más nos importa son los métodos next(). Son los que devuelven el tipo de dato 
deseado. Por ejemplo: 
 
 
 
 
 
 
 
 
 
 
JAVA BÁSICO 
 Página 19 Planes Gabriel 
 
 
 
Definición y uso de Funciones 
Repetir bloques de código dos o más veces dentro de un programa tiene serios 
inconvenientes: 
 Reduce lectura: puede costar discernir entre fragmentos de código que hagan 
distintastareas, se mezclan las variables y las instrucciones. 
 Dificulta mantenimiento: si se detecta un error o si se desea mejorar, las 
modificaciones deben propagarse por todos y cada uno de los fragmentos repetidos. 
 Propenso a errores: consecuencia de baja lectura y mantenimiento. Fragmentos de 
códigos difíciles de leer son difíciles de mantener y desencadena errores. 
Al final, la repetición de bloques de código conduce a códigos inestables. Afortunadamente, 
todos estos inconvenientes se pueden evitar mediante el uso de Funciones. 
La lógica de ese fragmento de código o subprograma es completamente independiente de la 
del programa principal. Es decir, al programa principal poco le importa como el subprograma 
resuelve el problema o que variables utiliza. El programa y el subprograma se comunican 
mediante una interfaz de variables bien definidas. 
 
 
 
 
JAVA BÁSICO 
 Página 20 Planes Gabriel 
 
Entonces, podemos decir que una función no es más que una agrupación de código que a 
partir de uno o más valores de entrada genera un resultado. 
Veamos una función: 
 
(el modificador static se estudiara mas adelante). 
Una función se declara especificando el tipo de resultado que devuelve (en este caso boolean), 
su nombre (esPrimo) y encerrado entre paréntesis separados por coma sus parámetros de 
entrada (numero de tipo int). El código de la función va encerrado entre llaves {}. 
Podemos observar que al final de la función aparece una sentencia nueva: return (devolver). 
Cuando se alcanza el return, termina la ejecución de la función y se establece como resultado 
de la misma el valor que le sigue al return. 
Una vez definida la función, podemos llamarla desde cualquier parte del código. Por ejemplo, 
la siguiente línea: 
 
Asigna a la variable “primo” (de tipo boolean) el resultado de la función “esPrimo” para el valor 
19. 
Al ejecutarse la función, el parámetro “numero” valdrá 19 y al terminar se asignará a la 
variable “primo” el valor de la expresión que hay a la derecha del return. 
 
 
 
 
 
 
JAVA BÁSICO 
 Página 21 Planes Gabriel 
 
 
También es importante destacar que cuando se llama a una función pasa a ejecutarse el 
código de esta y no se vuelve al código que la ha llamado hasta que se alcance el return. 
Cuando trabajamos con funciones debemos tener en cuenta los siguientes aspectos: 
 Los parámetros que pasamos a una función actúan como cualquier variable. 
 Los parámetros de una función son una copia de los parámetros de entrada. Si dentro 
de la función el valor del parámetro cambia, no se verá afectado el valor de la 
variable por fuera de esta. 
 Al espacio entre llaves que encierra la función se le llama “ámbito de la función”. Las 
variables declaradas dentro de la función solo pueden verse dentro de este ámbito. Es 
decir que no podemos acceder a ellas desde afuera. 
 Una función se caracteriza por su nombre y el tipo de sus parámetros. Si cambia 
alguno de ellos, estamos ante funciones diferentes. Es significa que puede haber dos 
funciones con el mismo nombre pero con parámetros distintos. A esto se le llama 
“sobrecarga de funciones”. 
Una función puede que no devuelva ningún valor. En este caso se utiliza el tipo void (vacio) y 
estaremos en realidad ante lo que se llama procedimiento. 
 
 
 
 
 
 
 
 
JAVA BÁSICO 
 Página 22 Planes Gabriel 
 
Veamos otro ejemplo de una definición de funciones, recuerda siempre que lo hacemos fuera 
del main: 
 
Lo de public (o private) y static, no es importante que sepas lo que significan ahora, ya que lo 
veremos con más detalles más adelante. También hemos puesto que devuelva un int, cuando 
ponemos que devuelva un valor, debemos poner algún return con el tipo de valor que 
ponemos a devolver. En return podemos poner una fórmula o una variable. Sigamos con el 
ejemplo: 
 
También podríamos escribir return num1 + num2; no es estrictamente necesario colocar 
un return al final, aunque es lo más normal, cuando ejecuta la línea de código return, sale del 
método devolviendo el valor. 
Ya tenemos el método, pero ahora debemos invocarlo en el main, ya que sino no serviría de 
nada. Para invocarlo, escribimos el nombre en el main y le pasamos los parámetros que 
necesite, no podemos ni quitarle ni añadirle mas de los que necesita, ya que sino dará un error 
en la compilación. 
 
 
 
 
 
 
 
JAVA BÁSICO 
 Página 23 Planes Gabriel 
 
Sigamos con el ejemplo: 
 
Como vemos, no es necesario que el nombre de los parámetros del método (parámetros 
formales) se llamen igual a los parámetros con los que invocamos el método (parámetros 
actuales) pero si es necesario que los parámetros se respeten en tipo de dato, orden y 
cantidad. 
Solo nos falta un detalle, almacenar el resultado del método, ya que ahora mismo no estamos 
haciendo nada con él. Sigamos con el ejemplo: 
 
 
 
 
 
 
 
 
JAVA BÁSICO 
 Página 24 Planes Gabriel 
 
Antes hemos comentado que no es necesario que devuelva un tipo de valor, puede no 
devolver nada, esto se suele usar cuando no necesitamos manejar algún valor calculado en 
el método. Por ejemplo, mostrar un mensaje. Al no devolver ningún valor, no debemos 
poner return y no es necesario almacenar el resultado del método como hemos visto antes. 
Para indicar al método que no devuelva nada, en el valor devuelto escribimos void. Veamos 
un ejemplo con el ejemplo anterior: 
 
Por último, les quiero mostrar algo que debemos tener muy en cuenta, que nos suele pasar a 
todos al empezar. 
Imaginemos que manejamos dentro del método una estructura condicional (como un if), si 
ponemos un return dentro de este if, seguramente nos salte un error, ya que debemos 
controlar que si no se introduce en el if debemos devolver algo. 
 
 
 
 
 
 
 
 
 
 
 
 
 
JAVA BÁSICO 
 Página 25 Planes Gabriel 
 
Veamos un ejemplo, devolviendo un booleano, según sea positivo o negativo el resultado: 
 
 
Notemos como tanto dentro del if como dentro del else tenemos una sentencia de return. 
Porque siempre debemos asegurarnos de devolver un valor dentro de la función sea cual sea 
el comportamiento de la misma. 
 
Arreglos 
Los arrays son colecciones de datos que agrupan una serie de variables del mismo tipo. 
Cuando creamos un array se reserva automáticamente memoria, al iniciar un array debemos 
indicar su tipo y tamaño, este tamaño no puede variar durante la ejecución. El tamaño debe 
ser un número entero positivo. 
Para crear un array usamos new, veamos su sintaxis para definirlo: 
Tipo_dato nombre_array[] = new tipo_dato[tamaño]; 
 
 
 
 
 
 
JAVA BÁSICO 
 Página 26 Planes Gabriel 
 
Veamos un ejemplo: 
 
También podemos asignar directamente sus valores, indicándolo entre llaves, los valores irán 
separados por comas. Por ejemplo: 
 
Al tener un array creado, se rellenan por defecto, por ejemplo, si es un array de int se rellenan 
con 0, si es un array de String se rellenan con null. 
Para acceder a una posición, debemos indicar la posición mediante un numero entero entre 
corchetes. Veamos un ejemplo: 
 
 
 
 
 
JAVA BÁSICO 
 Página 27 Planes Gabriel 
 
Un array empieza en 0 y acaba en la posición tamaño-1, por ejemplo, si creamos un array de 
10 posiciones, las posiciones irán del 0 al 9. 
Para recorrer un array usamos un bucle, donde lo único que variaremos será la posición. 
Veamos un ejemplo de rellenar un array de 10 posiciones con múltiplos de 5. 
 
Como vemos en el ejemplo anterior, para saber la longitud del array usamos el 
atributo lenght.

Continuar navegando

Materiales relacionados

560 pag.
curso-de-programacion-cc---fco-javier-ceballos

Escola Municipal Getulio Vargas

User badge image

Alicia Castillo

45 pag.
Programacion Estructurada

SIN SIGLA

User badge image

Vanina Gisele Beguiristain

80 pag.
Lenguaje-C

UBAM

User badge image

Contenidos Muy Locos