Clases de Java

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 22

Class: Clase (Debe estar dentro del proyecto)

Tipos de datos en Java (tipos primitivos)


-Enteros
Int: 4 bytes de espacio para almacenamiento. Desde -2.147.483.648 hasta 2.147.483648
Ejemplo: 7
Sort: 2 bytes de espacio de almacenamiento. Desde -32758 hasta 32767
Long: 8 bytes de espacio de almacenamiento. Una barbaridad. Sufijo L
Byte: Para representar números y 1 byte de espacion de almacenamiento. Desde -128 hasta
127

-Coma Flotante (decimales)


Float: 4 bytes de espacio de almacenamiento. Aproximadamente de 6 a 7 cifras decimales
significativamente. Sufijo F.
Double: 8 bytes de almacenamiento. Permiten hasta 15 cifras decimales.

-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.

Manipulación de palabras – Cadenas


Cadenas de caracteres  Frases, palabras
String – para manipulación de cadenas

 String no es un tipo primitivo


 Cuando en java escribimos string hacemos referencia a una clase, no es como el int
que ponemos el dato.
 ¿Como almacenamos una cadena de caracteres?
String mi_nombre= “Juan”; donde mi_nombre es un objeto (instancia, ejemplar) de la
clase String.
 Métodos (más usados) de la clase String para manipulación de texto:
Lenght(): devuelve la longitud de una cadena de caracteres.
charAT(n): devuelve la posición de un carácter dentro de una cadena. (Las posiciones
empiezan a contar de 0)
substring(x,y): Devuelve una subcadena dentro de la cadena, siendo X el carácter a
partir del cuál se extrae e Y el nro. de caracteres que se quieren extraer.
equals(cadena): devuelve true si dos cadenas que se comparan son iguales y false si no
lo son. Distingue mayusculas y minúsculas.
equalsIgnoreCase(caedna): igual que el anterior pero sin tener en cuenta mayusculas y
minúsculas.

Acercamientos a los API JAVA


Hay 2 tipos de clases (predefinidas y las clases propias).
Las clases estan organizadas en paquetes

Paquetes
Java javax

Java.awt java.util java.io javax.activity javax.annotation

Java.util.regex Java.lang

String System Math Thread

Substring() Equals() Round() Sqrt()

¿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;

Entrada y salida de datos. Formato de resultados

Salida de datos: Información que existe en nuestro programa y la idea es sacarlo al


exterior. Ejemplo hemos usado el System.out  sacando información.

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.

Si queremos hacer un salto usamos condicional.


Si queres repetir  usamos bucle.

Condicional  puede acompañarse por el else (no obligatoria)


If: codigo a ejecutar si la condición es verdad(true);
If(condición) {
}
Switch: cuando hay que evaluar un montón de condición fija.  puede acompañarse por
defaut (no es obligatoria)
Switch(valor a evaluar){
Case valor 1:
codigo a ejecutar;
Break;
Case valor 2:
Codigo a ejecutar;
Break;
Case valor 3:
Código a ejecutar;
Break;

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ónverdad){
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

MATRICES ARRAYS, ARREGLOS


¿Qué es? Es una estructura de datos que contiene una colección de valores del mismo tipo.
¿Para qué sirve? Para almacenar valores que normalmente tienen alguna relación entre sí.
Sintaxis:
Declaración: int[] mi_matriz = new int[10];
Pos 0 Pos1 Pos2 Pos Pos4

Matriz de tipo
entero 25 8 -7 92
15

Declaración: int[]mi_matriz= new int[5]; Mi_matriz[0]=15


Mi_matriz[1]=25
Opción alternativa para declarar: Mi_matriz[2]=8
Mi_matriz[3]=-7
Int[] mi_matriz={15,25,8,-7,92}; Mi_matriz[4]=92
El bucle for generalmente se usa para almacenar los valores en la matriz. Lo usaría para
imprimir todos los valores de una matriz.

Bucle por Each – Matrices


Matrices Bidimensionales (Array dentro de otro array)  de dos dimensiones

0,0 1,0 2,0 3,0


0,1 1,1 2,1 3,1
0,2 1,2 2,2 3,2
0,3 1,3 2,3 3,3
0,4 1,4 2,4 3,4
Existe una forma de ingresar los valores de una matriz de otra forma:
POO - ¿Qué es la programación orientada a objetos?
Java 100% orientado a objetos

Existen dos formas de programar (paradigmas):


Paradigmas de
Programación

Programación orientada a Programación orientada a


procedimientos(antiguo) objetos(nuevo)

- Surgieron en década de 60/70. -En un intento de simplificar la


Cuando se creaba una aplicación programación se le intento dar al
Ventajas de POO
- Programas divididos en “trozos”, “partes”, “módulos” o “clases”. Modularización (dividir un gran
programa en diferentes partes que de una u otra forma se conectan entre sí para en un futuro generar un
todo en uno).
- Muy reutilizable. Herencia. (Podes reutilizar un objeto, para otro objeto)
- Si existe fallo en alguna línea de código, el programa continuará con su funcionamiento. Tratamiento de
Excepciones. (Posibles errores que pueden ocurrir pero que se pueden tratar)
- Encapsulamiento.

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.

Y para no permitir eso, debemos modificar desde la propia clase (coche.java)


¿Como encapsulamos la rueda para no permitir lo de arriba? Debemos agregar un modificador de acceso que
consiste poner delante del dato la palabra “private”
Al encapsular el dato, no es visible. Solo es modificable desde la propia clase. Siempre debemos encapsular para
que no se pueda acceder ya que estamos creando una plataforma.
¿Entonces cómo hago para ver cuantas ruedas tiene mi coche, ya que tengo encapsulado las ruedas?
Hay datos que están encapsulados, pero las funcionalidades no lo están(métodos). Con los métodos nos van a
permitir que nuestras clases interactúen entre si formando una unidad para que un programa funcione.

Métodos getters and Setters (métodos de Acceso)

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

Objeto: Ejemplar perteneciente a una clase.

PASO DE PARAMETROS
Paso de parámetros de los asientos:

CONSTRUCCIÓN DE OBJETO EMPLEADO


NOMBRE

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

Utilización de palabra “Final”


Con la palabra final delante del objeto evito que en el main pueda cambiar el nombre
Private final

Evito tener que hacer eso pero con trabajador1.cambianombre

Con esto me aseguro que no cambio el dato al valor.

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.

RESUMEN IMPORTANTE SOBRE STATIC


 No actúan sobre objetos.
 No acceden a campos de ejemplar (variables/constantes declaradas en la clase), a menos que estas sean
también static.
 Para llamarlos se utiliza el nombre_clase.nombre_metodo

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

Diseño de herencia. La regla “Es un…”

Este sería el diseño ideal:

Vehículo

Coche Furgoneta Camión Moto

Coche, furgoneta, camión, moto heredan de la clase vehículo, ya que todos son vehículos.

DISEÑANDO UNA HERENCIA


Preguntas que debo hacerme para el diseño de herencia en referencia a la clase empleado.
Regla: “Es un…”
¿un jefe es un empleado? (siempre) SI  CONSTRUIR CLASE JEFE Y QUE HEREDE DE CLASE EMPLEADO
¿un empleado es un jefe? (siempre) NO
De esta forma puedo determinar que clase va a heredar de la otra.
La clase jefe deberá heredar de un empleado, pero para eso debo contestar las preguntas mencionadas.

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.

REFUNDICIÓN DE OBJETOS(CASTING). CLASES Y METODOS FINAL

Final aplicado a clases y objetos


Declarar una clase como Final con la instrucción final class Jefatura extends empleado provoca que no pueda seguir
creando clases por debajo de la nombrada y me saldría de esta forma:
Lo mismo sucede con los métodos.

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.

Abstract class persona {


}  asi se declara una clase abstracta y adentro los constructores, etc. Y dentro de esto debería tener el método
abstracto llamado dameDescripcion

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

También podría gustarte