JAVA
JAVA
ENTEROS BYTES
REALES (DECIMALES)
CHAR (CARÁCTER)
BOOLEAN
TRUE 2
FALSE 2
JAVA
1º COMPILA, 2º INTERPRETA.
Transforma el código fuente (.java) a un archivo bytecodes, que es un archivo intermedio con extensión (.class). Este archivo lo interpreta java
desde cada sistema operativo
CARPETA SRC: Almacena los archivos (.java) del proyecto y los distintos recursos/imágenes
CARPETA BIN: Almacena los archivos (.class), los bytecodes, que son archivos multiplataforma
APPLETS: Son aplicaciones en java ejecutadas en paginas web
MODIFICADORES DE ACCESO
SIN MODIFICADOR: Permite el acceso a cualquier miembro dentro del mismo paquete
PUBLIC: Permite el acceso a todos los miembros de cualquier paquete
PROTECTED: Permite el acceso solo a la propia clase y sus subclases
PRIVATE: Permite el acceso solo a la propia clase
MODIFICADORES DE CLASE/VARIABLES/MÉTODOS
VOID: No devuelve ningún dato
FINAL
o En variables, define constantes, que no requieren ser inicializadas, pero una vez hecho, su valor no puede cambiar
o En métodos, no permite que se sobrescriban
o En clases, detiene la herencia, sin permitir subclases
ABSTRACT
o En clases, no permite instanciarla, solo heredar de ella. Es una clase menos especializada, la mas genérica. Si tiene algún método abstracto, la
clase tiene que ser abstracta.
Abstract class NombreClase { …… }
o En métodos, cuando hereden de esta clase, obligatoriamente deben sobrescribirlo, porque el método realiza funciones diferentes en cada clase.
Solo se declara no se desarrolla
Public Abstract TipoDato NombreMetodo(); NO TIENE LLAVES
STATIC
o En variables, permite su uso para clases e instancias de la clase. Es útil para implementar contadores de objetos de clase. Para acceder a su
valor, requiere llamar a la clase contenedora NombreClase.NombreVariable;
Static TipoDato NombreVar = Valor;
o En métodos, permiten su implementación, transformando en métodos de clase, no de objeto. Solo pueden acceder a las variables estáticas.
NombreClase.NombreMetodo();
o En clases, permite ser accedida o invocada sin tener que instanciarla desde la clase pública
Static NombreClase { …… }
VARIABLES
TipoDato NombreVar = Valor;
CONSTANTES
OPERADORES Y EXPRESIONES
&& = Y Lógico
|| = O Lógico i++ Se incrementa a posterior de su uso
++ Incremento 1
++i Se incrementa inmediatamente
-- Decremento 1
+=nº Nº Valor incremento
-=nº Nº Valor decremento
MÉTODO MAIN
REFUNDICION
Consiste en la conversión de un tipo de dato en otro tipo, para poder utilizarlo de otra manera
API JAVA
Esta formado por los paquetes que se pueden importar para aumentar las funcionalidades del código. Cada paquete esta formado por muchas clases.
IMPORTAR PAQUETES Importa todo el
El paquete por defecto es Java.lang String Round contenido del
System Sqrt Import NombrePaquete.* paquete
Math
Se utiliza directamente sin importarlo Thread
Para importar las clases usadas automáticamente en Eclipse: Source Organice Imports
MANIPULACION DE CADENAS
CONDICIONALES
Simplificado Extendido
if (condición) {
Código a ejecutar si la condición es True;
} Condición entre paréntesis
else if (condición) {
Puede haber todos los que se Código a ejecutar si la condición es True;
necesiten }
else {
No requiere Código a ejecutar si nada de lo anterior es valido;
condición }
CONDICIONAL SWITCH
BUCLES
while (condición) {
Código a ejecutar si la condición es True;
}
Break: Sale del bucle y sigue ejecutando código
Continue: Detiene y pasa a la siguiente iteración del bucle sin ejecutarse
BUCLE DO WHILE
Ejecuta su código una vez y después entra al bucle
(aunque la condición del bucle sea falsa)
Do {
Código a ejecutar }
while (condición);
BUCLE FOR
Por convención int i = 0
BUCLE FOR EACH (FOR MEJORADO) Se utiliza para recorrer elementos del array
ARRAYS
( Matrices )
Son estructuras de datos que contienen valores del mismo tipo y normalmente relacionados entre si. Una vez inicializados, no se pueden ampliar su
capacidad. Pueden tener cualquier tipo de dato, desde primitivos hasta objetos de clase.
Se recorren con un bucle for o un for mejorado Las posiciones comienzan a contar en 0
TipoDato [ ] [ ] = new TipoDato [Nº 1ª Dimensión] [Nº 2ª Dimensión] 0,1 1,1 2,1 3,1
Contiene directamente los valores
2 corchetes, 3, 4, … dentro de cada dimensión 0,2 1,2 2,2 3,2
La segunda forma simplificada, declara tantos valores como se deseen tener en cada corchete de la segunda dimensión. La cantidad de conjuntos de
segunda dimensión dentro del corchete grande, indica la longitud de la 1º dimensión.
Los dos tipos de declaración son validos, pudiendo hacerlo directamente inicializados, o hacerlo de uno en uno.
Se pueden recorrer con dos bucles for o for mejorados anidados
ENTRADA DE DATOS
IMPORT java.util.Scanner
nextLine () Texto
nextInt () Enteros
Scanner nextDouble () Decimales
…
No estáticos objeto.metodo()
Constructor de Scanner
Para recoger los datos introducidos se requiere declarar la variable para el tipo de dato esperado y el método en su interior dependiendo del dato a
recibir.
o String nombreVar = nombreEscaner.nextLine()
o int nombreVar = nombreEscaner.nextInt()
o double nombreVar = NombreEscaner.nextDouble()
o …
IMPORT javax.swing.*
o Es estático JoptionPane.metodo()
o Devuelve Strings, que requerirán transformaciones a diferentes tipos de datos según se requieran usar a posterior
o Al ser cadenas de texto, se pueden almacenar en variables de tipo String
JOptionpane.showInputDialog(“mensaje”) JOptionpane.showMessageDialog(“mensaje”)
Lanza una ventana de solicitud de información al usuario y lo Lanza una ventana de mensaje al usuario advirtiéndole de algo. El
almacena en un formato String. El mensaje se muestra al usuario mensaje se indica por parámetro
TRANSFORMACIONES
A ENTEROS
o Integer.parseInt(argumento)
Estático
o Se puede declarar directamente una variable de tipo int para almacenar la transformación de un JOptionPane int nombreVar =
Integer.parseInt(JOptionPane…)
A DOUBLE
o Double.parseDouble(valorAtransformar)
Estático
o Se declara una variable de tipo double para almacenar el resultado Double nombreVar =
Double.parseDouble(valor)
FORMATEO DE DECIMALES
Reutiliza el código para objetos distintos. Evita crear una clase para cada tipo de objeto que vayas a utilizar en el proyecto
No existe herencia entre clases genéricas Solo valido para OBJETOS, no sirven tipos
primitivos
Puede ser cualquier tipo de OBJETO
MÉTODOS GENERICOS
o Trabajan con cualquier tipo de objetos. No tienen porque estar dentro de clases genéricas. Pueden estar dentro de clases normales.
T puede ser cualquier tipo de objeto. No pueden ser
Tipo de dato que recibe datos primitivos
Modificadores <T> T nombreMetodo (..) Devuelve el mismo tipo de dato que recibe
o Para utilizar métodos para un tipo de objeto o cualquiera de sus subclases, hay que especificar un tipo comodín
NombreClase < ? extends tipoObjeto > Permite utilizarlo tanto para el objeto como sus herencias
EXCEPCIONES
Normalmente por error hardware
Clase Exception