10931093</ li >
10941094
10951095 < li class ="md-nav__item ">
1096- < a href ="#constructores-record " class ="md-nav__link ">
1097- Constructores Record
1096+ < a href ="#constructores-de-un- record " class ="md-nav__link ">
1097+ Constructores de un Record
10981098 </ a >
10991099
1100- < nav class ="md-nav " aria-label ="Constructores Record ">
1100+ < nav class ="md-nav " aria-label ="Constructores de un Record ">
11011101 < ul class ="md-nav__list ">
11021102
1103+ < li class ="md-nav__item ">
1104+ < a href ="#canonical-constructor-constructor-canonico " class ="md-nav__link ">
1105+ Canonical constructor - Constructor canónico
1106+ </ a >
1107+
1108+ </ li >
1109+
1110+ < li class ="md-nav__item ">
1111+ < a href ="#constructor-personalizado " class ="md-nav__link ">
1112+ Constructor personalizado
1113+ </ a >
1114+
1115+ </ li >
1116+
11031117 < li class ="md-nav__item ">
11041118 < a href ="#compact-constructor " class ="md-nav__link ">
11051119 Compact constructor
22942308</ li >
22952309
22962310 < li class ="md-nav__item ">
2297- < a href ="#constructores-record " class ="md-nav__link ">
2298- Constructores Record
2311+ < a href ="#constructores-de-un- record " class ="md-nav__link ">
2312+ Constructores de un Record
22992313 </ a >
23002314
2301- < nav class ="md-nav " aria-label ="Constructores Record ">
2315+ < nav class ="md-nav " aria-label ="Constructores de un Record ">
23022316 < ul class ="md-nav__list ">
23032317
2318+ < li class ="md-nav__item ">
2319+ < a href ="#canonical-constructor-constructor-canonico " class ="md-nav__link ">
2320+ Canonical constructor - Constructor canónico
2321+ </ a >
2322+
2323+ </ li >
2324+
2325+ < li class ="md-nav__item ">
2326+ < a href ="#constructor-personalizado " class ="md-nav__link ">
2327+ Constructor personalizado
2328+ </ a >
2329+
2330+ </ li >
2331+
23042332 < li class ="md-nav__item ">
23052333 < a href ="#compact-constructor " class ="md-nav__link ">
23062334 Compact constructor
@@ -2435,7 +2463,7 @@ <h3 id="record-header">Record header</h3>
24352463< li > Un constructor con los mismos argumentos y en el mismo orden descritos dentro de la cabecera de record.</ li >
24362464< li > Java genera un método toString que imprime cada atributo formateado.</ li >
24372465</ ul >
2438- < h3 id ="constructores-record "> Constructores Record</ h3 >
2466+ < h3 id ="constructores-de-un- record "> Constructores de un Record</ h3 >
24392467< p > Si queremos generar un constructor, dentro de la clase record podemos hacer click botón derecho del ratón -> constructor:</ p >
24402468< p > < img alt ="POJO " src ="../../img/ud3/pojo4.png " /> </ p >
24412469< p > IntelliJ me ofrece tres opciones para generar un constructor:</ p >
@@ -2446,6 +2474,8 @@ <h3 id="constructores-record">Constructores Record</h3>
24462474< li > < strong > Constructor personalizado</ strong > (custom constructor): es un constructor sobrecargado. Su primera sentencia debe ser una llamada al canónico.</ li >
24472475< li > < strong > Constructor compacto o corto</ strong > (compact constructor): solo se utiliza en los records. Es una forma concisa de declarar un constructor canónico.</ li >
24482476</ ol >
2477+ < h4 id ="canonical-constructor-constructor-canonico "> Canonical constructor - Constructor canónico</ h4 >
2478+ < p > Es el constructor con todos los parámetros o componentes. En el siguiente ejemplo se ha creado un constructor canónico que < strong > NO es necesario crear porque ya se crea de manera implícita. Crearlo es redundante</ strong > . El constructor canónico solo tiene sentido crearlo cuado quiero añadir alguna validación en algún campo, es decir, cuando le voy a dar un comportamiento diferente al de por defecto.</ p >
24492479< div class ="highlight "> < span class ="filename "> JavaStudent.java</ span > < pre > < span > </ span > < code > < span class ="kd "> public</ span > < span class ="w "> </ span > < span class ="kd "> record</ span > < span class ="nc "> JavaStudent</ span > < span class ="p "> (</ span > < span class ="n "> String</ span > < span class ="w "> </ span > < span class ="n "> id</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> String</ span > < span class ="w "> </ span > < span class ="n "> name</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> String</ span > < span class ="w "> </ span > < span class ="n "> dateOfBirth</ span > < span class ="p "> )</ span > < span class ="w "> </ span > < span class ="p "> {</ span >
24502480< span class ="w "> </ span > < span class ="c1 "> //Canonical constructor</ span >
24512481< span class ="w "> </ span > < span class ="c1 "> //Hacer esto no tiene sentido, porque ya está implícito cuando poner los componentes en la cabecera</ span >
@@ -2464,6 +2494,18 @@ <h3 id="constructores-record">Constructores Record</h3>
24642494< span class ="w "> </ span > < span class ="p "> }</ span >
24652495< span class ="p "> }</ span >
24662496</ code > </ pre > </ div >
2497+ < h4 id ="constructor-personalizado "> Constructor personalizado</ h4 >
2498+ < p > Es lo que conocemos como constructor sobrecargado. Creamos constructores personalizados con un número menor de elementos que el constructor canónico. El único requisito con este constructor es, < strong > que la primera línea tiene que ser una llamada al constructor canónico para que se inicialicen los campos o componentes</ strong > .</ p >
2499+ < div class ="highlight "> < pre > < span > </ span > < code > < span class ="kd "> public</ span > < span class ="w "> </ span > < span class ="kd "> record</ span > < span class ="nc "> JavaStudent</ span > < span class ="p "> (</ span > < span class ="n "> String</ span > < span class ="w "> </ span > < span class ="n "> id</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> String</ span > < span class ="w "> </ span > < span class ="n "> name</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> String</ span > < span class ="w "> </ span > < span class ="n "> dateOfBirth</ span > < span class ="p "> )</ span > < span class ="w "> </ span > < span class ="p "> {</ span >
2500+ < span class ="w "> </ span > < span class ="kd "> public</ span > < span class ="w "> </ span > < span class ="nf "> JavaStudent</ span > < span class ="p "> (</ span > < span class ="n "> String</ span > < span class ="w "> </ span > < span class ="n "> id</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> String</ span > < span class ="w "> </ span > < span class ="n "> name</ span > < span class ="p "> )</ span > < span class ="w "> </ span > < span class ="p "> {</ span >
2501+ < span class ="w "> </ span > < span class ="k "> this</ span > < span class ="p "> (</ span > < span class ="n "> id</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> name</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="kc "> null</ span > < span class ="p "> );</ span >
2502+ < span class ="w "> </ span > < span class ="p "> }</ span >
2503+
2504+ < span class ="w "> </ span > < span class ="kd "> public</ span > < span class ="w "> </ span > < span class ="nf "> JavaStudent</ span > < span class ="p "> (</ span > < span class ="n "> String</ span > < span class ="w "> </ span > < span class ="n "> id</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> String</ span > < span class ="w "> </ span > < span class ="n "> dateOfBirth</ span > < span class ="p "> )</ span > < span class ="w "> </ span > < span class ="p "> {</ span >
2505+ < span class ="w "> </ span > < span class ="k "> this</ span > < span class ="p "> (</ span > < span class ="n "> id</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="kc "> null</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> dateOfBirth</ span > < span class ="p "> );</ span >
2506+ < span class ="w "> </ span > < span class ="p "> }</ span >
2507+ < span class ="p "> }</ span >
2508+ </ code > </ pre > </ div >
24672509< h4 id ="compact-constructor "> Compact constructor</ h4 >
24682510< ul >
24692511< li > No se pueden tener ambos constructores, el compact más el canónico explícito.</ li >
0 commit comments