Professional Documents
Culture Documents
Apuntes y Notas
Introducción
Java nace en 1995 por James Gosling & Sun Microsystems influenciado por
los lenguajes de programación Objective-C, C++, Smalltalk y Eiffel como lenguaje de
programación de propósito general, concurrente, orientado a objetos, imperativo y
multiplataforma. Actualmente pertenece a Oracle Corporation y su última versión 2 es
el Java Development Kit 1.8 (JDK 1.8) o bien Java Standard Edition 8 (Java SE8).
Conceptos básicos
Editor de Texto Es un programa que nos permite crear y modificar archivos de texto.
1
POO (Programación Orientada a Objetos)
Es una instancia de una Clase, por lo tanto, tiene una copia de los atributos
Objeto
y comportamientos de la Clase que ha instanciado.
Es una técnica para ser ‘el molde de moldes’, no puede ser instanciada,
Abstracción por lo tanto, para utilizar los atributos y métodos de una Clase Abstracta
se ha de heredar de esta.
Es una técnica que consiste en reunir todos los elementos que pueden
considerarse pertenecientes a una misma entidad, a un mismo nivel de
Encapsulamiento
abstracción, es decir, ‘un molde’ que solo tenga los atributos y métodos
justos y necesarios para operar con ‘ése molde’ (Clase/Objeto).
2
Atributos y Comportamiento de una Clase
Son las funciones o tareas que puede realizar una clase de objetos sobre
los atributos. Estas funciones se les conoce como Métodos, Métodos de
instancia (de objetos), Métodos de clase (de todos los objetos de la clase)
Comportamientos
o Funciones Miembro. Los objetos se comunican (mensajes) entre ellos
usando métodos. Los métodos están compuestos de instrucciones y
expresiones, los cuáles están formados por operadores.
Instrucciones y Expresiones
Operadores
de Aumento y
incremento ++ y decremento --.
de Disminución
AND &, AND Lógico &&, OR |, OR Lógico ||, XOR ^, NOT Lógico ! y
Lógicos
complemento ~.
3
Comentarios
Se utiliza para mejorar la lectura del programa, tanto para el programador como
para el que lea el código pueda entenderlo. El compilador de Java ignora los
comentarios por completo cuando prepara una versión ejecutable del código fuente
de Java. El usuario final ni el programa final en ejecución verán comentarios.
/** comentario PC /* Desde la barra doble asterisco hasta barra asterisco será comentario PC.
Definen los atributos únicos de una Clase para todos sus Objetos. Se utiliza la
de Clase
palabra clave static antes del tipo de dato y del nombre del atributo.
4
Constantes en Java
Es un variable con un valor que no cambia nunca. Se utiliza la palabra clave final
para declarar una constante seguido del tipo de dato de esta variable constante,
además, es obligatorio inicializar la constante a la hora de la declaración.
Se recomienda que el nombre de las constantes sea en mayúsculas.
Clases en Java
Java trabaja con Clases, que son un conjunto de datos (atributos) y comportamientos
(métodos) para poder crear entidades (Objetos) y operar con estas.
Puede ser ejecutado desde cualquier clase de cualquier otro paquete. Este no es
public
recomendable sí lo que se quiere es proteger los atributos o métodos de la clase.
Es accesible desde la clase que lo define y desde todas las subclases (derivadas) de
protected
esta.
default Puede ser accedido por todas las clases del paquete al que pertenece.
public Sí Sí Sí Sí
protected Sí Sí Sí No
default Sí Sí No No
private Sí No No No
static Puede ser ejecutado sin crear un objeto de la clase que lo ha definido.
5
Crear Clases y Herencia Simple
La palabra clave para crear una Clase es class. Antes de la palabra clave class
Crear Clase sin herencia debemos de especificar el modificador de acceso, con public, protected o private.
Sintaxis: modificadorDeAcceso class nombreClase { /* Atributos y Métodos */ }
Parar heredar de una superclase se utiliza la palabra clave extends seguido del
Crear Clase con herencia nombre de la superclase. Sintaxis: modificadorDeAcceso class nombreSubClase
extends nombreSuperClase { /* Atributos y Métodos */ }
Se declaran con el tipo de dato que queramos, sea primitivo o de clase propia, en
caso de ser de otra clase se tendría que importar el paquete, con la palabra clave
import y el nombre del paquete a importar para poder utilizar objetos de ese paquete.
Se aplica lo mismo con las constantes, mayúsculas e inicialización obligatoria, para
los Objetos no hace falta inicializarlos.
Definen los atributos únicos de una Clase para todos sus Objetos. Se utiliza la
palabra clave static antes del tipo de dato y del nombre del atributo.
Atributos de Clase Sintaxis: static tipoDato nombreVariable;
Sintaxis: static final tipoDato NOMBRECONSTANTE = valorConstante;
Sintaxis: static nombreClase nombreObjeto;
Se declaran con el tipo de dato a retornar (devolver), que por cierto se utiliza la
palabra clave return en la definición para devolver el tipo de dato seleccionado, el
nombre del método y con el tipo de dato de sus argumentos (parámetros) si tiene. El
tipo de dato void no devuelve nada, se utiliza frecuentemente para representar datos.
Métodos de Instancia sin
Sintaxis: tipoDatoRetornar nombreMétodo( );
argumentos (parámetros)
Métodos de Clase sin Solo operan con atributos de clase, no se escribe la palabra clave static.
argumentos (parámetros) Sintaxis: tipoDatoRetornar nombreMétodo( );
Métodos de Clase con Solo operan con atributos de clase, no se escribe la palabra clave static.
argumentos (parámetros) Sintaxis: tipoDatoRetornar nombreMétodo(tipoDato argumento);
6
Instanciar una Clase o Crear un Objeto
Referencias a Objetos
7
Sistemas de Lectura y Escritura de datos a través de la terminal en Java
Se utilizan para leer (mostrar) datos por terminal y escribir (dar) datos por teclado.
La lectura por terminal (la consola del sistema) permite mostrar datos, sean cadenas
de texto o Atributos (como cadena de texto). No es necesario crear ningún tipo de
Objeto ni importar ningún paquete para poder leer (mostrar) datos por terminal.
Se utiliza el Objeto de Clase (objeto estático) System.out de la Clase PrintStream y
algún método de clase (método estático) como print( ), printf( ), println( ), entre otros.
La escritura por teclado permite introducir datos según el tipo de Dato del Atributo.
Se debe de incluir el paquete de java.io.* para usar las Clases de esa Librería.
Sintaxis para importar el paquete: import java.io.*;
En la Clase PrintStream, dedicada a la entrada y salida, está el objeto de lectura
System.out, y el objeto de escritura System.in, el cual utilizaremos con Objetos de
tipo Scanner qué también está dentro del paquete de java.io.* como Clase.
Se creará un Objeto Scanner y se inicializará con el objeto System.in.
Sintaxis: Scanner nombreObjetoEscritura = new Scanner(System.in);
Una vez creado, para utilizarlo, según el tipo de dato que vayamos a guardar,
utilizaremos los métodos nextLine( ), nextInt( ), nextDouble( ), entre otros.
NT: Hay más objetos para la entrada y salida de datos, y por supuesto más métodos
qué los mostrados aquí, indagar para más información según la necesidad de cada uno.
8
Concepto de Parámetro y Argumento
Recoger los datos que se incluyan como parámetro dentro de los paréntesis de un
método, siempre declarando el tipo de dato del Atributo a recibir. Un tipo de dato
incorrecto introducido lanzará un error tarde o temprano. Se pueden tener tantos
argumentos en un método como se desee, además, pueden ser diferentes del tipo
devuelto (de retorno) del método. Lo normal, en métodos set (introducir) es que los
métodos sean de tipo void, y en los métodos get (obtener) sean de tipo de dato de
retorno que devuelven.
Sintaxis: tipoDeDato miMetodo(tipoDeDato argumento);
paso por Ejemplo: void introducirEdad(int edad); // o bien: setEdad(int edad);
parámetro Ejemplo: void crearTriangulo(double a, double b, double c);
Ejemplo: int obtenerEdad( ) { return edad; } // o bien: getEdad( );
Clase String
char charAt(int indice) Extrae el carácter que está en la posición indicada por el valor de índice.
int lastIndexOf(int caracter) Retorna la última ocurrencia de la cadena recibida como argumento.
String substring(int inicio, int fin) Retorna la sub-cadena entre las posiciones inicio y fin.
9
Arrays
Son la forma de almacenar una lista de elementos que tienen el mismo tipo de dato
primitivo o una misma clase. Cada slot (espacio) de un array va numerado de 0 a el
último declarado menos 1, es decir, si tenemos un array de 10, este irá de 0 a 9, no
existirá el 10. En Java, los Array son objetos y hay dos maneras de declarar arrays.
Los arrays unidimensionales son los que ya conocemos, y valga la redundancia, los
de una dimensión, es decir, viendo arrays como una lista, veríamos una fila,
eso sería unidimensional, en cambio, los arrays multidimensionales pueden ser de 2
(filas y columnas) y muchas más dimensiones, según la necesidad del programa.
El uso y la sintaxis es la misma para las multidimensionales, simplemente,
trataremos con más corchetes para indicar más dimensiones.
Forma para
Sintaxis: nombreClase[ ][ ] objetoArray = new nombreClase[tamaño][tamaño];
ArrayObjetos
10
Estructuras de Control de Flujo
Condicionales (Conditionals)
Equivale a un if … else.
if ternario Sintaxis: condicion = (expresión) ? codigoIf : codigoElse;
Ejemplo: a = (a > 5) ? a+5 : a-5;
Sintaxis: switch (expresión) {
case valorAtributoExpresion:
/* Código */ break;
…
default:
/* Código */ break; }
switch Ejemplo: switch (teclaIntroducida) {
case ‘A’:
/* Código */ break;
case ‘B’:
/* Código */ break;
default:
/* Código */ break; }
Bucles (Loops)
11