Sei sulla pagina 1di 17

M.S.C.CristianA.

RodrguezEnrquez
ndice

!"#$%&'((!)" +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ,
C8!L1C .............................................................................................................................................. 3
CLASL ................................................................................................................................................ 3
A8S18ACClCn ..................................................................................................................................... 3
LnCASuLAClCn ................................................................................................................................. 3
SC88LCA8CA ...................................................................................................................................... 3
CLlMC8llSMC .................................................................................................................................. 4
CCMCSlClCn .................................................................................................................................... 4
8LulllnlClCn ...................................................................................................................................... 4
<CLlnl1> ............................................................................................................................................ 4
CA8CA uL CLASLS ................................................................................................................................ 4
S1A1lC[} ............................................................................................................................................. 3
CCnS18uC1C8LS ................................................................................................................................. 3
1PlS .................................................................................................................................................. 3
1PlS() ................................................................................................................................................ 3
S1A1lC ............................................................................................................................................... 3
LCuALS .............................................................................................................................................. 6
CAuLnAS (S18lnC) .............................................................................................................................. 6
LnCASuLAClCn luLAL ......................................................................................................................... 6
-'"&./0"#%1 &0 2.3. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4
!l1: !uS1 ln 1lML ................................................................................................................................ 7
!vM: !AvA vl81uAL MACPlnL .............................................................................................................. 7
8LCCLLC1C8 uL 8ASu8A (CA88ACL CCLLLC1C8) ...................................................................................... 8
CCvA8lAn1 8L1u8n 1?LS ................................................................................................................... 8
Au1C8CxlnC ? un8CxlnC ................................................................................................................... 9
ALlASlnC ......................................................................................................................................... 10
LLLMLn1CS CuL SL uLuLn LnCCn18A8 Ln unA CLASL .......................................................................... 10
%50$.&%$01 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 67
CL8AuC8LS LCClCCS ? 8LLAClCnALLS ................................................................................................. 10
!"!(!.8!9.(!)" 0" 2.3. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 66
1lCS 8lMl1lvCS .............................................................................................................................. 11
8CCLSC uL CCnS18uCClCn L lnlClAClCn uL C8!L1CS ............................................................................ 11
CCn18CL uL ACCLSC ......................................................................................................................... 12
!"#$%$&'#"()* #) '&&)*" ,'(' &'-,"* . -)/"#"* 0000000000000000000000000000000000000000000000000000000000000000000 12
3-,"(/'&$"4)* )*/5/$&'* 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 16
8Lu1lLlZAClCn uL CLASLS ................................................................................................................... 13
78()8'&$"4 . 9"-,"*$&$"4 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 16
:)()4&$' 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1;
M.S.C.CristianA.RodrguezEnrquez
<)4=>*,)& 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1?
@)#)%$4$&$A4 #) B4 -C/"#" DB) E'4F' )G&),&$"4)* 0000000000000000000000000000000000000000000000000000000000000000000 1?
9E'*)* 'H*/('&/'* 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1?

M.S.C.CristianA.RodrguezEnrquez
!"#$%&'(()*"
,-./#%

Un objeto es todo aquello que tiene un estado, un comportamiento y una
identidad. Donde:

Estado = Valores
Comportamiento = Acciones
Identidad = Nombre nico

La identidad de un objeto se puede obtener mediante la impresin de la instancia
annima o la referencia que tiene, por ejemplo:

System.out.println(new Objeto());

Output: NombreCalificadoDeLaClase@IdentificadorDeLaClase

0123/

Una clase se puede definir como los estados y comportamientos comunes a un
conjunto de objetos.

Solo se permite un clase publica por archivo .java, si no son publicas admite las
que sean.

Si la clase es pblica debe tener el mismo nombre que el archivo .java

4-3#$2(()%"

Es un proceso que hacemos o seguimos para eliminar lo irrelevante y tener
unicamente lo ms importante para resolver un problema.

5"(263'12()*"

Mecanismo de ocultamiento/proteccion de datos o informacion.




7%-$/(2$82

M.S.C.CristianA.RodrguezEnrquez
Mecanismo que nos permite trabajar con una de las formas ms simples de
polimorfismo.

Se pueden sobrecargar constructores y metodos.

Debe tener una lista de argumentos de diferente:

Numero
Tipo
Orden

9%1):%$;)3:%

Es la capacidad de poder obtener un diferente comportamiento bajo el mismo
nombre o misma invocacion.

0%:6%3)()%"

Mecanismo de reutilizacion de clases a traves de sus metodos publicos. Relacion
todo/parte.

</&);)")()%"

Si un metodo se declara igual al de la superclase, existe redifinicion.

Para redefinir un metodo:

Misma definicion
Mismo numero de argumentos
Mismo tipo de retorno (*ver covariante)

=(1)")#>

Significa class initialization


02$82 &/ (123/3

Por instanciacion
M.S.C.CristianA.RodrguezEnrquez
Uso de algun miembro estatico

Se cargan una sola vez y se generan cualquier cantidad de objetos.

3#2#)(?@

Inicializador de la clase. Es el equivalente a un constructor.

0%"3#$'(#%$/3

Mecanismo de una clase que permite inicializar la creacion de unn objeto

Llevan el mismo nombre de la clase
NO tienen valor de retorno
Tienen la visibilidad de cualquier miembro (pblico, protegido, privado y
paquete)
Los constructores NO se redefinen

Para obtener un objeto instancia de una clase siempre se llama a un constructor.

Si Java no encuentra un constructor proporciona uno por default:

public NombreClase(){}

#A)3

Se utiliza para hacer referencia al mismo objeto.

#A)3BC

Invoca otro constructor el cual elige por el nmero de argumentos.


3#2#)(

El atributo es compartido por todos los objetos.
Trabaja con la clase.
M.S.C.CristianA.RodrguezEnrquez

/D'213

Disponible en todas las clases.

referencia.equals(referencia);

Comparar contenido de referencias a objetos
Solo para referencias
Funciona con numeros y cadenas

02&/"23 B7#$)"8C

Una cadena puede definir directamente su valor:

String s1 = Hola;
String s2 = Hola;

Una cadena puede definir su valor utilizando el constructor de la clase.

String s3 = new String(Java);
String s4 = new String(Java);

Las cadenas de forma exclusiva cuando su valor es igual se crea un Alias:









5"(263'12()%" )&/21

Campos privados y metodos publicos

Por ejemplo:
Hola
s
1
s
2
M.S.C.CristianA.RodrguezEnrquez

public class Test {
private int field = 20;
private int anotherField = 10;

public int getField() {
return field;
}

public void getAnotherField() {
return anotherField;
}


public void setField(int field) {
this.field = field;
}

public void setAnotherField(int anotherField) {
this.anotherField = anotherField;
}
}


E'"&2:/"#%3 &/ F2G2
F!HI F'3# !" H):/

Mecanismo de Java para traducir los .class a instancias de cdigo nativo.
La primera vez que se ejecuta el cdigo realiza la traduccin a cdigo nativo
La segunda vez el programa se ejecuta desde el cdigo nativo.

FJKI F2G2 J)$#'21 K2(A)"/

Mecanismo encargado de manejar la independencia de la plataforma, esta basado
en una pila, tiene la capacidad de recolectar basura, reporte de errores

Se compone de:

The Class loader
The Bytecode Verifer

M.S.C.CristianA.RodrguezEnrquez
</(%1/(#%$ &/ -23'$2 BL2$-28/ 0%11/(#%$C

Mecanismo que libera la memoria de los objetos que ya no tiene referencia.

El Garbage Collector funciona en dos etapas:

1.- Recorre la memoria y marca los objetos no utilizados
2.- Los objetos marcados son eliminados para liberar memoria













0%G2$)2"# </#'$" HM6/3

Este tipo de retorno, a partir de la versin 1.5 de Java, permite cambiar el tipo de
valor retornado por un mtodo, que ha sido heredado de una clase, siempre y
cuando ese valor retornado derive del tipo de valor devuelto en el mtodo original
que estamos redefiniendo. A continuacin se presenta un breve ejemplo de un
retorno covariante.

public class Shape {
private Shape shape;
public Shape getShape() { return shape; }
}

public class Circle extends Shape {
private Circle circle;

@Override
public Circle getShape() { return circle; }
}

Observar que el mtodo getShape() de la subclase Circle retorna un objeto de
tipo Circle en lugar de un tipo Shape. Esto es posible debido a la jerarqua de
herencia existente entre Circle y Shape. Bsicamente el mtodo getShape()
Objeto Utilizado
Objeto No Utilizado
Memoria Liberada
1
2
M.S.C.CristianA.RodrguezEnrquez
devuelve el mismo tipo, ambos son de tipo Shape con la particularidad de que
Circle es un subtipo de Shape. Considerar el efecto de Upcasting/Downcasting.

4'#%-%N)"8 M O"-%N)"8

Autoboxing es la conversin automtica que el compilador de Java realiza entre
tipos primitivos y los objetos correspondientes de sus clases wrapper. Por ejemplo
convertir un int a un Integer, un double a un Double, por mencionar algunos.
Si la conversin es a la inversa, esta es llamada unboxing.

A continuacin se presenta un ejemplo de autoboxing:

Character ch = a;

Considerando el siguiente cdigo:

List<Integer> li = new ArrayList<>();
for (int i = 1; i < 50; i += 2){
li.add(i);
}

Como se puede observar la lista li permite almacenar objetos de tipo Integer,
sin embargo en el ciclo for se estn agregando nmeros enteros primitivos (int)
a la lista; a pesar de ello el cdigo compila correctamente.

Debido a que li es una lista de Integer, no una lista de valores int, se puede
tener la interrogante de por qu el compilador de java no est lanzando un error
de compilacin. Sin embargo, el compilador no genera un error debido a que crea
un objeto Integer a partir del valor i y posteriormente agrega este objeto a li.

Para ser especficos el compilador de Java convierte el cdigo anterior en el
siguiente cdigo a tiempo de ejecucin:

List<Integer> li = new ArrayList<>();
for (int i = 1; i < 50; i += 2) {
li.add(Integer.valueOf(i));
}

Convertir un valor de tipo primitivo (un int, por ejemplo) en un objeto
correspondiente a una clase wrapper (Integer) es llamado autoboxing.

M.S.C.CristianA.RodrguezEnrquez
41)23)"8

Ocurre cuando dos referencias apuntan al mismo objeto.

Ejemplos:

Cuando se pasa la referencia por un metodo
Cuando se quiere que un objeto tome el vaor de otro (asignacion)
Cuando dos cadenas poseen el mismo valor (String s1 = Hola; String s2 =
Hola;)

51/:/"#%3 D'/ 3/ 6'/&/" /"(%"#$2$ /" '"2 (123/

Campos
Clase
Instancia

Metodos
Clase
Instancia

Inciaizadores
Clase
Instancia

Constructores

Clases Internas


,6/$2&%$/3
,6/$2&%$/3 1%8)(%3 M $/12()%"21/3

Operador logico && Hay cortocircuito
Operador relacional & No hay cortocircuito

Operador logico | | Hay cortocircuito
Operador relacional | No hay cortocircuito

M.S.C.CristianA.RodrguezEnrquez
!")()21)P2()*" /" F2G2
H)6%3 6$):)#)G%3


Tipo Valor default
boolean false
char \u0000
byte (byte)0
short (short)0
int 0
long 0L
float 0.0F
double 0.0

9$%(/3% &/ (%"3#$'(()%" / )")()2()%" &/ %-./#%3

1) Buscar las clases mediante el CLASSPATH

2) Carga de la clse

Campos estaticos toman valores default

static int x = 30;
x toma el valor 0.

Campos estaticos toman valores explicitos

static int x = 30;
x toma el valor de 30.

Inicializadores estaticos se ejecutan

static{}

3) Se reserva memoria con el operador new

4) Campos de instancia toman su valor default

String x = Hola;
M.S.C.CristianA.RodrguezEnrquez
x toma el valor de null.

5) Campos de instancia toman su valor explicito

String x = Hola;
x toma el valor de Hola.

5.5 Ejecucion de inicializadores de instancia

{}

6) Ejecucion de los constructores

Constructor() {s = x;}


0%"#$%1 &/ 4((/3%
K%&);)(2&%$/3 &/ 2((/3% 62$2 (2:6%3 M :/#%&%3

Los modificadores de acceso, como su nombre indica, determinan desde qu clases
se puede acceder a un determinado elemento. En Java tenemos 4 tipos: public,
private, protected y el tipo por defecto, que no tiene ninguna palabra clave
asociada, pero se suele conocer como default o package-private.

Publico (public)
Privado (private)
Protegido (protected)

Si no hay modificador de acceso es default

Java soporta cuatro niveles de acceso a variables y mtodos. En orden, del ms
pblico al menos pblico son: pblico (public), protegido (protected), sin
modificador (tambin conocido como package) y privado (private).

La siguiente tabla muestra el nivel de acceso permitido por cada modificador:

public protected sin modificador
(default)
private
Clase SI SI SI SI
M.S.C.CristianA.RodrguezEnrquez
Sub-clase en el mismo
paquete
SI SI SI NO
Clase en el mismo paquete SI SI SI NO
Sub-clase en diferente
paquete
SI SI/NO(*) NO NO
Clase en diferente
paquete
SI NO NO NO
(*) Los miembros (variables y metodos) de clase (static) si son visibles. Los
miembros de instancia no son visibles.

!:6%$#2()%"/3 /3#Q#)(23

Las importaciones estticas permiten llamar a un mtodo o propiedad esttica sin
necesidad de hacer referencia al nombre de su clase.

La sintaxis general, es:

// Para un slo mtodo o propiedad.
import static paquete.Clase.metodo_o_propiedad_static;

// Para todos los elementos estticos de la clase
import static paquete.Clase.*;

Uso de la importacin esttica con la clase Math:

import static java.lang.Math.*;

public class ImportStatic {
public static void main(String[] args) {
System.out.println((int)(random()*5));
}
}

Como se puede observar se invoca al mtodo random sin la necesidad de indicar
el nombre de la clase Math.

</'#)1)P2()%" &/ 0123/3
48$/82()%" M 0%:6%3)()%"

M.S.C.CristianA.RodrguezEnrquez
La agregaclon se puede deflnlr como el momenLo en que dos ob[eLos se unen para Lraba[ar [unLos
en un momenLo deLermlnado. Ln esLe caso ambos ob[eLos son lndependlenLes enLre sl.
Ln caso conLrarlo, la composlclon es un Llpo de relaclon dependlenLe en donde un ob[eLo mas
comple[o es formado por ob[eLos mas slmples.
1lp: Agregaclon es una relaclon de usa, y la composlcln es una relacln de Llene.
A conLlnuaclon se expresa un e[emplo de agregaclon:
public class Customer {

private int id;
private String firstName;
private String lastName;
private CreditCard creditCard;

public Customer() {
}

public void setCreditCard(CreditCard creditCard) {
this.creditCard = creditCard;
}
}

Ll slgulenLe es un e[emplo de composlcln:
public class Laptop {
private String manufacturer;
private String model;
private String serviceTag;
private KeyBoard keyBoard = new KeyBoard();

public Laptop() {
}
}

Ambos ejemplos son similares, pero hay una gran diferencia: Podemos crear un
objeto de tipo Customer y asignarle un CreditCard ms tarde mediante el
mtodo setCreditCard.

Pero si creamos un objeto Laptop, de entrada sabremos que tendr un KeyBoard
ya creado, puesto que la variable de referencia keyBoad es declarada e inicializada
al mismo tiempo.
M.S.C.CristianA.RodrguezEnrquez

En la composicin:
Los objetos que componen a la clase contenedora, deben existir desde el
principio. (Tambin pueden ser creados en el constructor, no slo al
momento de declarar las variables como se muestra en el ejemplo).
No hay momento (No debera) en que la clase contenedora pueda existir sin
alguno de sus objetos componentes. Por lo que la existencia de estos
objetos no debe ser abiertamente manipulada desde el exterior de la clase.
R/$/"()2

Capacidad de los lenguajes orientados a objetos para reutilizar codigo a partir de
otra clase como si lo tuviera especifiicado en su propia definicion.
Toma el codigo de una superclase y no requiere instanciacion.

Java solo tiene herencia simple.

Java asigna en automatico la superclase Object que es la clase raiz.










Privado: NO se hereda
Publico: SI se hereda









Object
Escuela Punto Circulo
M.S.C.CristianA.RodrguezEnrquez
L/"S536/(















Clase Raiz: Clase mas alta o mas generalizada.

</&/;)")()*" &/ '" :T#%&% D'/ 12"P2 /N(/6()%"/3

Una redefinicin de mtodos solo puede lanzar excepciones del mismo tipo del
que se lanza en la superclase o de algn subtipo del que se lanza en la superclase.

La redefinicin de un mtodo no est obligada a lanzar excepciones.

0123/3 2-3#$2(#23

Una clase que declara la existencia de mtodos pero no la implementacin de
dichos mtodos.

Una clase abstracta puede contener mtodos no-abstractos pero al menos uno de
los mtodos debe ser declarado abstracto.

Para declarar una clase o un metodo como abstractos, se utiliza la palabra
reservada abstract.

Ejemplo de una clase abstracta:

abstract class Drawing {
Clase Raz
Generalizacin
Especializacin
Punto
Punto 3D
Punto 4D
Superclase / Clase Base / Clase Generalizada
Superclase / Clase Base / Clase Generalizada
de
de
M.S.C.CristianA.RodrguezEnrquez

abstract void miMetodo(int var1, int var2);

String miOtroMetodo( ){
}
}

Una clase abstracta no se puede instanciar pero si se puede heredar y las subclases
sern las encargadas de agregar la funcionalidad a los mtodos abstractos. Si no lo
hacen as, las subclases tambin deben ser abstractas.

Potrebbero piacerti anche