7/26/2019 Java - Modulo 1
1/85
Java Mdulo 1
Introduccin y Fundamentos del
lenguaje de programacin Java
7/26/2019 Java - Modulo 1
2/85
Contenido
Introduccin
Caractersticas del lenguaje.
Variables y Tipos de Datos.
Estructuras de Control
Ciclos iterativos.
Introduccin a la !!.
7/26/2019 Java - Modulo 1
3/85
Introduccin
7/26/2019 Java - Modulo 1
4/85
Introduccin (I)
Creado en "##" por $un %icrosystems &James'osling( para dispositivos electrnicos)calculadoras* microondas y la televisin
interactiva. Escasa potencia de c+lculo
oca memoria
Distintas C,s
Consecuencias) -enguaje sencillo ue genera cdigo reducido
-enguaje ue independiente de la plata/orma
7/26/2019 Java - Modulo 1
5/85
Introduccin (II)
-enguaje de progamacin paracomputadores0internet desde "##1.
$un describe Java como 2 un lenguaje simple,orientado a Objetos, distribuido, interpretado,robusto, seguro, de arquitectura neutral, portable,de alto rendimiento, multihilos, y dinmico3
Ejecucin de Java como) 4plicacin independiente
4pplet &dentro del navegador al cargar la p+gina 5eb( $ervlet &ejecutado en servidor de internet* sin inter/a6
gr+/ica(.
7/26/2019 Java - Modulo 1
6/85
Introduccin (III) JD7 &Java Development 7it() programas y librerias para
desarrollar* compilar y ejecutar programas Java.
Versiones) Java ".8) 9"9 clases organi6adas en : pauetes
Java ".") 18; clases* 9< pauetes. %ejoras a la JV%.
Java ".9 &Java 9() "198 clases* 1# pauetes. lata/orma
muy madura . 4poyado por grandes empresas) I=%*!racle* Inprise* >e?tlett@acAard* Betscape* $un.
Java ".< &Java Enterprise Edition(. Java comien6a aser una plata/orma de desarrollo pro/esional
Java %icroEdition
7/26/2019 Java - Modulo 1
7/85
Caractersticas de Java
7/26/2019 Java - Modulo 1
8/85
Caractersticas de Java I
-enguaje de /+cil uso orientado a objetos -enguaje compilado e interpretado Facilita un entorno interpretado)
Velocidad de desarrollo &no de ejecucin(
ortabilidad del cdigo Ejecucin multitareas Cambios din+micos en tiempo de ejecucin $eguridad del cdigo.
7/26/2019 Java - Modulo 1
9/85
La mquina Virtual Java - JVM (I)
Es una m+uina ipottica ue emula por so/t?are una
m+uina real. Es de/inida por una especi/icacin. Conjunto de instrucciones de m+uina
&C.!.( !perandos
ila
%emoria ...
El compilador genera bytecodes &instrucciones de cdigomauina para la JV%(
El interprete tarduce y ejecuta los bytecodes para cadam+uina espec/ica.
7/26/2019 Java - Modulo 1
10/85
La mquina Virtual Java (II)
Cdigo fuenteCdigo fuente
Compilador JavaCompilador Java
Byte-codesByte-codes
Win32 JVMWin32 JVM
Cdigo mquinaWin32
Cdigo mquinaWin32
Macintos JVMMacintos JVM !"#$ JVM!"#$ JVM
Cdigo mquinaMacintos
Cdigo mquinaMacintos
Cdigo mquina!"#$
Cdigo mquina!"#$
7/26/2019 Java - Modulo 1
11/85
Compilador e intrprete de
Java (I)
El compilador anali6a la sintaGis del cdigo /uente &con
eGtensin .java(. $i no ay errores* genera bytecodes
> javac.java
El intrprete es la %+uina Virtual de Java ue ejecuta
los bytecodes &H.class( creados por el compilador.
> java &sin eGtensin(
> java arg1 arg2
7/26/2019 Java - Modulo 1
12/85
Compilador e intrprete de Java (II)
HelloWorld.javajavac HelloWorld.java
java HelloWorld HelloWorld.class
compilar
e!cutar"#tecode
Codi$o %uente
7/26/2019 Java - Modulo 1
13/85
&ar"a$e Collection
-a memoria reservada din+micamente ue Bo se vaya a
usar m+s debe ser liberada.
En otros lenguajes* esta liberacin debe reali6arla el propio
programador.
-a JV% dispone de un procesoue rastrea las operaciones
de memoria) el Garbage Collector.
Veri/ica y libera la memoria ue no se necesita
$e ejecuta autom+ticamente
uede variar segn la implementacin de la JV%.
7/26/2019 Java - Modulo 1
14/85
'e$uridad del Cdi$o
-a JV% veri/ica los bytecodes asegurando ue)
El cdigo se ajusta a las especi/icaciones de la JV%.
Bo ay violaciones de acceso restringido.
-os tipos de los par+metros son correctos para todo elcdigo.
Bo eGisten conversiones ilegales de datos &ej. deenteros a apuntadores(.
7/26/2019 Java - Modulo 1
15/85
ormato de los arcivos %uente
Declaracin de pauete &opcional(
pacAage nombreaueteK
Instrucciones de importacin&opcional(
import nombreauetesK
Declaracin de clase o inter/a6
LmodKM class BombreClaseK N.....O
7/26/2019 Java - Modulo 1
16/85
*n pro$rama 'imple
public classProgramaSimple
{
public static void main(String[] args)
{
System.ot.println(!"ste es# $ #n programa simple!)%
System.e&it(')%
7/26/2019 Java - Modulo 1
17/85
+lementos del Len$ua!e
7/26/2019 Java - Modulo 1
18/85
+lementos del len$ua!e
Caracteristicas del lenguaje
Declaraciones
Tipos de Datos !peradores
Estructuras de control
Clases y !bjetos
auetes
7/26/2019 Java - Modulo 1
19/85
Caracteristicas del len$ua!e
$ensible a maysculas0misnsculas
Comentarios
-enguaje de /ormato libre Identi/icadores
alabras reservadas
Variables y constantes
Convenciones de nomenclatura
Tiene reglas sobre los tipos de datos
7/26/2019 Java - Modulo 1
20/85
'ensi"le a
ma#,sculasmin,sculas
$e distingue entre maysculas y
minsculas.
-os identi/icadores Papa* papay PPson di/erentes.
Todas las palabras reservadas del lenguaje
van en minsculas.
7/26/2019 Java - Modulo 1
21/85
Comentarios
00 comentario
-os caracteres desde 00 asta el /inal de la lnea sonignorados.
0H comentario H0
-os caracteres entre 0H y H0 son ignorados
0HH comentario H0
-os caracteres entre 0HH y H0son ignorados y seincluyen en la generacin autmatica de ladocumentacin.
7/26/2019 Java - Modulo 1
22/85
Len$ua!e de %ormato li"re
-a disposicin de los elementos dentro del cdigo es libre Instrucciones) lnea simple de cdigo terminada en ; Bloque de cdigo) Conjunto de sentencias agrupadas entre
llaves.{
* + & $ 1%
, + y $ 1%
Java permite espacios en blanco entre elementos del cdigo*1 + y - elta%
*2 + (y/1) - elta%
7/26/2019 Java - Modulo 1
23/85
.ala"ras /eservadas alabras con un signi/icado especial para el compilador Ejemplos)
Bombres de tipos b+sicos) boolean* car* double* int* P
Indicadores de controls) do* i/* else* /or* ?ile* P
Class* inter/ace* eGtends* implements pacAage* import
tis* super
%odi/icadores de acceso) public* private* protected
Constantes) true* /alse* null EtcP
7/26/2019 Java - Modulo 1
24/85
Varia"les # Constantes
Variable) Qona de memoria cuyos valores van a
cambiar durante la ejecucuin.
Declaracin)
R
* * ...* R
S R
7/26/2019 Java - Modulo 1
25/85
Varia"les # Constantes
Ejemplos de declaracin de variables) int G*y*6R
int G S #R
boolean terminar S /alseR
Cliente c" S ne? Cliente&(R
Constantes) Qona de memoria cuyos valores nocambian
Declaracin) finalS R
Ejemplo) /inal double I S
7/26/2019 Java - Modulo 1
26/85
0si$naciones
$e utili6a el operador de asignacin = S R
RS R
-a parte i6uierda siempre debe ser una variable -a parte dereca puede ser un literal* una
variable* una eGpresin* una /uncin o una
combinacin de todos. int G S ;R 00Declaracion con asignacin
G S #R 00$e asume ue G est+ de/inida
7/26/2019 Java - Modulo 1
27/85
ipos de 2atos # 3peradores
7/26/2019 Java - Modulo 1
28/85
ipos de 2atos
Java de/ine dos tipos de datos Tipos primitivos
Tipos re/erencia
-os tipos primitivosson oco agrupados encuatro categoras) -gico) boolean
TeGto) car
Entero)byte* sort* int* long eal) /loat* double
-os tipos referenciason apuntadores a objetos.
7/26/2019 Java - Modulo 1
29/85
ipos de 2atos
Tipos primitivos)
boolean trueo false
char unicodeU &" bits(byte entero de : bits con signo.
short entero de " bits con signo.
int entero de
7/26/2019 Java - Modulo 1
30/85
ipos de datos /e%erencia ,n tipo re/erencia guarda un apuntador a la direccin
donde se ubica el objeto &
7/26/2019 Java - Modulo 1
31/85
Cadenas de Caracteres
-a clase Stringpermite manejar cadenas de caracteres. El literal string debe ir entre comillas dobles 23.
$e puede crear una cadena de caracteres de dos /ormas)
$tring nombre S ne? $tring&2epe3(R $tring nombre S 2epe3R
ara concatenar dos cadenas se usa el operador .
Bo se guarda el car+cter !in de cadena.
7/26/2019 Java - Modulo 1
32/85
Conversiones de tipos
-a conversin de tipos &casting( debe reali6arse entretipos de la misma naturale6a) numricos o re/erencia.
4l convertir un tipo a un tamaXo m+s peueXo se puedeperder la in/ormacin del los bits de mayor peso.
Bo ay conversin automatica con el tipobooleanU
-a sintaGis es) "#
Ejemplo)int i = (int) 1.!"#
7/26/2019 Java - Modulo 1
33/85
3peradores (I) ,narios) . @
4ritmticos) * @* H* 0* Y &resto de la divisin(.
De 4signacin) S* S* @S* HS* YS
%& & %
!peradores incrementales) * @@
recediendo a la variable) varK* @@varK siguiendo la variable) varK* varK@@
elacionales) SS. US* * K* S* KS* P
7/26/2019 Java - Modulo 1
34/85
3peradores (II)
!peradores relacionales) SS &igual(. US &distinto(* * K*
S* KS* P
!peradores booleanos) ZZ &4BD(* [[ &!(* U &B!T(* Z
&4BD(* [ &!(.
ZZ y [[ reali6an evaluacin pere6osa
Z y [ siempre evalan los dos operadores
El operador instanceo/) instaneo8
determina si un objeto pertenece a una clase.
7/26/2019 Java - Modulo 1
35/85
3peradores (III)
!perador condicional) eGp=ooleanaK valor"K ) valor9K
permite bi/urcaciones condicionales sencillas.
!peradores a nivel de =its) Z* [* \* ]* * KK* KKK op" KK n* despla6a los bits de op" &con signo( a la dereca n
posiciones.
op" KKK n* despla6a los bits de op" &sin signo( a la dereca n
posiciones. op" \ op9* ! eGclusivo.
]op" * B!T a nivel de bit &complemento(.
7/26/2019 Java - Modulo 1
36/85
.recedencia de operadores
^ -os operadores binarios se evalan de i6auierda a dereca*eGcepto los operadores de asignacin.
1. S8ijos9 . [] ()
2. :narios9 $$ // ;
=. 0reaion y asting9 ne3 (tipo)e&p
. ?ltipliativos9 - 4 @
A. itivos9 $ /
B. CesplaDamientos9 > >>>
E. Felaionales9 < > + ++ ;+
G. Hits9 I J KL. Mgios9 II KK
1'. 0oniional9 O 9
11. signain9 + op+ (-+ 4+ @+ $+ / et.)
7/26/2019 Java - Modulo 1
37/85
+structuras de control
7/26/2019 Java - Modulo 1
38/85
+structuras de Control -as estructuras de control del /lujo de ejecucin
permiten tomar decisiones y reali6ar un bloue de
instrucciones repetidas veces.
>ay 9 tipos principales) Condicionales) i8* s3it
-a6os) 8or* 3ile* o 3ile
!tras instrucciones ue permiten interrumpir el /lujo
normal de ejecucin son brea'y continue.
7/26/2019 Java - Modulo 1
39/85
La instruccin i%
Ejecuta un conjunto de instrucciones en /uncin de laeGpresin de comparacin &booleana(
if() %[else]%
if( e&prHooleana ) %[else]%
Ejemplo) i8 (a>b) & + a% else & + b%
El else es opcional i8 ( &[i] > ma& ) ma& + &[i]%
7/26/2019 Java - Modulo 1
40/85
La instruccin s4itc Comparacin de igualdad mltiple con la misma
variable.
s$itch() {caseliteral19[%]
[brea%%]caseliteral29[%]
[brea%%]
caseliteraln9[%]
[brea%%]
[default9 %]
7/26/2019 Java - Modulo 1
41/85
+!emplo s4itc
s$itch(opion) {case19brirrivo()%
brea%%
case29Rmprimirrivo()%
brea%%
case=9RmprimirCatos()%
brea%%
case90errarrivo()%
brea%%
caseA9
default9 terminarPrograma()%
+l la5o %or
7/26/2019 Java - Modulo 1
42/85
+l la5o %or
ermite la ejecucin repetida de un grupo de
instrucciones con mayor control8or ( %% )
{ % iniciali6acinK* asignacin de valores iniciales de
las variables ue intervienen en la eGpresin eGp=ooleanaK* condicin boolena
actuali6acinK* asignacin de un nuevo valor de lasvariables de iniciali6acinK
7/26/2019 Java - Modulo 1
43/85
+l la5o 6ile
El grupo de instrucciones se ejecuta
mientras se cumpla la eGpresin booleana.
$hile( e&pHooleana )
{
%
7/26/2019 Java - Modulo 1
44/85
+quivalencia %or-4ile
for( % % )
{
%
Euivale a)
$hile( e&pHooleana )
{
%
%
7/26/2019 Java - Modulo 1
45/85
+!emplo
8or( 7+'% 7
7/26/2019 Java - Modulo 1
46/85
+l la5o 2o-6ile
El conjunto de instrucciones se ejecuta mientras secumpla la eGpresin booleana
do
{
%
$hile( e&pHooleana )
El conjunto de instrucciones se ejecuta al menos " ve6.
L i t i " 7
7/26/2019 Java - Modulo 1
47/85
Las instrucciones "rea7 #
continue8 -a instruccinbrea%causa la terminacin
inmediata de un la6o o instruccin s?itc &sin
ejecutar el resto de las instrucciones(.
V+lido para /or* ?ile* do ?ile y s?itc -a sentencia continuecausa la terminacin
inmediata de una iteracin de un ciclo.
V+lido para /or* ?ile y do ?ile
7/26/2019 Java - Modulo 1
48/85
.ro$ramacin 3rientada a
3"!etos
7/26/2019 Java - Modulo 1
49/85
.aradi$mas de pro$ramacin
aradigma estructurado o procedural) -os programas se dividen
en procedimientos independientes con acceso total a los datos
comunes.
4lgortimos Estructuras de Datos S rogramas
aradigma orientado a objetos) -os datos se consideran la partem+s importante del programa. -os objetos modelan las
caractersticas de los problemas del mundo real* su
comportamiento ante estas caracteristicas y su /orma de interactuar
con otros elementos
!bjetos mensajes S rogramas
+!emplo9 omarse un ca% en
7/26/2019 Java - Modulo 1
50/85
+!emplo9 omarse un ca% en
la panadera
rocedural) El cliente entra el la
panadera
El cliente pasa detr+sde la barra
El cliente prepara laca/etera
El cliente se sirve elca/
El cliente se bebe elca/.
!!) El cliente entra en la
panadera
El cliente pide un ca/al 2ca/etero3
El 2ca/etero3 preparael ca/.
El 2ca/etero3 sirve elca/ al cliente.
El cliente se bebe elca/.
Conceptos de la 3rientacin a
7/26/2019 Java - Modulo 1
51/85
Conceptos de la 3rientacin a
3"!etos
Clases) atrones ue indican como construir objetos bjetos) Instancias de las clases en tiempo de
ejecucin.
!iembrosde la clase) "tributos) Caractersticas o propiedades de los objetos
&o clases(. ueden ser variables de tipos simples ore/erencias a otros objetos
!#todos) Comportamientos de los objetos. $on/unciones ue operan sobre los atributos de los objetos.
7/26/2019 Java - Modulo 1
52/85
Caractersticas de la 33
Cada objeto tiene caractersticas reconocibles.Ejemplo) un empleado tiene Bombre* CI* sueldo* P
Cada objeto es nico. Ejemplo) el empleado" es Juanre6* con CI ".;1.W: gana :#8.888 =s.
-os objetos almacenan in/ormacin &suscaractersticas(
-os objetos reali6an operaciones sobre sus atributos.
7/26/2019 Java - Modulo 1
53/85
2e%inicin de Clase
$intaGis&lass '
44 Celaraion e atribtos
%
44 Celarain e mTtoos
( )
{
El nombre del arcivo debe coincidir con el de la
clase de/inida en l. $e recomienda de/inir una clase por cada arcivo
Java.
7/26/2019 Java - Modulo 1
54/85
+!emplo de Clase
pbli lass 0irlo {
44 tribtos
oble raio%
String olor%
44 ?etoos
voi asigFaio( ){
oble area( ){
7/26/2019 Java - Modulo 1
55/85
Creacin de un o"!eto
$e usa la palabra reservada ne?
+ ne3 ()%
Ejemplo)
0irlo mi0irlo%
mi0irlo + ne$0irlo()%
0cceso a los miem"ros de un
7/26/2019 Java - Modulo 1
56/85
0cceso a los miem"ros de un
3"!eto 4 travs del operador punto &.( se puede acceder tanto
a los atributos como a los mtodos.
.
.()Ejemplo)
0irlo mi0irlo + ne3 0irlo()%
mi0irlo.raio + 1'%
mi0irlo.olor + aDl%
mi0irlo.area()%
7/26/2019 Java - Modulo 1
57/85
Mtodos
$on el euivalente a los procedimientos de los lenguajes no!!. ,n mtodo es un bloue de cdigo de/inido dentro deuna clase ue proporciona un mecanismo para reali6ar unaaccin.
,n mtodo tiene acceso a todos los atributos de su clase.
,n mtodo puede invocar otros mtodos
En Java no se puede de/inir un mtodo dentro de otro.
-a ejecucin de todos los programas se inicia en el mtodo
main.
7/26/2019 Java - Modulo 1
58/85
2e%inicin de mtodos (I)
$intaGis para la de/inicin de un mtodo) (< parametros >...)
'...
-a declaracin de un mtodo tiene cuatro partes b+sicas) El tipo del valor de retorno del mtodo &tipo(. $i no devuelve
ningun valor debe ser voi.
El nombre del mtodo &nombre%etodo(
,na lista de par+metros ¶metros(. Casa par+metro tiene la/orma tipoK argumentoK. $e separan con comas.
El cuerpo del mtodo &instrucciones(.
2e%inicin de mtodos (II)
7/26/2019 Java - Modulo 1
59/85
2e%inicin de mtodos (II) Conjunto de instrucciones ue
implementan la tarea ue debe reali6ar el mtodo.
$i devuelve un valor debe /inali6ar con la sentencia
retrn
retrn %
Debe ser del mismo con ue se a
declarado el mtodo.
El cdigo se ejecuta asta alcan6ar la instruccin return &si
devuelve un valor( o asta el /inal del mtodo. $e pueden declarar variables locales si son necesarias.
+!emplos de Mtodos
7/26/2019 Java - Modulo 1
60/85
+!emplos de Mtodos
oble obtFaio( ){
retrn raio%
voi asigFaio(int nevoFaio){
raio + nevoFaio%
pbli oble rea( ) {retrn raio-raio-?at.PR%
pbli lass 0irlo
{
44 tribtos
oble raio%
String olor%
44 ?etoos
voi asigFaio( )
{
oble area( ){
.arametros
7/26/2019 Java - Modulo 1
61/85
.arametros -as variables en la lista de par+metros se separan con
comas. -os parametros de la lista en la especi/icacin del
mtodo* son llamados par+metros /ormales.
Cuando un mtodo es llamado* estos par+metros/ormales son reempla6ados por los par+metrosactuales.
-os par+metros actuales deben ser euivalentes entipo* orden y nmero a los parametros /ormales.
7/26/2019 Java - Modulo 1
62/85
char calc (int num1 int num* +tring mensaje)
'
int sum = num1 , num*#
char result = mensaje.char-t (sum)#
return result#
num =
ch = obj.calc (* num Hola /undo0)#
.armetros - +!emplo
7/26/2019 Java - Modulo 1
63/85
.aso de parametros por valor
Cuando es invocado un mtodo con unpar+metro de tipo primitivo* tal como 2int3* el
valordel par+metro actual es pasado al mtodo.
El valor actual de la variable /uera del mtodono es a/ectado* independientemente de los
cambios ecos al par+metro /ormal dentro del
mtodo.
.arametros por valor - +!emplo
7/26/2019 Java - Modulo 1
64/85
p ! pclass ruebaasoor2alor '
public static void main(+tring34 args) '
int times = #
+ystem.out.println(-ntes del llamado la variabletimes es5,times)#
nrintln(6ienvenido a 7ava85times)#
+ystem.out.println(9espues del llamado la variabletimes es5 , times)#
static void nrintln(+tring mensaje int n) '
$hile (n : ;) '
+ystem.out.println(n = ,n)#
+ystem.out.println(mensaje)#
n
7/26/2019 Java - Modulo 1
65/85
.aso de parametros por
re%erencia $e pueden pasar objetos a mtodos como
par+metros actuales
Cuando se pasa un objeto al mtodo la referencia
del objeto es pasado al par+metro /ormal Cualuier cambio al objeto local ue ocurra
dentro del mtodo a/ectar+ al objeto original ue
/ue pasado como argumento.
.arametros por re%erencia -+!emplo
7/26/2019 Java - Modulo 1
66/85
class ruebaasooreferencia '
public static void main(+tring34 args)'
&irculo mi&irculo#
mi&irculo = ne$ &irculo(".; 0blanco0)#
imprime&irculo(mi&irculo)#
color&irculo(mi&irculo 0negro0)#
imprime&irculo(mi&irculo)#
public static void color&irculo( &irculo c +tring color) 'c.color = color#
public static void imprime&irculo(&irculo c) '
+ystem.out.println(0El >rea del circulo de radio 0 ,
c.getadio( ) , 0 es 0 ,c.-rea())#
+ystem.out.println(0El color del &irculo es 0 ,c.color)#
7/26/2019 Java - Modulo 1
67/85
.arametros por re%erencia +!emplo (cont8)
class &irculo '
private double radio# +tring color#
public &irculo(double r +tring c)'
radio = r#
color = c#
public double getadio( )'
return radio#
public double -rea( )'
return radio?radio?/ath.@#
0lcance de las varia"les (I)
7/26/2019 Java - Modulo 1
68/85
( ) En java se dispone de tres tipos de variables)
-as variables miembro pertenecientes a una clase.
4rgumentos de un mtodo de la clase. Variables locales de un mtodo de la clase.
-os argumentos trabajan como variables locales.
lass "jemplo {
int &% 44 variable miembro
metoo (int y){44 argmento
int D% 44 variable loal
& + y $ D%
0l d l i "l (II)
7/26/2019 Java - Modulo 1
69/85
0lcance de las varia"les (II)
-as variables miembros son visibles desdecualuier parte de la clase.
-os argumentos y variables locales solo son
visibles dentro del mtodo al ue pertenece* dejan
de eGistir al /inali6ar el mtodo.
Dentro de un mtodo* si coincide el identi/icador
de un argumento o variable local con el de una
variable miembro* slo se accede a la variable delmtodo.
+!emplo
7/26/2019 Java - Modulo 1
70/85
+!emplo
lass {
int &%
voi metoo (int y){
int &+2%
y + =-& $ y / &%
println(y)%
main
{
int arg + %
obj + ne3 ()%
obj.& + 1%
obj.metoo(arg)%
println(arg)%
println(obj.&)%
7/26/2019 Java - Modulo 1
71/85
La re%erencia tis
$e emplea para re/erirse al objeto actual
dentro de un mtodo.
Con thisse ace accesible una variable
miembro cuyo identi/icador coincide con una
variable local.
Constructores (I)
7/26/2019 Java - Modulo 1
72/85
( )
,n constructor es un tipo especial de mtodo ue
permite construir un objeto de una clase. Ejemplo)
lass 0irlo{
pbli 0irlo(){
pbli 0irlo(oble r){pbli 0irlo(oble r String ){
$e utili6an junto con la palabra reservada ne?0irlo 1 + ne3 0irlo(2E)%
Constructores (II)
7/26/2019 Java - Modulo 1
73/85
Constructores (II)
-os constructores se pueden sobrecargar yson opcionales
$i no se de/ine ningn constructor* Java
proporciona uno por de/ecto. $i se de/ine un constructor con argumentos
se pierde el constructor por de/ecto
Bormalmente en el constructor seiniciali6an las variables miembro.
2 t t
7/26/2019 Java - Modulo 1
74/85
2estructores
En Java no ay destructores como en C
El garbage collector es el encargado de liberar la
memoria. Cuando se detecta objetos no re/erenciados
4l /inal de un bloue ue aya utili6ado objetos.
7/26/2019 Java - Modulo 1
75/85
Caractersticas de la .33
Ms conceptos de 33
7/26/2019 Java - Modulo 1
76/85
p $ncapsulamiento) ermite la proteccin de
ciertas partes de un objeto del acceso desde
otros objetos eGternos
%erencia) Jerarua de clases basada en la
agrupacin de atributos o mtodos comunes
&olimorfismo) Tratamiento generali6ado a
todas las clases pertenecientes a una jerarua
de erencia.
+ncapsulamiento
7/26/2019 Java - Modulo 1
77/85
+ncapsulamiento
El encapsulamiento consiste en la agrupacin de
datos y su tratamiento en una misma estructura. ermite la proteccdin de la manipulacin eGterna
de algunas partes de los objetos. ,n objeto suele tener datos y mtodos privados*
de acceso restringido. Fuer6a al usuario a usar una inter/a6 para acceder
a los datos.
%ace que el cdigo sea m's f'cil de mantener
Modi%icadores para restrin$ir el
7/26/2019 Java - Modulo 1
78/85
p $
acceso (I)
-a de/inicin de los miembros de una clase sepuede ampliar aXadiendo modi/icadores al
principio.)
[moi8iaor] %[moi8iaor] ()
{...
-os modi/icadores permiten acceder a losdatos o mtodos de manera restringida
Modi%icadores para restrin$ir el
7/26/2019 Java - Modulo 1
79/85
Modi%icadores para restrin$ir el
acceso (II)
public. El miembro de la clase es accesible desde
cualuier parte del cdigo.
private. El miembro de la clase slo es accesible
desde cdigo perteneciente a la propia clase.
protected&o /riendly(. $lo las subclases de la
clase y nadie m+s pueden acceder a las variables y
mtodos.
:erencia (I)
7/26/2019 Java - Modulo 1
80/85
:erencia (I)
Jeraruia de clases basada en agrupar atributosy0o mtodos comunes
-as clases descendientes se llaman subclases.
-as clases ascendientes se llaman superclases.
-as subclases eredan caractersticas y mtodos
de las superclases &eGcepto los constructores(
:erencia (II)
7/26/2019 Java - Modulo 1
81/85
:erencia (II)
$upongamos ue tenemos la clase Je/e y la clase$ecretaria de/inidas como) Je/e NintKnumEmpleadoK* $tringKnombreK*
intKnumDepartK* intKnum$upervisadosKO
$ecretaria NintKnumEmpleadoK* $tringKnombreK*
intKnumDepartK* Je/eKtrabajaaraKO -as partes comunes se pueden agrupar en una
misma clase* manteniendo las otras dos con laspartes no comunes y eredando de esta nueva clase
con la palabra reservada e&tens.
+!emplo erencia
7/26/2019 Java - Modulo 1
82/85
public class -rticulo ' AA clase padrepublic float precio=;# ...
public void setrecio(float elrecio) ' precio = elrecio# ...public float getrecio() ' return precio#
AAlos mBtodos y atributos de -rticulo son heredados a elicula
public class elicula eCtends -rticulo 'AA clase hijo
public void set9escripcion(+tring descrip) ' descripcion = descrip# ... public +tring get9escripcion() ' return descripcion#
/elacin de Contenido
7/26/2019 Java - Modulo 1
83/85
/elacin de Contenido
,na clase puede tener re/erencias a objetos deotras clases.
$e di/erencia de la erencia en ue es necesario
instanciarlos por separado.
esponde a/irmativamente a la pregunta)
contenedorK tiene uncontenidoK
Mtodos virtuales
7/26/2019 Java - Modulo 1
84/85
Mtodos virtuales ,na subclase puede modi/icar los mtodos
ue a eredado de las superclase*manteniendo los mismos nombres* tipos de
retorno y listas de argumentos.
class Empleado 'int calcular2acaciones() '...
class 7efe eCtends Empleado '
int num+upervisados
int calcular2acaciones() '...
.olimor%ismo
7/26/2019 Java - Modulo 1
85/85
.olimor%ismo
,n mtodo con el mismo nombre* tipo de retorno
y lista de par+metros puede ser aplicado a objetosde di/erentes clases.
,so* trabajar con la clase m+s general) ar+metros polimr/icos
Colecciones eterogneas
Empleado e1 = ne$ Empleado()#
Empleado e* = ne$ 7efe()#
Empleado e1 = ne$ +ecretaria()#
e*.num+upervisados = 1"# AA ED
((7efe)e*).num+upervisados = 1"#