Java básico
Lenguajes de programación
Lenguajes de Programación
Los lenguajes de programación son todos los símbolos,caracteres y reglas de uso que permiten a las personas "comunicarse" con las computadoras
Programación
Se diseña
Se codifica
Se escribe
Se prueba
Se depura
Código
Código Fuente
Recorrido en el tiempo
- 1957-1959
- 1970
- 1972
- 1983
- 1987
- 1991
- 1993
- 1995
Fortran,LISP,COBOL
PASCAL
C
C++, Objective-C
PERL
PYTHON
RUBY
JAVA - PHP - JavaScript
Tipos de lenguajes de programación
Nivel de Abstraccion del Procesador
El paradigma de Programación
Forma de Ejecución
Bajo nivel
Medio Nivel
Alto Nivel
Compilados
Interpretados
Imperativo
Declarativo
Estructurado
Orientado a objetos
Funcional
Lógico
JAVA
INICIOS
1991 Lenguaje de programación de electrodomésticos
1995 Lenguaje de programación de computadoras

Entendiendo JAVA
Características de Java
- Orientado a objetos
- Independiente de la plataforma
- Compilado e Interpretado
- Robusto
- Gestiona la memoria automáticamente
- No permite el uso de técnicas de programación inadecuada
- Multihilos
- Cliente-servidor
- Con mecanismos de seguridad incorporados
- Con herramientas de documentación incorporada
A tener en cuenta...
-
Case Sensitive: hay diferencia entre mayúscula y minúsculas
-
Cada instrucción termina con ;
-
Una instrucción puede abarcar mas de una línea
-
Se pueden dejar espacios y tabuladores
-
Se marcan bloques de código agrupado con "{}"
Qué es un programa?
Es un algoritmo escrito en algún lenguaje de programación de computadoras.
Pasos para la construcción de un programa
DEFINICIÓN DEL PROBLEMA
ANÁLISIS DEL PROBLEMA
DISEÑO DEL ALGORITMO
CODIFICACIÓN
PRUEBA Y DEPURACIÓN
Tipos de datos
Variables
-
Los primeros lenguajes de programación no usaban objetos, solo variables. Una variable podríamos decir que es un espacio de la memoria RAM a la que asignamos un contenido.
-
Se puede almacenar distintos tipos de datos.
-
En base al tipo de datos seleccionado serán las operaciones que podamos realizar con esa variable, por ejemplo: si tenemos la variable edad deberíamos seleccionar un tipo de datos como integer (número entero) ya que las operaciones relacionadas serán de comparación, sumas o restas y no es necesario tener una profundidad de decimales.
Constantes
- Se declaran utilizando la palabra "final".
- Si no se las declara static, ocupan lugar en memoria por cada instancia de la clase.
- No se puede modificar su valor.
- Por convención se las suele declarar en mayúscula.
- Se inicia en el mismo momento de declararla.
- La palabra final también puede aplicarse a clases, lo que indica que esa clase no puede ser heredada.

Tipos de datos primitivos
- Entidades elementales: un número, un carácter, un valor verdadero o falso.
- Un tipo primitivo es un dato elemental.
| Tipo de Datos | Significado | Ejemplo Uso |
|---|---|---|
| Byte | Número entero de 8 bits. Con signo |
Temperatura de una habitación en grados Celsius |
| Short | Número entero de 16 bits. Con signo | Edad de una Persona |
| Int | Número entero de 32 bits. Con signo | Distancia entre localidades medida en metros |
| Long | Número entero de 64 bits. Con signo | Producto entre dos distancias almacenadas en variables tipo int como la anterior |
| Float | Número Real de 32 bits | Altura de algún objeto |
| Double | Número Real de 64 bits. | Proporción entre dos magnitudes |
| Boolean | Valor lógico: true (verdadero) o false (falso) | Almacenar si el usuario ha aprobado un examen o no |
Tipos objetos
Los objetos son entidades complejas que pueden estar formadas por la agrupación de muchas variables y métodos.
|
Tipos de la biblioteca estándar de Java |
String (cadenas de texto) Muchos otros (p.ej. Scanner, TreeSet, ArrayList…) |
|
Tipos definidos por el programador |
Cualquiera que se nos ocurra, por ejemplo Taxi, Autobus, Tranvia |
|
arrays |
Serie de elementos o formación tipo vector o matriz. |
|
Tipos envoltorio o wrapper (Equivalentes a los tipos primitivos pero como objetos.) |
Byte, Short, Integer, Long, Float, Double, Boolean |
|
|
Importante
- Un objeto es una cosa distinta a un tipo primitivo, aunque “porten” la misma información. Tener siempre presente que los objetos en Java tienen un tipo de tratamiento y los tipos primitivos, otro. Que en un momento dado contengan la misma información no significa en ningún caso que sean lo mismo. El tipo primitivo es algo elemental y el objeto algo complejo.
- Un tipo primitivo es un dato elemental y carece de métodos, mientras que un objeto es una entidad compleja y dispone de métodos.
- Los nombres de tipos primitivos y envoltorio se parecen mucho.
- Una cadena de caracteres es un objeto. El tipo String en Java nos permite crear objetos que contienen texto (palabras, frases, etc.). El texto debe ir siempre entre comillas.
Arrays
- Serie de elementos, cada uno de los cuales lleva asociado un índice numérico 0, 1, 2, 3, … , n-1
-
En java los arrays son objetos, instancias de la clase Array, la cual dispone de algunos métodos útiles.
-
Un array puede estar compuesto por datos primitivos o objetos.
int arrayDeEnteros[] = null;
Integer arrayDeEnteros2[] = null;Trabajando con arrays
- Creación
- Recorrido
- Inicialización
- Longitud
arrayDeEnteros = new int[100];
arrayDeEnteros2 = new Integer[100];for(int i = 0; i < 100; i++)
arrayDeEnteros[i] = i;int arrayDeEnteros[] = {1,2,3,4,5};
Integer arrayDeEnteros2 = {new Integer(10)};int arrayDeEnteros[] = {1,2,3,4,5};
int tamanio = arrayDeEnteros.length; //5Operadores
Operadores
Los programas de computadoras se apoyan esencialmente en la realización de numerosas operaciones aritméticas y matemáticas de diferente complejidad.
Los operadores son símbolos especiales que sirven para ejecutar una determinada operación, devolviendo el resultado de la misma.
Para comprender lo que es un operador, debemos primero introducir el concepto de Expresión. Una expresión es, normalmente, una ecuación matemática, tal como 3 + 5. En esta expresión, el símbolo más (+) es el operador de suma, y los números 3 y 5 se llaman operandos. En síntesis, una expresión es una secuencia de operaciones y operandos que especifica un cálculo.
Operador de asignación
Es el operador más simple que existe, se utiliza para asignar un valor a una variable o a una constante. El signo que representa la asignación es el = y este operador indica que el valor a la derecha del = será asignado a lo que está a la izquierda del mismo.
Ejemplo en pseudocódigo:
Entero edad = 20
Decimal precio = 25.45
Operadores aritméticos
Son operadores binarios (requieren siempre dos operandos) que realizan las operaciones aritméticas habituales:
| Operador | Significado |
|---|---|
| + | Suma |
| - | Resta |
| * | Producto |
| / | División |
| % | Resto de la División entera |
Operadores Unitarios
Los operadores unitarios requieren sólo un operando; que llevan a cabo diversas operaciones, tales como incrementar/decrementar un valor de a uno, negar una expresión, o invertir el valor de un booleano.
++ operador de incremento; incrementa un valor de a 1
int suma=20;
suma++;
suma=21
-- operador de decremento; Reduce un valor de a 1
int resta=20;
resta--;
resta=19
! operador de complemento lógico; invierte el valor de un valor booleano
boolean a=true;
boolean b= !a;
b=false
Operadores Condicionales
Son aquellos operadores que sirven para comparar valores. Siempre devuelven valores booleanos: TRUE O FALSE. Pueden ser Relacionales o Lógicos.
Relacionales
Lógicos
Los operadores relacionales sirven para realizar comparaciones de igualdad, desigualdad y relación de menor o mayor.
| Operador | Significado |
|---|---|
| == | Igual a |
| != | No igual a |
| > | Mayor que |
| >= | Mayor o igual que |
| < | Menor que |
Los operadores lógicos (AND, OR y NOT), sirven para evaluar condiciones complejas
| Expresión | Operador | Resultado |
|---|---|---|
| a && b | AND | true: si a y b son verdaderos. false: si a es falso, o si b es falso, o si a y b son falsos a |
| a || b | OR | true: si a es verdadero, o si b es verdadero, o si a y b son verdaderos. false: si a y b son falsos. |
Operador ternario
Conocido como el if de una línea.
Permite devolver un valor u otro según el valor de la expresión analizada.
Expresión lógica ? valor si es verdadero : valor si es falso
Ej: valorPrecioLista = aplicaDescuento == true ? 123 : 234
Mi primer programa
Ejercicio 1 : Hola mundo!
Mostrar el texto "Hola Mundo" por la consola. Para ello utilizaremos la clase estática System.out. Esta clase nos permite acceder a la salida de la consola. En concreto usaremos el método println(texto).
https://docs.oracle.com/javase/8/docs/api/index.html
public class HolaMundo {
public static void main(String[] args) {
System.out.println("Hola Mundo");
}
}Ejercicio 2: leer datos
- Vamos a crear un programa elemental para pedir datos por consola (entrada de teclado del usuario) y para ello vamos a basarnos en una clase del API de Java: la clase Scanner.
- https://docs.oracle.com/javase/8/docs/api/index.html
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java
//Código de nuestra clase principal ejemplo aprenderaprogramar.com
public class TestPrograma1 {
public static void main (String [ ] args) {
System.out.println ("Empezamos el programa");
System.out.println ("Por favor introduzca una cadena por teclado:");
String entradaTeclado = "";
Scanner entradaEscaner = new Scanner (System.in); //Creación de un objeto Scanner
entradaTeclado = entradaEscaner.nextLine (); //Invocamos un método sobre un objeto Scanner
System.out.println ("Entrada recibida por teclado es: \"" + entradaTeclado +"\"");
} //Cierre del main
} //Cierre de la claseExplicación
-
El constructor que hemos utilizado dentro de los varios disponibles en la clase Scanner es el que tiene la signatura Scanner (InputStreamsource). Le pasamos como parámetro System.in.
-
Cuando sobre el objeto Scanner se invoca el método nextLine(), se obtiene un String que se corresponde con el texto que haya introducido el usuario mediante el teclado.
-
Este resultado del método lo almacenamos en la variable entradaTeclado. Finalmente, mostramos por pantalla cuál ha sido el contenido del texto recibido por teclado.
Explicación
- En la sentencia en que imprimimos el mensaje por pantalla hemos usado el carácter \. Este carácter, una barra invertida o backslash, no se muestra en pantalla y es interpretado por Java como indicación de que el siguiente carácter forma parte del texto. Esta es la forma que tenemos para incluir unas comillas en un texto que queramos mostrar por pantalla. Sin este escape, cualquier comilla se interpretaría como delimitadora de una cadena.
- Otra aplicación del backslash es la de forzar un salto de línea. Hasta ahora hemos trabajado invocando el método println del objeto System.out para imprimir una línea en la ventana de consola. Cabe citar que otro método disponible para System.out es print, con el resultado de que tras un print no se inserta un cambio de línea y retorno de carro como ocurre con los println, por lo que los textos aparecen “uno a continuación de otro”.
Estructuras de control
Estructuras de control
Un programa puede ser escrito utilizando tres tipos de estructuras de control:
a) secuenciales
b) condicionales
c) repetitivas
Las Estructuras de Control determinan el orden en que deben ejecutarse las instrucciones de un algoritmo: si serán recorridas una luego de la otra, si habrá que tomar decisiones sobre si ejecutar o no alguna acción o si habrá repeticiones.
Estructuras Secuenciales
Es la estructura en donde una acción (instrucción) sigue a otra de manera secuencial. Las tareas se dan de tal forma que la salida de una es la entrada de la que sigue y así en lo sucesivo hasta cumplir con todo el proceso
Operación 1
Operación 2
Estructuras condicionales
Este es el caso cuando existe un número de posibles alternativas que resultan de la evaluación de una determinada condición.
En estas estructuras, se realiza una evaluación de una condición y de acuerdo al resultado, el algoritmo realiza una determinada acción. Las condiciones son especificadas utilizando expresiones lógicas.
Las estructuras selectivas/alternativas pueden ser:
● Bifurcación
● Selección múltiple
Bifurcación: if-else
La estructura alternativa simple si-entonces (en inglés if-then) lleva a cabo una acción al cumplirse una determinada condición.
La selección si-entonces evalúa la condición y:
● Si la condición es verdadera, ejecuta la acción
● Si la condición es falsa, no ejecuta nada
if (condicion)
{
instruccion1();
instruccion2();
// etc
} else {
instruccion1();
instruccion2();
// etc
}
if (condificion) {
bloqueDeInstrucciones(); }Bifurcación: if-else-if
if (condificion) {
bloqueDeInstrucciones();
}
else {
if(condicion2){
bloqueDeInstrucciones();
} else {
bloqueDeInstrucciones();
}
}Cada cláusula else corresponde al último if inmediato anterior que se haya ejecutado, es por eso que debemos tener especial consideración de encerrar correctamente entre llaves los bloques para determinar exactamente a qué cláusula corresponde. En este caso, es de especial utilidad indentar nuestro código utilizando espacios o tabulaciones como se muestra en el ejemplo anterior.
Ejemplo bifurcación
final int totalMaterias = 4;
int materiasAprobadas = 2;
if (materiasAprobadas == totalMaterias) {
otorgarCertificado();
}
else {
continuarCapacitacion();
}-
La condición debe ser una variable o expresión booleana.
-
Si sólo existe una instrucción en el bloque, las llaves no son necesarias.
-
No es necesario que exista un bloque else.
Selección múltiple: switch
Se utiliza cuando existen más de dos alternativas para elegir. Esto podría solucionarse por medio de estructuras alternativas simples o dobles, anidadas o en cascada. Sin embargo, se pueden plantear serios problemas de escritura del algoritmo, de comprensión y de legibilidad, si el número de alternativas es grande.
En esta estructura, se evalúa una condición o expresión que puede tomar n valores. Según el valor que la expresión tenga en cada momento se ejecutan las acciones correspondientes al valor.
switch (expresion){
case valor1:
instrucciones();
break;
case valor2:
instrucciones();
break;
default:
instrucciones();
}-
La expresión ha de ser una variable de tipo int o una expresión que devuelva un valor entero.
-
Cuando se encuentra coincidencia con un case se ejecutan las instrucciones a él asociadas hasta encontrar el primer break.
-
Si no se encuentra ninguna coincidencia se ejecutan las instrucciones del bloque default, la cual es opcional.
-
El break no es exigido en la sintaxis y entonces si no se pone, el código se ejecuta atravesando todos los cases hasta que encuentra uno.
Selección múltiple: switch
Estructura repetitiva
Es muy común, encontrarse con que una operación o conjunto de operaciones deben repetirse muchas veces.
Las estructuras que repiten una secuencia de instrucciones un número determinado de veces se denominan BUCLES. Y cada repetición del bucle se llama iteración.
Todo bucle tiene que llevar asociada una condición, que es la que va a determinar cuándo se repite el bucle y cuando deja de repetirse.
Bucles infinitos: cuando la condición de finalización del bucle no se llega a cumplir nunca. Se trata de un fallo muy típico, habitual.
Hay distintos tipos de bucles:
● Mientras, en inglés: While
● Hacer Mientras, en inglés: Do While.
● Para, en inglés: For
WHILE
Esta estructura repetitiva “mientras”, es en la que el cuerpo del bucle se repite siempre que se cumpla una determinada condición
while(condicion){
accion();
}DO WHILE
Esta estructura es muy similar a la anterior, sólo que a diferencia del while el contenido del bucle se ejecuta siempre al menos una vez, ya que la evaluación de la condición se encuentra al final. De esta forma garantizamos que las acciones dentro de este bucle sean llevadas a cabo, aunque sea una vez independientemente del valor de la condición
do {
acciones();
} while (condicion);
FOR
La estructura for es un poco más compleja que las anteriores y nos permite ejecutar un conjunto de acciones para cada elemento de una lista, o para cada paso de un conjunto de elementos. Su implementación depende del lenguaje de programación, pero en términos generales podemos identificar tres componentes: la inicialización, la condición de corte y el incremento.
for (inicio; condicion; incremento) {
accion();
}
Break y continue
-
Break: es válida tanto para las bifurcaciones como para los bucles. Hace que se salga inmediatamente del bucle o bloque que se está ejecutando sin finalizar el resto de las sentencias.
-
Continue: se utiliza en los bucles (no en bifurcaciones). Finaliza la iteración que en ese momento se está́ ejecutando (no ejecuta el resto de sentencias que hubiera hasta el final del cuerpo del bucle). Vuelve al comienzo del bucle y comienza la siguiente iteración si existiera.
Rutinas
Las rutinas son uno de los recursos más valiosos cuando se trabaja en programación ya que permiten que los programas sean más simples, debido a que el programa principal se compone de diferentes rutinas donde cada una de ellas realiza una tarea determinada.
Se la puede llamar desde cualquier parte del programa principal. Además, una rutina puede opcionalmente tener un valor de retorno y parámetros. El valor de retorno puede entenderse como el resultado de las instrucciones llevadas a cabo por la rutina
rutina: sumar(a, b)
valor de retorno: suma de los números a y b.
datos de entrada de la rutina : a y b
A estos datos de entrada los denominamos parámetros y a las rutinas que reciben parámetros las denominamos funciones, procedimientos o métodos, dependiendo del lenguaje de programación.
Java Básico
By Marina Garcia
Java Básico
Java conceptos básicos
- 612