Herencia en Java, con ejemplos El proyecto de este post lo puedes descargar pulsando AQUI AQUI.. La Herencia es uno de los 4 pilares de la programación orientada a objetos !"" !""## junto
con co n la Abstracción, Encapsulación y Polimorfismo. Al pri rin nci cip pio cu cues esta ta un po poco co entender estos conceptos caracter$sticos del paradigma de la !"" por%ue solemos venir de otro paradigma de programación como el paradigma de la programación estructurada ver la entrada&!aradigmas entrada&!aradigmas de !rogramación#, !rogramación#, pero se 'a de decir %ue la complejidad est( en entender este nuevo paradigma y no en otra cosa. En esta entrada vamos a e)plicar de la mejor manera posible %ue es la 'erencia y lo vamos a e)plicar con un ejemplo. *especto a la 'erencia se 'an dado muc'as de+iniciones como por ejemplo la siguiente - La herencia es un mecanismo que permite la definición de una clase a partir de la defini def inició ción n de otr otra a ya exis existent tente. e. La her heren encia cia per permite mite com compar partir tir au autom tomáti áticam cament entee métodos métod os y datos entre clases, subclases subclases y objeto objetos. s.-. -. As$ de primeras esta de+inición es un poco di+$cil de digerir para a%uellos %ue estis empe/ando con la !"", as$ %ue vamos a intentar digerir esta de+inición con un ejemplo en el %ue veremos %ue la 'erencia no es m(s %ue un - Copy-Paste Dinámico& o una +orma de - sacar factor común& al código %ue escribimos.
El ejemplo %ue proponemos es un caso en el %ue vamos a simular el comportamiento %ue tendr$an los di+erentes integrantes de la selección espa0ola de +utbol1 tanto los 2utbolistas como el cuerpo tcnico Entrenadores, 3asajistas, etc#. !ara simular este comportamiento vamos a de+inir tres clases %ue van a representaran a objetos 2utbolista, Entrenador y 3asajista. 5e cada unos de ellos vamos a necesitar algunos datos %ue re+lejaremos en los atributos y una serie de acciones %ue re+lejaremos en sus métodos. Estos atributos y mtodos los mostramos en el siguiente diagrama de clases
NOT! en este dia"rama y en adelante no #amos a poner los constructores y métodos "etter y setter con el fin de que el NOT! dia"rama nos quede "rande e $intendible% aunque en un buen dia"rama de clases deber&an aparecer para respetar el principio de encapsulación de la 'OO
6omo se puede observar, vemos %ue en las tres clases tenemos atributos y mtodos %ue con iguales ya %ue los tres tienen los atributos atributos id, Nombre, pellidos y (dad 1 (dad 1 y los tres tienen los mtodos de )iajar y y *oncentrarse!
A nivel de código tenemos lo siguiente tras ver el diagrama de clases
public class
public class
public class !asaista
Futbolista
Entrenador
{
{
{ private int private int
id;
private int
id;
id; private
private String private
String Nombre Nombre; ;
Nombre; Nombre ;
String Nombre Nombre; ;
private
private String
private
String Apellidos Apellidos; ;
String Apellidos Apellidos; ;
private int Edad; Edad ;
Apellidos; Apellidos ;
private int
private int Edad; Edad ;
Edad; Edad ; private int
dorsal;
private String private
"itulacion; "itulacion ;
String idFederacion idFederacion; ; private
private int aniosE#periencia;
//
String demarcacion; String demarcacion;
constructor, constructor , getter y //
setter
constructor, getter y
constructor, getter y setter
// setter
public void Concentrarse () { public void
Concentrarse() Concentrarse () {
...
... }
public void Viaar() Viaar () {
public void Viaar() Viaar () {
Concentrarse() Concentrarse () {
}
... }
public void
public void ...
}
Viaar() Viaar () { ...
...
}
}
public void dirigir$artido() {
public void
...
ugar$artido() {
public void dar!asae() {
}
...
...
}
}
public void
}
dirigirEntreno() { public void
...
entrenar() {
} ...
}
} }
7o %ue podemos ver en este punto es %ue estamos escribiendo muc'o código repetido ya %ue las tres clases tienen mtodos y atributos comunes, de a'i y como veremos enseguida, decimos %ue la 'erencia consiste en - sacar factor común & para no escribir código de m(s, por tanto lo %ue 'aremos sera crearnos una clase con el “códio !ue es común a las tres clases" #a esta clase se le denomina en la $erencia como “Clase Padre o %uperClase" & y el códio !ue es especifico de cada clase, lo dejaremos en ( las cuales $eredan de la ella, siendo denominadas estas clases como “Clases Hi'as" clase padre todos los atributos y métodos públicos o proteidos . Es muy importante
decir %ue las clases 'ijas no )an a $eredar nunca los atributos y métodos pri)ados de la clase padre , as$ %ue muc'o cuidado con esto. En resumen para %ue ve(is la ventaja de
la 'erencia, tenemos a'ora una clase padre con 8n9 lineas de código y tres clases 'ijas con 8a9, 8b9 y 8c9 lineas de códigos respectivamente, por tanto si 'ec'(is cuentas, $emos reducido nuestro códio en *+n, lneas menos ya !ue antes tenamos *#n.a&.#n.b&. #n.c&, lneas de códio y a$ora tras aplicar $erencia tenemos *n.a.b.c, lneas ,
aun%ue tambin es cierto %ue tenemos una clase m(s, pero veremos un poco m(s adelante la ventaja de tener esa clase padre. En resumen, al -sacar +actor com:n& y aplicar 'erencia, tenemos las siguientes clases
A nivel de código, las clases %uedar$an implementadas de la siguiente +orma
public class SeleccionFutbol { protected int id; protected String Nombre; protected String Apellidos; protected int Edad;
// constructor, getter y setter public void Concentrarse () { ... }
public void Viaar() { ... } }
public class Futbolista public class Entrenador public class !asaista e#tends SeleccionFutbol e#tends SeleccionFutbol e#tends SeleccionFutbol {
{
{
private int dorsal;
private String private String
idFederacion;
private String "itulacion;
demarcacion;
private int public
public
aniosE#periencia;
Entrenador() {
Futbolista() {
public super();
super();
!asaista() {
}
super();
}
}
// getter y // getter y
setter
// getter y
setter
setter public void public void
dirigir$artido() {
ugar$artido() {
...
...
public void dar!asae() {
}
...
}
} public void
public void
dirigirEntreno() {
entrenar() {
... ...
}
}
} }
}
6omo podis observar a'ora %ueda un códio muc$o más limpio( estructurado y con menos lneas de códio( lo !ue lo $ace más leible , cosa %ue es muy importante y lo
%ue todav$a lo 'ace m(s importante es %ue es un códio reutili/able , lo %ue signi+ica %ue a'ora si %ueremos a0adir m(s clases a nuestra aplicación como por ejemplo una clase 3dico, Utiller;, Je+e
Empe/(is a ver la utilidad de la 'erencia?. A'ora si os 'abis +ijado bien en el código %ue se 'a escrito y sino 'abis tenido e)periencia con la 'erencia en Java, 'abris podido observar dos palabras reservadas
-nuevas& como son -e0tends-, - protected & y -super - . !ues bien, a'ora vamos a e)plicar el signi+icado de ellas
e0tends Esta palabra reservada, indica a la clase 'ija cual va a ser su clase
padre, es decir %ue por ejemplo en la clase 2utbolista al poner - public class +utbolista extends eleccion+utbol & le estamos indicando a la clase 82utbolista9 %ue su clase padre es la clase 8=eleccion2utbol9 o dic'o de otra manera para %ue se entienda mejor, al poner esto estamos 'aciendo un - copy-paste dinámico& diciendo a la clase 82utbolista9 %ue se 8copie9 todos los atributos y mtodos p:blicos o protegidos de la clase 8=eleccion2utbol9. 5e a%u$ viene esa 8de+inición9 %ue dimos de %ue la 'erencia en un 8copy@paste din(mico9.
protected sirve para indicar un tipo de visibilidad de los atributos y mtodos de
la clase padre y signi+ica %ue cuando un atributo es 8protected9 o protegido, solo es visible ese atributo o mtodo desde una de las clases 'ijas y no desde otra clase.
super sirve para llamar al constructor de la clase padre. Qui/(s en el código %ue
'emos puesto no se 'a visto muy bien, pero a continuación lo mostramos de +ormas m(s clara, viendo el constructor de los objetos pas(ndole los atributos public class SeleccionFutbol { ...... public SeleccionFutbol() { } public SeleccionFutbol(int id% String nombre% String apellidos% int edad) { t&is.id ' id; t&is.Nombre ' nombre; t&is.Apellidos ' apellidos; t&is.Edad ' edad; } ...... public class Futbolista e#tends SeleccionFutbol { ...... public Futbolista() { super(); } public Futbolista(int id% String nombre% String apellidos% int edad% int dorsal% String demarcacion) { super(id% nombre% apellidos% edad); t&is.dorsal ' dorsal; t&is.demarcacion ' demarcacion; } ......
Hasta a%u$ todo correcto, pero a'ora vamos a ver como trabajamos con estas clases. !ara ver este +uncionamiento de +orma clara y sencilla vamos a trabajar con un objeto de cada clase y vamos a ver como se crean y de %ue +orma ejecutan sus mtodo. !ara ello empecemos mostrando el siguiente +ragmento de código
public class !ain {
// ArrayList de objetos SeleccionFutbol. Idenpendientemente de la clase hija a la que pertenezca el objeto public static Arraist*SeleccionFutbol+ integrantes ' ne, Arraist*SeleccionFutbol+(); public static void main(String- args) { Entrenador del/os0ue ' ne, Entrenador(1% 2Vicente2% 23el /os0ue2% 45% 2678E97:2); Futbolista iniesta ' ne, Futbolista(6% 2Andres2% 2niesta2% 6:% 4% 2nterior 3erec&o2); !asaista raul!artine< ' ne, !asaista(=% 2>a?l2% 2!artine<2% 81% 2icenciado en Fisioterapia2% 17); integrantes.add(del/os0ue); integrantes.add(iniesta); integrantes.add(raul!artine<);
// C!C"!#$ACI! Sstem.out.println(2"odos los integrantes comien
// %IA&" Sstem.out.println(2n"odos los integrantes viaan para ugar un partido. ("odos eecutan el mismo m@todo)2 ); or (SeleccionFutbol integrante B integrantes) { Sstem.out.print(integrante.getNombre() 2 2integrante.getApellidos() 2 D+ 2); integrante.Viaar(); } ......
7o primero %ue vemos es %ue nos creamos un objeto de cada clase, pas(ndole los atributos al constructor como par(metro y despus -sorprendentemente& los metemos en un “ ArrayList " de ob'etos de la clase “%eleccion1utbol" %ue es la clase padre. Esto
evidentemente te lo permite 'acer ya %ue todos los objetos son 'ijos de la misma clase padre. 7uego como veis, recorremos el Array7ist y ejecutamos sus mtodos -comunes& como son el 86oncentrarse9 y el 8iajar9. Este código da como salida lo siguiente "odos los integrantes comiena?l !artine< D+ Concentrarse
"odos los integrantes viaan para ugar un partido. ("odos eecutan el mismo m@todo) Vicente 3el /os0ue D+ Viaar Andres niesta D+ Viaar >a?l !artine< D+ Viaar
6omo veis al ejecutar todos el mismo mtodo de la clase padre el código puesto +unciona correctamente. !osteriormente vamos a ejecutar código especi+ico de las clases 'ijas, de a'i %ue a'ora no podamos recorrer el Array7ist y ejecutar el mismo mtodo para todos los objetos ya %ue a'ora esos objetos son :nicos de la clases 'ijas. El código es el siguiente
// "!#$"!A'I"!# Sstem.out.println(2nEntrenamientoB Solamente el entrenador el utbolista tiene metodos para entrenarB2 ); Sstem.out.print(del/os0ue.getNombre()2 2del/os0ue.getApellidos() 2 D+ 2); del/os0ue.dirigirEntrenamiento(); Sstem.out.print(iniesta.getNombre()2 2iniesta.getApellidos() 2 D+ 2); iniesta.entrenar();
// 'ASA&" Sstem.out.println(2n!asaeB Solo el masaista tiene el m@todo para dar un masaeB2); Sstem.out.print(raul!artine<.getNombre() 2 2raul!artine<.getApellidos() 2 D+ 2);
raul!artine<.dar!asae();
// (A$#I) )" F*#+L Sstem.out.println(2n$artido de F?tbolB Solamente el entrenador el utbolista tiene metodos para el partido de ?tbolB2 ); Sstem.out.print(del/os0ue.getNombre()2 2del/os0ue.getApellidos() 2 D+ 2); del/os0ue.dirigir$artido(); Sstem.out.print(iniesta.getNombre()2 2iniesta.getApellidos() 2 D+ 2); iniesta.ugar$artido();
6omo vemos aun%ue el entrenador y los +utbolistas asistan a un entrenamiento, los dos 'acen una +unción di+erente en el mismo, por tanto 'ay %ue 'acer mtodos di+erente para cada una de las clases. Ba veremos cuando 'ablemos del polimor+ismo %ue podremos ejecutar el mismo mtodo para clases di+erentes y %ue esos mtodos 'agan cosas distintas. 6omo resultado al código mostrado tenemos lo siguiente
EntrenamientoB Solamente el entrenador el utbolista tiene metodos para entrenarB Vicente 3el /os0ue D+ 3irige un entrenamiento Andres niesta D+ Entrena
!asaeB Solo el masaista tiene el m@todo para dar un masaeB >a?l !artine< D+ 3a un masae
$artido de F?tbolB Solamente el entrenador el utbolista tiene metodos para el partido de ?tbolB Vicente 3el /os0ue D+ 3irige un partido Andres niesta D+ uega un partido
CONCLUSIONES Y ACLARACIONES: Esto 'a sido todo lo %ue 'emos contado sobre la 'erencia en esta entrada. El tema de la 'erencia es un tema %ue puede ser un poco m(s complejo de lo %ue lo 'emos contado a%u$, ya %ue solo 'emos contado lo %ue es la 'erencia simple ya %ue Java por el
momento es el :nico tipo de 'erencia %ue soporta# y no la 'erencia m:ltiple, %ue es un tipo de 'erencia en la %ue una clase 'ija puede tener varios padres, aun%ue por el momento si est(is empe/ando a aprender el concepto de la 'erencia, con la 'erencia simple tenis m(s %ue su+iciente. !ara los %ue os estis iniciando en el mundo de la ingenier$a in+orm(tica, 'abris podido ver %ue 'emos puesto unos ejemplo mostrando unos diagramas -un poco raros&1 pues bien, estos diagramas se llaman diagramas de clases %ue los 'emos reali/ado con la 'erramienta Ceb de CCC.genmymodel.com # y sirven para representar de +orma gr(+ica los atributos y mtodos de las clases y las relaciones entre ellos, utili/ando el lenguaje U37 del cual intentaremos 'ablar m(s adelante en otros tutoriales. !or :ltimo decir y aclarar %ue en esta entrada %ui/(s no 'emos utili/ado una terminolog$a correcta para e)plicar la 'erencia, pero lo 'emos e)plicadode una +orma algo distinta a como esta e)plicada por a'i para %ue los %ue empeceis podais entender la 'erencia desde otro punto de vista. Artículos Relacionados
!olimor+ismo en Java !arte I#, con ejemplos
Inter+ace en Java D @3etodo 5e+ault@ con ejemplos
!olimor+ismo en Java @Inter+ace@ !arte II#, con ejemplos
Enum Enumerados# en Java, con ejemplos
3ap en Java, con ejemplos
E)cepciones E)ception# en Java, con ejemplos
6on+igurar +ormateo de código en Eclipse
3ultitarea e Hilos en Java con ejemplos 'read F *unnable#
3ultitarea e Hilos en Java con ejemplos II *unnable F E)ecutors#
Atributos para dise0adores Android tools)))))#
Comparte esta entrada en:
EG*A5A !U7I6A5A E7 D
Herencia en Java, con ejemplos por "www.jarroba.com" esta bajo una licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual .! nported #icense. Creado a partir de la obra en www.jarroba.com
25 Comentarios de “Herencia en Java, con ejemplos”
K.
Diego Jose
-/-0/1-02 a las -!22
Hola amigo, disculpa , 6omo 'aces esos diagramas de clases? Lracias de antemano
*E=!"G5E*
Richard [Admin Jarroba
o 00/-0/1-02 a las 03!-0
Hola !ara
5iego. 'acer
los
diagramas
de
clase
en
esta
entrada#
'e
utili/ado
esta
Ceb 'ttps<
*E=!"G5E*
.
!!!!
1/01/1-04 a las 05!50
%ue lastima ivan bien, ..'asta %ue encontr los puntos suspensivos, y por ejemplo getGombre no lo encontr por ning:n lado.
*E=!"G5E*
alias
o 1/01/1-04 a las 0!03
Es
%ue
no
los
ponen
public
pero
van
as$
en
=tring
la
clase
padre
getGombre#M
return
t'is.Gombre1
N public
=tring
return
getApellidos#
M t'is.Apellidos1
N ienes %ue 'acer los mtodos.
*E=!"G5E*
Ram"n [Admin Jarroba
o 5-/01/1-04 a las 0!41
Lracias
Alias.
7os getter y setter, de establecimiento u obtención de valores de las variables globales,
se 'an obviado para %ue el art$culo no %uedara muy denso, y +uera sencillo de entender
*E=!"G5E*
O.
al#redo
-5/01/1-04 a las -5!-0
engo una duda, si yo %uisiera dentro de la clase 'ija llamar un metodo de otra clase y ese metodo re%uiera el objeto 'erdado, de %ue +orma podria solucionar eso. EJemplo. public claseK e)tends claseM claseO
objetoP
neC
claseO#1
objeto.metodoK a%ui necesito enviarle el objeto 'eredado, es decir el objeto de tipo clase#1 N cabe aclarar %ue debe ser ese objeto. no me sirve instanciar uno nuevo. debe ser ese con la in+ormacion %ue se 'a modi+icado en esa instancia.. por otro lado muy buena entrada, muc'as gracias por compartir el conocimiento y %uisiera me pudieran responder. Lracias
nuevamente.
=aludos.
*E=!"G5E*
Ram"n [Admin Jarroba
o -3/01/1-04 a las 06!50
Hola Al+redo, creo
%ue
te
servir(
la
in+erencia
de
tipos 'ttps<
4.
$d%ardo
07/00/1-04 a las 10!05
uenas me parece muy interesante el tutorialpero 'ay dos cosas %ue no 'e visto o +altan K R 6omo es %ue en el +or utili/as otra -variable& integrante ? con integrantes ya puedes recorrer el arraylist no ? Go veo la necesidad de utili/ar otra variable. R en integrante.viajar o integrante.concentrarse tendrias %ue poner un print en la de+inicion de cada accion no para %ue salga el mensaje de pantalla ? O R Go entiendo muy bien a %ue viene partido de +utbol, no es clase ni superclase. no 'abeis e)plicado para %ue se pone. Espero ayudar a otros %ue tengan las mismas dudas o parecidas. Lran trabajo =aludos
*E=!"G5E*
S.
Ronald
-1/-/1-04 a las 15!24
Hola..TT
E)celente
e)plicación.
Una pregunta la clase 2utbolista tambin 'ereda el Id de la clase padre.?
Es decir al momento de guardar los datos en una base de datos, el Id llave primaria de la clase
padre,
pasar$a
como llave +or(nea a la clase 'ija?, o tengo %ue crear una llave primaria para la clase 'ija? 3uc'as gracias.
*E=!"G5E*
Richard [Admin Jarroba
o -5/-/1-04 a las -3!14
Hola
*onald.
En la 'erencia se 'eredan todos los atributos de la clase padre, as$ %ue el id tambin lo 'ereda. "tra cosa es %ue te plantees en una base de datos#, meter todas las clases %ue 'eredan de una misma clase padre en una misma tabla o en tablas di+erentes. Eso ya es un tema di+erente, pero te aconsejaria %ue lo 'icieses en tablas di+erentes, salvo %ue utili/ases bases de datos como 3ongo5 %ue lo podrias meter todo en una misma colección. 6ual%uier otra duda nos dices. =7
*E=!"G5E*
.
angel
15/-7/1-04 a las -2!13
gracias 'e aprendido muc'o
*E=!"G5E*
diego
o 0-/00/1-04 a las 10!-4
Que bien, e +elicito
*E=!"G5E*
V.
Ja&&
11/-7/1-04 a las 02!24
3uc'as gracias por la e)plicación.
*E=!"G5E*
D.
J%li'n
04/-7/1-04 a las 0!-1
=er( %ue me puede responder esta pregunta?1 !uede un objeto 'eredar atributos y mtodos de mas de un objeto padre? Que cualidad sustenta o impide esta posibilidad?
*E=!"G5E*
Richard [Admin Jarroba
o 02/-7/1-04 a las 0-!43
Hola
Juli(n.
Eso %ue comentas se llama 'erencia m:ltiple y 'asta la +ec'a Java no soporta 'erencia m:ltiple. Hay otros lenguajes como 6WW %ue si tienen 'erencia m:ltiple pero si te soy sincero 'asta la +ec'a no 'e 'ec'o nada con 'erencia m:ltiple, aun%ue sabiendo bien el concepto =7
de
'erencia
seria
+(cil
aplicarla.
*E=!"G5E*
X.
Jorge
0-/-7/1-04 a las 07!0-
engo
una
duda
respecto
a
la
palabra
reservada
-protected&.
= %ue de esta manera, todos a%uellos atributos de una clase %ue vienen precedidos del modi+icador -protected& ser(n visibles desde todas las clases 'ijas de la clase abstracta donde
se
declara
ese
atributo
protected.
As$ pues si en la clase Empleado de+inimos public
abstract
class
Empleado
M protected
int
.
.
sueldo1 .
N entonces desde la clase Ejecutivo %ue e)tiende de Empleado# se puede acceder al dato miembro sueldo, mientras %ue si se declara private no. As$ pues de %u me sirve poner protected, si la puedo poner private y acceder a ella mediante getters y setters???
*E=!"G5E*
Ram"n [Admin Jarroba
o 0-/-7/1-04 a las 1-!17
Hola Jorge, cual%uier clase, 'erede de algo o no, %ue tenga variables globales privadas no podr(n ser accedidas desde ning:n sitio %ue no sea desde dentro de su clase, por lo %ue si %uieres acceder
a
stas
re%uieres
poner
unos
getters
y
setters.
7a di+erencia de poner getter o setter o poner las variables p:blicas o protected si son 'eredadas# es la seguridad del objeto y por convención de los programadores. Un ejemplo de seguridad del objeto ser$a %ue si tienes una variable global como public
int
noGumero6ero
P
K1
B por cual%uier cosa re%uieres %ue nunca sea cero por ejemplo, por%ue vayas a usar la variable como divisor1 sabemos %ue dividir entre cero da error#, si pueden acceder desde +uera directamente al ser p:blica, podr(n ponerte un cero y el programa +allar. =i ponemos
getter
o
setter
podemos
'acer
la
comprobación
en
el
propio
setGoGumero6ero#. Evidentemente, dependiendo de la lógica del programa, se podr$a 'acer la comprobación antes de usar la variable. !rincipalmente los getter y setter son por convención, para si por ejemplo, yo te pasara una clase, t: sin tener %ue mirar muc'o m(s %ue los getter y setter supieras como usar la clase.
*E=!"G5E*
Jorge
0-/-7/1-04 a las 15!55
Lracias por responderT A ver si me 'a %uedado claro el tema de usar o no getters y setters es por convención >%uieres decir por est(ndar?#, y tambin por seguridad, no? ale, pero si tu me pasas una clase con una serie de atributos protected, yo podr, mediante sus setters cambiar sus valores aun%ue no sea en ninguna de sus clases 'ijas entonces donde est( la seguridad? o no les pondr$as getters ni setters para %ue no pueda tocarlos? 5e esta manera lo natural ser$a G" poner setters a los atributos protected de cual%uier clase abstracta de manera %ue aseguramos su visibilidad# y usar sólo los getters y setters en las propiedades privadas %ue nos interesen, e)cluyendo a%uellas %ue puedan resultar peligrosas tocarlas desde otro sitio. 7o 'e entendido bien? Lracias de nuevoT
*E=!"G5E*
Ram"n [Admin Jarroba
05/-7/1-04 a las 1-!21
7a seguridad puede implicar no tocar las variables globales con un private y no poner setter, esto lo %ue 'ace es %ue nadie +uera de la clase la pueda tocar. 6on seguridad me re+iero a %ue no se admita cual%uier valor en la variable y 'aya %ue controlar la entrada del valor lo %ue te dec$a en el ejemplo anterior de no permitir el cero#. 5e todas maneras, por norma pon siempre los getter y setter El :nico %ue se salva es si programas en Android1 en donde est( desaconsejado el uso de getter o setter para a'orro de tiempo de proceso, bater$a, etc1 es la :nica e)cepción y a:n as$, muc'os programadores los siguen usando#.
*E=!"G5E*
Jorge
04/-7/1-04 a las 0-!21
LraciasT aclarado todo.
K.
Andres
-3/-7/1-04 a las 05!42
Hola
gracias
por
los
tutoriales
me
parecen
muy
buenos.
Una pregunta, por %ue e)isten dos constructores en cada una de las clases? Go entiendo por
%ue
uno
esta
vacio
LraciasT
*E=!"G5E*
Richard [Admin Jarroba
o -3/-7/1-04 a las 04!46
y
el
otro
no.
Hola
Andrs.
En este caso 'e puesto dos constructores uno sin atributos y otro con atributos para poder iniciali/ar el objeto con el propio constructor sin necesidad de crearme un objeto y luego tener %ue ir llamando a cada uno de los mtodos -setter& para asignar un valor a los atributos, es simplemente por eso por lo %ue 'e 'ec'o dos constructores para escribir algo
menos
de
código
en
de+initiva.
muc'as
gracias.
=7
*E=!"G5E*
Andres
-3/-7/1-04 a las 07!03
A''
ya
entiendo,
7os +elicito por su blog 'ay muc'as cosas en Java %ue me parecen e)celentes. Lracias.
*E=!"G5E*
KK.
Javier
-4/-7/1-04 a las 07!44
3uc'as graciasT. =on muy did(cticas sus e)plicaciones.
*E=!"G5E*
K.
D%n(elheit
-5/-7/1-04 a las -0!-2
Hola, su Yeb y e)plicaciones me parecen de lo mejor. 7as e)plicaciones son claras para personas %ue empie/an en el mundo de la in+orm(tica, por%ue no son e)plicaciones con muc'o lenguaje tcnico.
*E=!"G5E*
Dejanos t% comentario G"3*E O8L9:TO;9O
E@3AI7 O8L9:TO;9O, NO (; '<8L9*=O
YE " 7"L
6"3EGA*I"
Enviar Comentario
www.jarroba.com © 2015 By Reimon & Richard