Sei sulla pagina 1di 16

Video #2

bytecodes = ni codigo maquina ni codigo fuente, "class" + JRE = codigo mquina


ventaja= no tener que programar para cada plataforma.
desventaja= tener siempre JRE.
compilar= transformar a codigo maquina
programador --> .java --> compilador--> .class --> + JRE = Windows
+ JRE = Mac
+ JRE = Linux
Esquema llamado Write once, run everyone
fichero bytecodes= cualquiera puede ejecutarlo con JRE. Java Runtime Environment.
JDK= te obliga a compilarlo y despues ejecutarlo (dos pasos)
Eclipse/netbeans= tienen su Propio compilador.

JRE http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-
2133155.html
Eclipse: http://www.eclipse.org/downloads/

Eclipse= Para varios lenguajes = C++, android, etc (hay que instalar plugins)
tambin tiene un entorno de pruebas para probar el programa

Video #3

1991 Sun Microsystems comprada por Oracle. Lenguaje que se pueda utilizar en
pequeos electrodomsticos, todos tienen
un software. Cdigo pequeo, neutro respecto a la arquitectura, para que sirva en
dispositivos mientras se actualizan. Se adapta
a cualquier dispositivo.
Al principio no lo podan vender.
1994--> stand by
"internet se haca ms grande y las caractersticas de Java se ajustaban como un
guante a la naturaleza de internet"
era neutra, serva para cualquier dispostivo. La aplicaron al mundo de internet,
crearon un navegador en 1996 HotJava, ligero,
que pueda ejecutar un cdigo en su interior (Applet) Programa en java que se
ejecuta en un navegador. No lo tomaron en serio.
No tena la potencia suficiente para hacer aplicaciones serias. Fueron aadiendo
nuevas caractersticas y cada vez se hizo con ms potencial
-Java= Sencillo en el sentido de quitar las caractersticas ms engorrosas de otros
lenguajes de programacin.
-Es orientado a objetos.
-Buen tratamiento de redes. Se adapta bien para trabajar en internet.
-Es "Seguro", no tanto.
-Es Neutro.
-Es adaptable, igual a todas las plataformas
-interpretado
-alto rendimiento

Ideas errneas:

- Java no es una extensin de HTML


- Java no tiene nada que ver con JavaScript
- Todos los programas de java no se ejecutan en una pagina web, solo applets
- Java no es el ms inseguro.
- Java no es el ms seguro.

*********************************************
Video #4

Estructuras principales:

podemos crear aplicacines de consola(CMD), aplicaciones de propsito


general(programas con diversos objetivos), applets (dentro de un navegador)

java= case sensitive. quiere decir que distingue entre mayusculas y minusculas

public= Modificador de acceso.


class= clase: todo programa java tiene que estar al menos dentro de una clase.

todas las llaves tienen que cerrarse en el mismo orden que se abren. La primera en
cerrarse es la ultima en abrir.

todos los programas se guardarn en src


clases, no espacios en blanco ni caracteres extraos, empiezan por mayuscula y una
letra.
Todas las sentencias terminan en ";"
*= sin guardar
src= .java
bin= .class

*************************************
Video #5

Tipos de datos en JAVA


Tipos primitivos:
-Enteros (Nmeros enteros)
-Int: 4 bytes de espacio para almacenamiento Desde -2,147,483,648 hasta
2,147,483,647
-Short: 2 bytes de espacio para almacenamiento desde -32,768 hasta 32,767
-Long: 8 bytes de espacio para almacenamiento. Una barbaridad. Sufijo L
-Byte: 1 byte de espacio para almacenamiento. Desde -128 hasta 127
-Coma Flotante (Nmeros decimales)
-Float: 4 bytes de espacio de almacenamiento. Aproximadamente 6 a 7 cifras
decimales significativas. Sufijo F
-Double: 8 bytes de espacio para almacenamiento. Aproximadamente 15 cifras
decimales significativas.
-Char: Para representar caracteres, entre comilla simple.
-Boolean: unicamente true o false (condiciones).

Objeto de tipo String: Cadenas de texto.

Variable: Espacio en la memoria del pc donde se almacenar un valor que podr


cambiar durante la ejecucin del programa
Surge la necesidad de guardar datos temporalmente que usars en un futuro.
tipo de dato + nombre (int salario).
Inciar una variable es darle un valor.
Variables --> memoria --> Ram.
Ram: procesos internos. solo por arrancar va ocupando ram. Si se abre programas se
va ocupando
No se tiene disponible toda la ram.

int num;
num =5;

o
int num = 5;

lo ideal sera aprovechar el espacio. Byte = num 5

int= comodin
double= comodin

***********************************
Video #6
todos son objetos POO, hasta la consola es considerado un objeto.

objetos= Propiedades y metodos


mesa: alto ancho temperatura
metodo: qu capaz de hacer un objeto: en un auto: arrancar, frenar.

consola: Propiedades y metodos.


System.out.println es un objeto perteneciente al sistema que imprime algo

comentarios: //mensaje
o /* y termina */

***********************************************************************************
**
Video #7

Constante: Espacio en la memoria del ordenador donde se almacenar un valor que no


podr cambiar durante la ejecucin del programa
Surge la necesidad de guardar datos temporalmente que necesitars utilizar en el
futuro en ese mismo programa. Deben ser fijos.
Utilizando la palabra clave "Final" y a continuacin especificando el tipo de dato
que almacenar en su interior + el nombre de la constante = valor
por ejemplo final double a_pulgadas=2,54;

Operadores en java:

Aritmticos
Suma +
Resta -
Multiplicacin *
Divisin /

Logicos, relacionales y booleanos

mayor que >


menor que <
mayor o menor que <>
!= Distinto que
== igual que
&& y lgico
|| o lgico

incremento o decremento

++ incremento incrementar en 1 el valor al que ests aplicando


-- decremento resta 1

+=n por ejemplo +=3 aumenta el nmero al que ests aplicando


-=n
Concatenacin

+ une o concatena

***********************
Video 8

Exception
Errores de compilacin (Escribir bien) valor irresoluble (intentar cambiar una
constante)
Errores de ejecucin (Se pueden solventar)

***************************************
Video 9

Hay clases propias y clases predefinidas


clases propias las creamos nosotros.
las clases predefinidas se nos suministran con el lenguaje de programacion para
que podamos utilizar en caso de que las necesitemos
Predefinidas: por ejemplo String, math, Array, Thread
cadenas de texto, calculos matematicos,matrices, etc
son tantas que no se pueden memorizar, hay una biblioteca: API Java.

Math

-Math.sqrt(n): raz cuadrada de un numero


-Math.pow(base, exponente): Potencia
-Math.sin(ngulo). Math.cos(ngulo). Math.tan(ngulo).Math.atan(ngulo)
-Math.round(decimal): redondeo de un numero
-Math.Pi: constante de clase con el nmero PI

Constantes de clases, no se pueden cambiar los valores (Pi)

****************
video 10

Refundicin: Convertir un tipo de dato en otro.

El metodo round devuelve un long, no se pueden almacenar en INT.


Consiste en poner el tipo de dato que queremos tranformarlo entre parentesis

int raiz=(int)Math.round(num1)

***************************
Video #11

Clase String: Cadenas de texto (Frases)

-String no es un tipo primitivo.


-Como almacenamos una cadena de caracteres? String mi_nombre="Juan"; donde
mi_nombre es un objeto, (instancia ejemplar) de la clase String.

Instanciar= Darle un nombre a un objeto (string)


ejemplarizar= tambien

Mtodos ms usados:
length(): Devuelve la longitud de una cadena de caracteres. mi_nombre.length()=4
charAt(n): Devuelve la posicin de un carcter dentro de una cadena (empieza en 0)
mi_nombre.charAt(2)= a
substring(x,y): devuelve una subcadena dentro de la cadena. siendo X el caracter a
partir del cual se extrae e Y el numero de caracteres que se quieren extraer
equals(cadena): devuelve true si dos cadenas que se comparan son iguales y false si
no lo son. Disginguen M y m
equalsIgnoreCase(cadena): Igual que el anterior sin M y m.

******************************

Video #13

Clases predefinidas (API)


Clases propias.

Paquetes(Package), como si fuesen carpetas: Para organizacin.

Paquetes:
Pueden ser java --> Java.awt
--> Java.util --> java.util.regex
--> Java.io
--> etc
Pueden ser javax
--> Javax.activity
--> Javax.annotation
--> etc

dentro de cada uno hay clases.

https://docs.oracle.com/javase/7/docs/api/

Paquetes: Se inventaron para organizar, para evitar conflictos de nombres, para


controlar la visibilidad de las clases

Directiva "Import" para importar una clase que no pertenece a java.lang

***********************************************************************************
******
Video #14

Salidas: Infomacin hacia el exterior --> System.out.println (consola)


Entradas: Introducir info.
IGU--> Interfaz Grfica de Usuario. (Formulario) Swing y AWT

Scanner --> introducir info en consola.

Scanner --> nextLine()


--> nextInt()
--> nextDouble()

Clase JOptionPane (ventana sencilla con cuadro de texto y un boton de aceptar +


cancelar) show.Imput.Dialog() [Metodo esttico]<-- tenemos que utilizar el nombre
de la clase antes del mtodo. EJ: Math.sqrt()
JoptionPane.showImputDialog()

Scanner --> no esttico --> ejemplarizar.

metodo constructor : Metodo especfico. Poseen el mismo nombre que la clase.


************************
Video #15

JOptionPane

Transformar String en int


integer.parseInt()

************************
Video #16

Condicionales

no usar goto ni gosub. Usamos condicionales y bucles

Condicionales --> if

if(condicin){
codigo a ejecutar si la condicion es verdad (true)
}

--> Switch
Switch(valor a evaluar){
case valor1
codigo a ejecutar
break
case valor2
codigo a ejecutar
break
}

switch para evaluar varias condiciones

if + else opcional
switch + default opcional

*************************************
Video #18

Bucles indeterminados (while, do-while) no sabemos cuantas veces se van a repetir

Determinados (for, for-each) sabemos cuantas se repetirn.

-While:

Sintaxis:

While (condicin){
Linea1
Linea2
Linea3
Linea4
}

******************
video 20

Sintaxis do while
do{

linea1
linea2
linea3
linea4
} while(condicin)

****************************
video 21:

for(inicio bucle, condicin, contador bucle){


linea1
linea2
linea3
linea4
}

**************************
video #23

Matrices (arrays, arreglos)

Que es? Estructura de datos que contiene una coleccin de valores del mismo tipo.

Para que sirve? Sirve para almacenar valores que normalmente tienen alguna relacin
entre si.

Sintaxis

Declaracin: int[] mi_matriz=new int[10];

mi_matriz [0] = 15;


mi_matriz [1] = 25;
mi_matriz [2] = 8;
mi_matriz [3] = -7;
mi_matriz [4] = 92;

int[] mi_matriz={15,25,8,-7,92};

*******************************************

Video #24

Bucle For each

************************

Video #25

Arrays bidimensionales

en java no existen. Hacemos un array dentro de otro array.


Tambin hay multidimensionales.

[][][][][][][][][][][] array una dimensin

[ [][][][] ] [ [][][][] ] [ [][][][] ] [ [][][][] ]

Al intentar representar un arreglo parece una tabla.

Arrays multidimensionales

3 dimensiones "cubo"
4 dimensiones imposible.

Es dificil de representar.

********************************************
Video #27

POO Que es la programacin orientada objetos?

En general hay dos tipos de lenguajes de programacin:

Programacin orientada a procedimientos (antiguos)


y
programacin orientada a objetos (modernos)

se decidi cambiar la forma de interpretar la programacin. POP decada de los 60.


El cdigo resultante era largo. Si un programador
diferente tena que agregar algo, era dificil. Cuando se creaba un programa en ese
codigo, era complicado de reutilizar.
Se cre POO. Son diferentes porque en un intento de simplificar la programacin lo
ms posible, se le intent dar al cdigo de programacion
el mismo comportamiento que los objetos de la vida real. Es ms sencillo.

POP: Fortran, Cobol, Basic (no visual basic)

Desventajas:

Unidades de cdigo muy grandes en aplicaciones complejas


En aplicacines complejas el cdigo resultada dificil de descifrar
Poco reutilizable
Si existe fallo en alguna linea del codigo, es probable que el programa caiga
Aparicin frecuente de cdigo espagueti
Dificil de deuprar por otros programadores en caso de necesidad o error.

inventaron POO

consiste en trasladar la naturaleza de los objetos de la vida real al codigo de


programacion
los objetos tienen un estado, un comportamiento(que puede hacer?), y unas
propiedades

Un coche puede estar parado, circulando, aparcando, etc


un coche tiene un color, un peso, un tamao,etc
un coche puede arrancar, frenar, acelerar, girar, etc.

POO: C++, java, visual.Net etc.


Ventajas

Programas divididos en trozos, partes, mdulos o clases. "Modularizacin"

Muy reutilizable. "Herencia".

Si existe fallo en alguna lnea del cdigo, el programa continuar con su


funcionamiento,
"Tratamiento de excepciones"

Encapsulamiento (cada parte es independiente pero hacen un todo)

POP --> Equipo de msica. Se rompe el EQ. Hay que llevar todo el equipo al service,
no solo el EQ.

POO --> las clases se unen entre si para formar una armonia (modularizacin) Se
divide un gran programa
en diferentes partes que se conectan entre si para formar un todo.

Programa en java: Clases diferentes entre si, que se comunican para formar un todo.

Vocabulario de la POO

Clase
objeto
Ejemplar de clase, instancia de clase, ejemplarizar una clase, instanciar una clase
modularizacin
Encapsulamiento, encapsulacin
herencia.
Polimorfismo.

***********************************
Video #28

CLASE: Modelo donde se redactan las caractersticas comunes de un grupo de objetos.

Dos autos = una misma plataforma. Se construyen a partir de lo mismo.

OBJETO:
Tiene propiedades(Atributos):
Color
Peso
Alto
Largo
ETC

Tiene un comportamiento(qu es capaz de hacer?


Arrancar
frenar
girar
acelerar.

Pseudocdigo(mitad cdigo de programacin, mitad lengua hablada)

Propiedades:
nombre.propiedad=valor;

Renault.color="rojo";
Renault.peso=1500;
Renault.ancho=2000;
Renault.alto=900;

comportamiento

nombre.metodo();

renault.arranca();
renault.frena();
renault.gira();
renault.acelera();

Crear un paquete: Organizar el cdigo en carpetas.

Metodo constructor: (metodos round, charat, etc)

metodo especial que se encarga de dar un estado inicial a nuestro objeto.

Clase: plataforma. Objetos: dos autos(misma plataforma)

************************************
Video #29

Modularizacin y encapsulacin.

Modularizacin: dividir el programa en pedazos.

Clase principal: metodo main. Empieza el programa.

invocar, llamar, ejecutar, sinonimos. Desplaza el flujo del programa hacia el


constructor.

la clase publica es la que va a dar el nombre al fichero de java. El resto de las


clases no deben ser publicas.

Las clases se comunican entre s con mtodos. Se utiliza la encapsulacin.


Para encapsular un dato (y no modificarlo desde otra clase) se agrega un PRIVATE
(modificador de acceso), pero dejan de ser visibles,
deben ser conectados mediante metodos.

**************************************
Video #30

Metodos Setter y Getter

Setter: definidores: definir el valor de una propiedad (modificamos el valor)

Getter: Captadores: captar o proporcionar el valor de una propiedad (obtenemos el


valor)
public dato_a_devolver nombre_metodo(){codigo + return}

lo dejo en 18:04 tengo sueo

Setter: modifica el valor de las propiedades de los objetos


sintaxis

public void nombre_metodo(){codigo}

void: significa que no devuelve ningun valor, no lleva return

*******************************************
Video #31

Paso de parmetros: a la vez que llamas a un mtodo (en este caso setter) le pasas
un parmetro o valor para que opere con el

********************************************
Video #32

Declaramos propiedades que vamos a utilizar dentro de nuestro objeto (algunas son
comunes y otras varian=
creamos un mtodo constructor (public) y tiene el mismo nombre que la clase.
Establece un estado inicial para el objeto coche.
Metodos getter y setter para acceder a las propiedades del objeto (private)

************************************************
Video #33

Unico fichero fuente

Objeto: Empleado. (nombre, sueldo, fecha alta)


mtodo: subir sueldo.

Solo una de las clases puede ser publica , solamente una debe tener el mtodo main.

DATE: variable de tipo objeto (no primitivo)


*******************************************
Video #34

Gregorian Calendar

GregorianCalendar calendario=new GregorianCalendar(agno, mes-1,da);

fecha=calendario.getTime();

Herencia. Constuye una clase que hereda de otra. Todos los "Bienes" del padre los
hereda el hijo.

Una clase puede heredar de otra. Hereda todas las propiedades y mtodos.

java.lang.Objet
java.util.Calendar
java.util.GregorianCalendar --> tiene por herencia los metodos de java lang y
java.util.calendar.

Por eso no est getTime() en gregoriancalendar, lo hereda de calendar.

***********************************
Video #36

private final string pingo --> Constante. No se puede cambiar ni con setters.
por ejemplo no se puede cambiar el nombre.

***************************************
Video #37 Concepto complicado.

static: que los objetos no tengan su copia de id, sino que compartan la variable
ID.

no se puede usar un objeto para static, hay que llamar a la clase (en vez de
trabajador 1, ponemos empleados) An asi nos saltamos la parte de encapsulacin.
2 problemas. Nos saltamos la encapsulacin y hay que incrementar siempre.

Solucin: IDsiguiente (ningun objeto tiene su copia de IDSiguiente)

ID=IDSiguiente;
IDSiguiente++;

Se utiliza el nombre de la clase para usarlo --> Math.PI es lo mismo que


Empleados.ID

******************************
Video #38

para Statics se usan metodos Static. Los mtodos estaticos no trabajan sobre
objetos, sino con clases.

Metodo main: static, no actua sobre objetos, justamente construye los objetos.

EN resumen:
No actuan sobre objetos,
no acceden a campos de ejemplar (variables/constantes no static)
para llamarlos se utiliza el nombre_clase.metodo

*******************************************************
Video #39

sobrecarga de constructores: crear varios constructores dentro de una clase, pero


distintos parmetros.

Son para establecer diferentes estados iniciales.

Variables de tipo objeto: sin estado inicial: null

para crear constructores con parametros default usamos this.


public Empleado(String nom){

this(nom,30000, 2000, 01, 01);

entonces el nom se almacena en el nom del otro constructor, el 30000 en el sue del
otro constuctor, y lo mismo con la fecha.

el this llama al otro constructor.

si en una clase no creamos constructores, se usa el constructor por defecto. Es uno


que recibe el mismo nombre que la clase y no lleva parmetros.

tambin existe la sobrecarga de mtodos. con el mismo nombre pero diferentes


parmetros.

*******************************************
Video #40

Herencia: abuelo-->padre--> hijos (la cantidad que sea);

abuelo tiene casa--> tambin es del padre, que adems pasar a ser de los hijos.

los hijos son los que ms bienes tienen.

Reutilizacin de cdigo.
(Clase coche: implicaba crear objetos pertenecientes a la clase coche, que tena
caractersticas, tambin tena un constructor.

camioneta: se puede usar la clase coche, pero no sera lo ideal, comparten


caractersticas, pero tiene tambin sus caractersticas que las hacen unicas.
tienen 4 ruedas, que pueden tener la misma plataforma (mismo largo, mismo ancho)
pueden tener un mismo motor,etc
ademps tienen otras caractersticas, por ejemplo una capacidad de carga, plazas
extra.
el abuelo no tiene moto ni bici, pero los hijos pueden tener lo del abuelo.

se utiliza una clase que creaste previamente, sin tener que volver a hacerla.

Tambin heredan mtodos.

public class Camioneta extends Coche{


}

coche=superclase (clase padre)


camioneta=subclase. (clase hija)

clase coche + capacidad de carga + plazas extra.

super(): llama al constructor de la clase padre. va dentro del constructor. public


camioneta(....)
Java no admite herencia multiple.

Para disear las herencias se sigue una regla: se aplica el termino "Es un.."
la subclase es una superclase?
la camioneta no es un coche, no est bien diesada.

vehiculo : caractersticas de todos los vehiculos.


--> coche
-->camioneta
-->camion
-->moto

coche es un vehiculo.

**************************************************
video #42

Un jefe es un empleado?
Un empleado es un jefe?

la clase jefe debe ser una clase derivada de empleado.

si creas una clase que hereda de otra y la dejas vacia, llama al constructor por
defecto de padre public Empleado(){

el metodo dameSueldo de empleado no nos sirve, lo invalidamos


heredamos dameSUeldo y creamos otro dameSueldo. (Usamos super())

**************************
Video #43

Polimorfismo: Principio de sustitucin: Se puede utilizar un objeto de la subclase


siempre que el programa espere un objeto de la superclase
un objeto se puede comportar de diferente forma dependiendo del contexto. Las
variables objetos son polomorficas

Enlazado dinmico: La maquina virtual de java es capaz de saber a qu metodo


perteneciente a la clase padre o hija tiene que llamar.

***************************************
Video #44

Refundicin = casting convertir objeto de un tipo a otro.

Jerarquia Clase Empleado--> clase jefe --> Clase director-->

Hacer que director no use la clase de jefe. --> FINAL

final class Jefatura extends Empleado{


detiene la cadena de herencia.

Para no sobreescribir un metodo con el mismo nombre, se usan metodos final. Ya no


se podr usar en subclases un metodo con el mismo nombre.

Potrebbero piacerti anche