Clases de Java
Clases de Java
Clases de Java
-Char
Para representar carácter Unicode.
-Boolean
Puede ser Verdadero o Falso (true or false)
Variables en Java
¿Qué es una variable? Espacio en la memoria del ordenador donde se almacenará un valor que
podrá cambiar durante la ejecución.
¿Por qué hay que utilizar una variable? Porque a la hora de crear un programa surge la
necesidad de guardar datos temporalmente que necesitarás utilizar en el futuro en ese mismo
programa.
¿Cómo se crea una variable en java? Especificando el tipo de dato que almacenará en su
interior + el nombre de la variable. Ejemplo int salario;
¿Qué es iniciar una variable? Es darle un valor. Nombre_variable =valor. Ejemplo: salario =
2000; Java no permite utilizar variables que no se hayan iniciado.
Objetos(POO)
En java es todo considerado un objeto. La consola también es un objeto.
Los objetos tienen propiedades y métodos.
COCHE—PROPIEDADES ROJO, ALTO, ANCHO
METODOS ARRANCAR, PARAR, ETC.
Constantes
¿Qué es una constante? Espacio en la memoria del ordenador donde se almacenará un valor
que no podrá cambiar durante la ejecución del programa.
¿Por qué hay que utilizar constantes? Porque a la hora de crear un programa a veces surge la
necesidad de guardar datos temporalmente que necesitarás utilizar en el futuro en ese mismo
programa.
Ejemplo: Ejemplo cuando hacer un programa donde tenga que convertir unidades. Donde voy
a necesitar tener un valor fijo, y ahí utilizo una constante.
¿Cómo se crea una constante? Utilizando la palabra clave final y a continuación especificando
el tipo de dato que almacenará en su interior + el nombre de la constante = valor.
Ejemplo: final double a_pulgadas = 2,54;
IMPORTANTE: El valor de una constante no podrá cambiar.
OPERADORES
Aritméticos:
o Suma: +
o Resta: -
o Multiplicación: *
o División: /
Lógicos, relacionales y booleanos:
o Mayor que: >
o Menor que: <
o Mayor o menos que: <>
o Distinto que: !=
o Igual que: ==
o Y lógico: &&
Incremento y decremento:
o Incremento: ++ (incrementar en 1 el valor al que lo estes aplicando)
o Decremento: -- (Resta 1 al valor que lo estes aplicando)
o Incremento: +=n (+=3 incrementar en 3)
Concatenación:
o Une o concatena = + (va a depender del contexto para no mezclar con el operador de
suma)
Clases en Java
Clases propia: Son las que creamos nosotros. Ejemplo clase de Declaraciones_Operaciones
Toda clase debe tener un main.
Clases predefinidas: clase construidas que están en el lenguaje de java.
Clase de java
Propias Predefinidas
String Math
Array Thread
Clase Math: La clase Math contiene un muestrario de métodos que nos permitirán realizar
cálculos matemáticos.
-Math.sqrt(n) = raíz cuadrada de un número.
-Math.pow(base,exponente)= potencia de un número. Base y exponente son doubles.
-Math.sin(ángulo).Math.cos(ángulo).Math.tan(ángulo).Math.atan(ángulo)
-Math.round(decimal)=Redondeo de cifra
-Math.PI= Constante de clase con el número PI.
Paquetes
Java javax
Java.util.regex Java.lang
¿Por qué es necesario organizar las clases por paquetes? Por el mismo motivo que existen
carpetas en Windows.
Para organizar las clases.
Para evitar conflictos de nombre.
Para controlar la visibilidad de las clases.
TEMA IMPORTANTE: ¿Qué ocurre si en vez de utilizar estas clases que venimos
utilizando hasta ahora, queremos utilizar otra clase de la api de java que no se
enucentra en la java.lang sino que se encuentra en otro paquete, ejemplo java.util? No
se podría utilizar a menos que se indique.
Debo realizar lo siguiente con el import, ya que Scanner pertenece al paquete java.util
Si solo quiero quiero usar el scanner en vez de usar todas las clases uso import
java.util.scanner;
Pero para hacer nuestros programas hay que ver como introducimos datos. (Entrada
de datos).
Lo ideal sería construir una IGU (INTERFAZ GRAFICA DE USUARIOS)
Algo muy parecido a formulario de Access.
Mientras tanto vamos a intentar conseguir entrada de datos mediante una serie de
clases:
Scanner. Es bastante reciente en java, y nos va a permitir ingresar información a través
de la consola de sistema. Tiene 3 metodos: nextLine(), nextInt(), nextDouble()
Métodos no estáticos
JOptionPane. Es una de las primeras versiones que se utilizó en Java. Aca construimos
una especie de ventana donde tiene un cuadro de texto, donde hay una opción de
aceptar y otro cancelar. Tiene el método showInputDialog () método estático.
Los métodos que no son estáticos implican que utilices un objeto perteneciente a la
clase scanner delante de él. Que creemos un objeto perteneciente a la clase.
Scanner
Un constructor es un método especial. Poseen el mismo nombre que la clase.
El scanner File source por ejemplo nos indica que va a tomar el objeto desde la consola. Y se
debe utilizar el System.in para introducir información
Para utilizar el constructor debemos poner el new
Condicionales y blucles
Flujo de ejecución: Orden que sigue ejecución en java. Empieza la ejecución línea a línea de
arriba abajo. Puede modificarse ese flujo de ejecución.
Esta modificación en el flujo, se usa con saltos de líneas, antes se usaba el goto, gosub.
Esto daba lugar eapguetti, asi dando saltos todo el tiempo, pero esto generaba inconvenientes.
Contamos con 2 estructuras en java para modificación de flujo.
Condicional II – Switch
Bucles en Java
Bucle: Repetir una serie de líneas de código dentro de un programa.
Bucles indeterminados no sabemos hasta ejecutar el programa cuantas veces se van a
repetir las líneas de códigos que hay en el interior del bucle
While (mientras)
While (condiciónverdad){
Línea 1
Linea 2
Linea 3
Linea4 };
Do-While() Aunque la condición sea falsa, ejecuta igual lo que hay dentro del bucle
al menos una vez.
Do{
Línea 1
línea 2
línea 3} while (condición);
Bucles determinados es lo que sabes sin necesidad de ejecutar el programa, ya sabes
cuantas veces se va a repetir.
For:
For(inicio bucle, condición, contador bucle){
Línea 1
línea 2
línea 3}
For-each
Matriz de tipo
entero 25 8 -7 92
15
Vocabulario de la POO
- Clase
- Objeto
- Ejemplar una clase. Instancia de clase. Ejemplarizar una clase. Instanciar una clase.
- Modularización
- Encapsulamiento/encapsulación.
- Herencia
- Polimorfismo
Clases y Objetos
¿Qué es una clase? Es un modelo donde se redactan las características comunes de un grupo de objetos.
Objetos se construyen a partir de una clase. Con esto quiero decir que por ejemplo yo tengo la base de un
auto (sólo la base) que sería la clase, y esa misma base es compartida(características) en dos objetos (autos de
diferentes marcas).
Objeto:
Tiene propiedades(atributos):
Color
Peso
Alto
Largo
Tiene un comportamiento (¿Qué es capaz de hacer?):
Arrancar
Frenar
Girar
Acelerar
Objeto
- Accediendo a propiedades de objeto desde código(pseudocódigo): mitad programación, mitad
lenguaje humano
Renault.color= ”rojo”;
Renault.peso=1500;
Renault.ancho=2000;
Renault.alto=900;
nombre.propiedad=valor
- Accediendo a comportamiento de objetos desde código(pseudocódigo):
Renault.arranca();
Renault.frena();
Renault.gira();
Renault.acelera();
nombre.metodo();
¿Qué es un método constructor? Es un método especial que se encarga de dar un estado inicial al objeto.
Un programa de java está compuesto por más de una clase. Como instanciar una clase:
MODULARIZACIÓN
División de programa en partes o pequeños módulos. Si vamos al ejemplo de Modularización con el coche, nos
damos cuenta de que creamos dos clases: Coche.java y Uso_Coche.java , y vemos que está dividido en dos partes y
podemos trabajarla por separado, pero al final voy a requerir una de otra para que funcione.
Siempre hay una clase principal que es por donde comienza el programa, y cual se toma? Es la que toma el Main,
esta sería la principal. La ejecución siempre empieza por clase que tiene método main.
El operador NEW lo que hace es llamar al constructor de la clase, una vez que termina de leer, vuelve a continuar
con la línea del main.
ENCAPSULACIÓN
Cuando varias clases estan comunicadas entre sí debe usarse el concepto de encapsulamiento. Hay cosas que se
deben poder hacer desde el propio modulo o clase, o hay cosas que se deben poder hacer desde la clase principal.
De eso se trata la encapsulación.
2 tipos de métodos
de acceso
METODO GETTERS
Setters o definidores: Encargado de modificar el valor de Getters o definidores: Destinado a captar o proporcionar el valor de
las propiedades de los objetos. esa propiedad.
Public void nombre_metodo(){código}
¿ que indica el void? Que el método no devuelve ningún Public dato_a_devolver nombre_metodo() { código + return}
valor.
Método Setter
Luego si yo quiero que me diga el valor del color, debo construir método getter para color
PASO DE PARAMETROS
Paso de parámetros de los asientos:
SUELDO
EMPLEADO
FECHA ALTA
SUBIR SUELDO
Siempre la ejecución del programa empezará por el método mail de la clase publica.
NOMBRE, SUELDO Y FECHA ALTA VAN A SER PROPIEDADES
Revisar uso_empleado.java
USO DE STATIC
Se lo puede definir como el uso para asignarle un id a cada uno de los objetos. Es decir, yo tengo el trabajador 1, y
podría asignarle el id 1, y tengo el trabajador2 a quien automáticamente podría asignarle el id2, el static ayuda a
realizar esto sin tener que crear variables de id para ir asignándole manualmente.
Static, es una constante que pertenece a la clase Math.
¿Por qué el método main comienza asi?
Un programa java puede tener muchas clases. Clases que pueden estar en único fichero fuente o clases que pueden
estar divididas en varios ficheros fuentes. Todos los programas java deben tener una clase principal que en ese caso
sería la Public Class que es la que tiene el método main.
El método main no devuelve ningún dato, es decir no tiene instrucción return, por eso se le agrega el modificado
“Void”, también tiene el acceso modificador “public”, pero lo tiene para que se pueda acceder a este método main
desde fuera de la clase donde está definido y “Static” indica que el método main es estático, el método main no
actúa sobre ningún objeto. Cuando nosotros creamos un programa java, no hay ningún objeto construido, es más el
método main es el que se encarga de construir esos objetos, y por eso es estática, porque cuando comienza a
ejecutar el programa de java, no hay ningún objeto construido y como no hay ningún objeto construido, este
método debe de poder ser utilizado sin la necesidad de objetos.
El string significa que recibe parámetros de un array y ese array se llama “args” que es del tipo string.
Los métodos Static NUNCA podrían acceder a las variables de clase que fuimos declarando. A menos que la variable
sea estática.
SOBRECARGA DE CONSTRUCTORES
En una misma clase puede haber varios constructores:
Si quiero pasar parámetros por default, debo hacer lo siguiente a constructor:
Con esto a la hora de construir los objetos, automáticamente me toma valores por defecto y no tengo que
molestarme en pasarle a los objetos todos los datos.
HERENCIA
¿Qué es eso de la herencia? Reutilización de código
Forma de heredar las características de la clase coche, para clase Furgoneta, utilizando el extends Coche
{
Coche superclase (abuelo) o también se dice Clase padre
Furgoneta subclase (hijos) o también se dice Clase hijo
Furgoneta va a tener las características heredadas de la clase coche y además va a tener las
características de la clase furgoneta.
Java NO permite herencia múltiple, es decir no puedo poner public class furgoneta extends coche,
furgoneta, etc.
Cuando armo el constructor de furgoneta debo llamar a la clase coche con super();
De esta forma en uso_vehiculo, puedo llamar a las diferentes clases, y de esta forma, puedo llamar a las
dos clases, tanto coche como furgoneta. Desde uso_vehiculos
Vehículo
Coche, furgoneta, camión, moto heredan de la clase vehículo, ya que todos son vehículos.
EMPLEADO SUPERCLASE
JEFE SUBCLASE
Creo clase jefatura:
POLIMORFISMO
Está relacionado con lo que se conoce como principio de sustitución. ¿Y que significa este término de sustición?
Viene a decir que podemos utilizar un objeto de una subclase siempre que el programa espere un objeto de la
superclase o, en otras palabras, un objeto se puede comportar de diferentes formas dependiendo del contexto. Las
variables objeto son polimórficas.
Uso de una clase en otra clase a través de un array ya que jefe es un empleado. En la imagen se ven dos formas de
pasarle el polimorfismo.
Enlazado dinámico: es que la máquina virtual de java es capaz en tiempo de ejecución de saber a qué método
perteneciente a la clase padre o subclase tiene que llamar.
CLASES ABSTRACTAS
Método abstracto:
Public abstract String dameDescripcion(); no lleva llave, apertura, ni nada dentro de su interior
Cuando declaro método abstracto estoy obligado a declarar abstracta la clase. En cuanto tenga aunque sea un
método abstracto ya debo declarar la clase si o si abastracta.
MODIFICADORES DE ACCESO
MODIFICADOR CLASE PACKAGE SUBCLASE TODOS
Public SI SI SI SI
Protected SI SI SI NO
Private SI NO NO NO
Por defecto SI SI NO NO
SI:VISIBLE
NO: NO VISIBLE