SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
 
Java  World     Capítulo  1       2  
  




                                                                                                                                                                                h
                                                                                                                                                                                t
                                                                                                                                                                                t
                                                                                                                                                                                p
                                                                                                                                                                                :
                                                                                                                                                                                /
                                                                                                                                                                                /
                                                                                                                                                                                g
                                                                                                                                                                                u
                                                                                                                                                                                s
                                                                                                                                                                                t
                                                                                                                                                                                a
                                                                                                                                                                                v
                                                                                                                                                                                o
                                                                                                                                                                                a
                                                                                                                                                                                l
                                                                                                                                                                                b
                                                                                                                                                                                e
                                                                                                                                                                                r
                                                                                                                                                                                o
                                                                                                                                                                                l
                                                                                                                                                                                a
                                                                                                                                                                                .
                                                                                                                                                                                b
                                                                                                                                                                                l
     Bienvenidos                                                                                                                                                                o
     Si  estás  leyendo  esto  es  porque  te  encuentras  interesado  en  rendir  la  certificación  de  Sun  SCJP  (Sun  Certified  Java  Programmer),  o                     g
     al  menos  tienes  curiosidad  al  respecto.                                                                                                                               s
     El  texto  que  leerá                                                                                                                                                      p
     Study   Guide         Katy   Sierra   y   Bert   Bates.   No   fue   ideado   como   alternativa   para   no   comprar   dicho   libro,   es   más,   recomiendo           o
     explícitamente  que  adquieran  el  libro.                                                                                                                                 t
     ¿Por  qué  adquirirlo,  si  me  estás  facilitando  los  resúmenes?  
                                                                                                                                                                                .
               Este  documento  es  un  resumen,  pero  a  su  vez  una  síntesis.  Conceptos  que  para  mí  son  conocidos,  puede  que  para  otros                          c
               lectores  no  lo  sean,  y  viceversa.                                                                                                                           o
               Este  documento  contiene  conceptos  que  han  sido  aportados  pura  y  exclusivamente  por  el  creador.                                                      m  
               El  libro  explica  en  forma  más  profunda  todos  los  temas  que  se  verán    a  continuación.  
               El  libro  contiene  una  serie  de  exámenes  al  final  de  cada  capítulo,  los  cuales  debo  decir  son  prácticamente  indispensables,  
               y  muy  tramposos  en  algunos  casos.  

       




  
3          Java  World     Capítulo  1  

              




h
t
t
p
:
/
/
v
a
l
o
r
c
r                        Recomendaciones  
e                                                                 
a
                         y  comenzar  a  prepararte  para  ser  un  SCJP.  
t
i                        Los   temas   que   se   tratan   pueden   parecer   triviales,   pero   llegan   a   ser   complejos   cuando   se   los   mezcla   en   un   todo.   Es   muy  
v                        importante,   no   dar   nada   por   sentado,   y   leer   hasta   el   último   párrafo   (a   veces,   creemos   que   sabíamos   algo,   cuando  
                         realmente,  nos  damos  cuenta  que  no  era  del  todo  cierto).  
o
                         Es  muy  importante  lo  que  sabes,  pero  también  lo  que  no  sabes.  Una  manera  muy  buena  de  realizar  esta  verificación  es  con  
.                                                                                                                      Study  Guide          Katy  Sierra  y  Bert  Bates.  La  otra  (y  
b                        recomiendo   ambas)   es   escribir   código.   Hola   mundo,   2   +   2,   cualquier   cosa.   A   cada   tema   que   están   estudiando   hagan   un  
l                        sencillo   programa,   y   piensen   para   sí   mismos,   cuáles   serían      los   casos   más   raros   que   se   les   pueden   llegar   a   presentar,   y  
o                        pruébenlos.   Por   estas   razones,   no   es   obligatorio,   pero   sería   recomendable   que   supieran   programar   en   Java   a   un   nivel  
g                        básico.  Simplemente  conocer  la  sintaxis  de  java.  
                         Olvídense  de  su  IDE,  su  computadora  necesita  un  descanso.  Utilicen  la  consola  de    comandos  para  compilar  y  ejecutar  sus  
s
                         programas.  
p
                         Al   no   utilizar   una   IDE,   están   propensos   a   cometer   errores,   que   esta   no   les   permitiría,   o   les   advertiría   en   el   momento.  
o                        Cuando  vayan  a  compilar,  sabrán  si  algo  no  le  agrada  al  compilador.  
t                                                                                       
.                        Bien,  tienes  razón.  Si  no  sabes  cómo  hacerlo,  puede  ser  un  poco  frustrante.  Para  aquellos  que  sepan:  
c
                                    Instalar  la  JDK  
o
                                    Establecer  el  Path  a  la  instalación  de  los  binary  de  la  JDK  
m                                   Compilar  un  .java  desde  consola  
                                    Ejecutar  un  .class  o  .jar  desde  consola  

                         Los  invito  a  que  empiecen  con  el  capítulo  de  Identificadores,  los  que  no,  que  les  parece  si  comenzamos  a  familiarizarnos  con  
                         la  consola.  

                           




              
Java  World     Capítulo  1             4  
  




Utilizando  java  desde  la  consola  de  comandos  
                                                                                                                                                                                              h
Vamos  a  hacer  una  diferencia  entre  dos  componentes  de  Java:  
                                                                                                                                                                                              h
                                                                                                                                                                                              t
                                                                                                                                                                                              t
                                                                                                                                                                                              t
          JRE                                                                                                                                                                                 t
                                                                                                                                                                                              p
          JDK                                                                                                                                                                                 p
                                                                                                                                                                                              :
JRE  (Java  Runtime  Environment):  Set  de  librerías  que  permiten  correr  una  JVM  en  la  pc  para  poder  ejecutar  un  programa  escrito  en                                         :
                                                                                                                                                                                              /
Java  (bytecodes).                                                                                                                                                                            /
                                                                                                                                                                                              /
JDK  (Java  Development  Kit):  Como  mencionamos  arriba,  los  bytecodes  son  un  lenguaje  intermedio  entre  el  código  fuente  y  el  código                                           /
                                                                                                                                                                                              g
máquina,   el  cual   es  interpretado  para  la  JVM.  Para  generar  este  código,  necesitamos  de  otras  funcionalidades  que  no  contiene  la                                          g
                                                                                                                                                                                              u
JRE.  Además,  en  la  JDK  encontraremos  la  API  de  Java.  Un  set  de  librerías  predefinidas  para  que  utilicemos  en  nuestros  programas.                                          u
                                                                                                                                                                                              s
                                                                                                                                                                                              s
                                                                                                                                                                                              t
Los  pasos  a  continuación  representan  una  guía  simple  para  poder    utilizar  la  consola  de  comandos,  simplemente  para  que  puedan  
hacer   ejercicios   sobre   los   temas   estudiados.   De   todas   maneras,   la   consola   de   comandos   se   tratará   más   a   fondo   en   entregas  
                                                                                                                                                                                              t
                                                                                                                                                                                              a
posteriores.                                                                                                                                                                                  a
                                                                                                                                                                                              v
                                                                                                                                                                                              v
                                                                                                                                                                                              o
Instalando  la  JDK  y  configurando  el  entorno                                                                                                                                             o
                                                                                                                                                                                              a
                                                                                                                                                                                              a
                                                                                                                                                                                              l
     1.   Si  ya  tienes  una  version  de  la  JDK  igual  o  superior  a  la  1.6.0  puedes  pasar  al  paso  3.  Vamos  a  obtener  la  JDK  desde  el  sitio  
          oficial  de  sun  http://java.sun.com.                                                                                                                                              l
                                                                                                                                                                                              b
          El  link  directo:  http://java.sun.com/javase/downloads/widget/jdk6.jsp                                                                                                            b
                                                                                                                                                                                              e
          Lo  que  nosotros  buscamos  es  la  JDK  de  Java  SE.                                                                                                                             e
                                                                                                                                                                                              r
     2.   Una  vez  que  hayas  desccargado  la  JDK  es  tiempo  de  instalarla.                                                                                                             r
                                                                                                                                                                                              o
     3.   Dijimos  que  ibamos  a   utilizar  la  consola  de  comandos,  el  problema   es  que  la   JDK  no  se  almacena   en  la   variable  PATH  de                                    o
          windows,  esto  quiere  decir  que  aun  no  podemos  ejecutar  los  comandos  de  Java,  salvo  que  nos  encontremos  en  el  directorio  
                                                                                                                                                                                              l
                                                                                                                                                                                              l
                                                                                                                                                                                              a
          de  los  mismo  [Directorio  instalación  JDK]Bin  
                                                                                                                                                                                              a
                                                                                                                                                                                              .
          En   Windows,   lo   que   vamos   a   hacer   primero   es   rastrear   este   Path.   Generalmente   se   encuentra   en:   C:Archivos  de  
          programaJavajdk1.6.0_XXbin.  Si  no  puedes  dar  con  este  Path,  puedes  buscar  el  archivo   javac.exe.  Una  vez                                                          .
                                                                                                                                                                                              b
          que  tengas  el  directorio,  guardalo  en  un  txt.                                                                                                                                b
                                                                                                                                                                                              l
     4.                                            -­‐>   Propiedades.   En   la   solap                                                                                                      l
                                                                                                                                                                                              o
                                                                                                                                          PATH.  Doble  click  sobre  la  misma,              o
                                                                                                                                                                                              g
          y  abrirá  la  edición.  Ahora,  agreguen  el  siguiente  texto  sin  eliminar  lo  que  hubiera  antes:                                                                            g
                                                             donde   Path   copiado   al   txt   es   el   path   de   los   bin   de   la   JDK   (ponemos   entre   comillas   el           s
                                                                                                                                                                                              s
                                                                                                                                                                                              p
          código  por  si  el  path  contiene  algún  espacio).  
          Luego  acepta  los  cambios.  
                                                                                                                                                                                              p
                                                                                                                                                                                              o
     5.                            -­‐             -­‐                                                                                                                                        o
                                                                                                                                                                                              t
          Se   debería   de   abrir   una   consola   de   comandos.   Ahora   vamos   a   probar   que   la   asignación   del   Path   fue   correcta.   Para   ello                        t
                                                                                                                                                                                              .
          tecleamos  el  comando  javac.                                                                                                                                                      .
                                                                                                                                                                                              c
          Debería  de  aparecerte  algo  como  lo  siguiente:                                                                                                                                 c
                                                                                                                                                                                              o
                     C:>javac                                                                                                                                                                o
                                                                                                                                                                                              m  
                     Usage:  javac  <options>  <source  files>                                                                                                                                m  
                     where  possible  options  include:  
                                                                                                                                                                                   

          Si  recibiste  un  mensaje  que  comienza  como  este,  significa  que  la  instalación  fue  exitosa,  de  lo  contrario,  vuelve  a  rever  los  
          pasos  anteriores.  
                                                




  
5          Java  World     Capítulo  1  

              




            Compilando  y  ejecutando  
h
t           Cuando  escriban  código  en  Java,  cada  archivo  fuente  contendra  la  extensión  java  (dificil  de  recordar,  no?!).  
            En  cambio,  los  archivos  compilados  contienen  la  extensión  class.  También  pueden  estar  dentro  de  un  jar,  que  no  es  más  que  un  
t
            zip  que  los  agrupa  en  un  solo  archivo  (tiene  otras  particularidades).  
p             
:           Nosotros  vamos  a  centrarnos  en  la  creación  de  los  .java  y  los  .class.  Los  jar  los  dejaremos  fuera  por  ahora.  
/           Esta  sección  tiene  en  cuenta  que  el  lector  tiene  conocimientos  básicos  para  manejarse  en  la  consola  de  comandos.  
/             
v           Vamos  a  crear  nuestra  primer  app.  Java:  
a                   1.   Crea  un  archivo  llamado  HolaJavaWorld.java  (en  el  directorio  que  quieras),  y  copia  el  código  a  continuación  dentro  del  
l                        archivo.  
o
r                public  class  HolaJavaWorld  {  
                     static  public  void  main(String[]  args)  {  
c                        System.out.println("Hola  Java  World!");;  
r                    }  
e                }  
                                                                                                                                                                                        
a
                    2.   Ejecuta   la   consola   de   comandos,   y   posiciona   el   Prompt   sobre   el   directorio   donde   creaste   el   archivo   (Tip:   si   haces   botón  
t                                                                                                                                                               la   de   comandos  
i                        posicionada  en  dicho  directorio).  
v                   3.   Ejecuta   javac   g  HolaJavaWorld.java   .   En   esta   parte   es   donde   le   pedimos   al   compilador   de   Java   que   genere   el  
o                        Bytecode  de  dicho  archivo  fuente.  Si  llegase  a  existir  algún  error  de  compilación,  es  en  este  punto  que  se  nos  informa  de  tal.  
.                   4.   Ejecuta  java  HolaJavaWorld.  Aqui  creamos  una  instancia  de  la  JVM  sobre  la  cual  correrá  nuestra  aplicación,  en  la  cual  
                                                                               
b
l           Con  estos  conocimientos  básicos  de  la  consola,  y  un  poco   de  conocimiento  del  lenguaje  Java,  ya  te  encuentras  en  condiciones  de  
o           generar  código  para  probar  tus  conocimientos  sobre  lo  que  vayas  leyendo.  
g             
s                                                                                                                                 
p
o                                                           
t
.
c
o
m  




              
Java  World     Capítulo  1     6  
  




Identificadores  

Los   identificadores   permiten   que   podamos   identificar   una   variable   por   un   nombre   y/o   conjunto   de   caracteres   alfanuméricos  
                                                                                                                                                                 h
(generalmente,  describen  el  contenido).                                                                                                                       t
Para  los  identificadores,  existen  una  serie  de  convenciones.                                                                                              t
                                                                                                                                                                 p
Identificadores  legales                                                                                                                                         :
Los  identificadores  legales  se  refieren  a  aquellos  que  cumplen  con  las  normas  mínimas  de  manera  que  el  compilador  no  genere  un  
                                                                                                                                                                 /
error  en  tiempo  de  compilación.                                                                                                                              /
Las  características  que  deben  de  cumplir  los  identificadores  son:                                                                                        g
                                                                                                                                                                 u
             Debe  estar  compuesto  de  caracteres  Unicode,  números,  $  o  _  
                                                                                                                                                                 s
             Debe  comenzar  con  un  carácter  Unicode,  $  o  _  
                                                                                                                                                                 t
             Luego  del  primer  carácter,  puede  contener  cualquier  conjunto  de  los  nombrados  en  el  primer  punto  
             No  tienen  un  límite  de  largo                                                                                                                   a
             No  es  posible  utilizar  palabras  reservadas  de  Java                                                                                           v
             Son  case-­‐sensitive  (distingue  mayúsculas  de  minúsculas)                                                                                      o
                                                                                                                                                                 a
Expresión  regular  de  la  composición  de  un  identificador  legal:  [w$_]([wd$_]*)  
                                                                                                                                                                 l
Convenciones  de  código  de  Java  Sun                                                                                                                          b
                                                                                                                                                                 e
Sun                                                                                                                                                              r
                                                                               
                                                                                                                                                                 o
Las  características  que  debe  de  cumplir  los  identificadores  son:  
                                                                                                                                                                 l
        Clases  e  interfaces                                                                                                                                    a
            o La  primer  letra  debe  ser  mayúscula                                                                                                            .
            o Utiliza  nomenclatura  camelCase                                                                                                                   b
            o Para  las  clases,  los  nombres  deben  de  ser  sustantivos  
                                                                                                                                                                 l
            o Para  las  interfaces,  los  nombres  deben  de  ser  adjetivos  
                                                                                                                                                                 o
        Métodos  
            o La  primer  letra  debe  ser  minúscula                                                                                                            g
            o Utiliza  nomenclatura  camelCase                                                                                                                   s
            o Los  nombres  deben  conformarse  por  el  par  verbo  +  sustantivo                                                                               p
        Variables                                                                                                                                                o
            o La  primer  letra  debe  ser  minúscula                                                                                                            t
            o Utiliza  nomenclatura  camelCase  
                                                                                                                                                                 .
            o Es  recomendable  utilizar  nombres  con  un  significado  explícito,  y  en  lo  posible,  cortos  
                                                                                                                                                                 c
        Constantes  
            o Todas  las  letras  de  cada  palabra  deben  estar  en  mayúsculas  
                                                                                                                                                                 o
            o Se  separa  cada  palabra  con  un  _                                                                                                              m  

  
                                            




  
7          Java  World     Capítulo  1  

              




            Estándares  para  nombres  de  JavaBeans    
h
h
t
t           Al  utilizar  estándares  para  nombres,  se  garantiza  que  las  herramientas  puedan  reconocer  los  componentes  realizados  por  cualquier  
t           desarrollador.  
t
            Las  características  que  debe  de  cumplir  los  identificadores  son:  
p
p
:
:                   Atributos  
/
/                        o Ambos   (getters   y   setters)   se   conforman   del   prefijo   especificado   +   el   nombre   del   atributo   con   su   primer   letra   en  
/
/                            mayúscula  
v                        o Getters  
v
                                       Si  la  propiedad  no  es  de  tipo  boolean  el  prefijo  debe  ser  get  
a
a                                      Si  la  propiedad  es  de  tipo  boolean  el  prefijo  debe  ser  is    
l
l                                      Deben  de  ser  public,  no  recibir  ningún  argumento,  y  devolver  un  valor  del  mismo  tipo  que  el  setter  para  la  
o
o                                      propiedad.  
r
r                        o Setters  
c
c                                      El  prefijo  debe  ser  set  
r                                      Deben  de  ser  public,  recibir  un  parámetro  del  mismo  tipo  que  la  propiedad,  y  devolver  void  
r
e                   Listeners  
e
                         o Los  métodos  que  agreguen  un  listener  deben  de  comenzar  con  el  prefijo  add  
a
a                        o Los  métodos  que  quiten  un  listener  deben  de  comenzar  con  el  prefijo  remove  
t
t                        o El  tipo  del  listener  a  agregar/quitar  debe  de  ser  pasado  como  argumento  
i
i                        o Deben  de  terminar  con  el  sufijo  Listener  
v
v                   Archivos  de  código  fuente  
o
o                        o Solo  puede  haber  una  clase  public  por  cada  archivo  
.
.                        o Los  comentarios  pueden  aparecer  en  cualquier  línea  
b                        o Si  existe  una  clase  public,  el  nombre  de  la  misma  debe  corresponderse  con  el  nombre  del  archivo  
b
                         o Si  la  clase  pertenece  a  un  package,  esta  sentencia  debe  ser  incluida  como  primera  línea  
l
l                        o Si  hay  import,  estos  deben  de  ser  incluidos  entre  la  declaración  del  package  y  de  la  clase  (class)  
o
o                        o Los  import  y  package  aplican  a  todas  las  clases  dentro  del  archivo  
g
g                        o Un  archivo  puede  tener  más  de  una  clase,  siempre  que  esta  no  sea  public  
s
s                        o Los  archivos  que  no  tengan  una  clase  public  pueden  contener  cualquier  nombre  
p
p
o
o                                                          
t
t
.
.
c
c
o
o
m  
m  




              
Java  World     Capítulo  1          8  
  




Declaraciones  de  clases  y  modificadores  de  acceso  
                                                                                                                                                                                 h
El  acceso  significa  visibilidad.  Dependiendo  de  los  modificadores  aplicados  a  la  clase,  atributos,  o  propiedades,  será  que  estos  podrán  
                                                                                                                                                                                 h
                                                                                                                                                                                 t
ser  accedidos  o  no  por  otros.                                                                                                                                               t
                                                                                                                                                                                 t
                                                                                                                                                                                 t
                                                                                                                                                                                 p
          Modificadores  de  acceso                                                                                                                                              p
             o public                                                                                                                                                            :
                                                                                                                                                                                 :
                                                                                                                                                                                 /
             o prívate  
             o protected                                                                                                                                                         /
                                                                                                                                                                                 /
             o Default  (package).  Si  no  se  especifica  un  modificador,  este  es  el  que  toma  por  defecto                                                              /
                                                                                                                                                                                 g
          Modificadores  de  no  acceso                                                                                                                                          g
                                                                                                                                                                                 u
             o strictpf                                                                                                                                                          u
             o final  
                                                                                                                                                                                 s
                                                                                                                                                                                 s
                                                                                                                                                                                 t
             o abstract  
                                                                                                                                                                                 t
                                                                                                                                                                                 a
Modificadores  de  acceso  a  clases                                                                                                                                             a
                                                                                                                                                                                 v
                                                                                                                                                                                 v
                                                                                                                                                                                 o
package  (default)                                                                                                                                                               o
                                                                                                                                                                                 a
                                                                                                                                                                                 a
                                                                                                                                                                                 l
Nivel  de  visibilidad:  clase  visible  para  todas  las  clases  que  se  encuentren  dentro  del  mismo  package.  
Este  no  debe  especificarse  (modificador  por  defecto).    
                                                                                                                                                                                 l
                                                                                                                                                                                 b
                                                                                                                                                                                 b
                                                                                                                                                                                 e
                         En   algunas   preguntas   con   lógica   compleja,   primero   es   recomendable   verificar   los   modificadores   de   acceso.   Si                 e
                                                                                                                                                                                 r
                                                                                                                                                                                 r
                                                                                                                                                                                 o
                                            
                                                                                                                                                                                 o
                                                                                                                                                                                 l
       
                                                                                                                                                                                 l
                                                                                                                                                                                 a
public                                                                                                                                                                           a
                                                                                                                                                                                 .
Nivel  de  visibilidad:  clase  visible  para  todas  las  clases  de  todos  los  package.                                                                                      .
                                                                                                                                                                                 b
Para  especificar  este  modificador  se  antepone  a  la  palabra  clave  class,  la  palabra  public.  De  todas  maneras,  si  la  clase  es  utilizada                       b
                                                                                                                                                                                 l
por  otra  clase  que  no  se  encuentra  en  el  mismo  package,  es  necesario  realizar  el  import  de  la  misma.                                                           l
                                                                                                                                                                                 o
                                                                                                                                                                                 o
                                                                                                                                                                                 g
Modificadores  de  no  acceso  
                                                                                                                                                                                 g
                                                                                                                                                                                 s
Estos  modificadores  pueden  combinarse  con  aquellos  que  si  modifican  el  acceso.                                                                                         s
                                                                                                                                                                                 p
                                                                                                                                                                                 p
                                                                                                                                                                                 o
strictpf                                                                                                                                                                         o
                                                                                                                                                                                 t
                                                                                                                                                                                 t
                                                                                                                                                                                 .
No  es  necesario  saber  para  la  certificación  como  es  que  funciona  strictpf.  Lo  único  que  es  necesario,  es  saber  que:  
                                                                                                                                                                                 .
                                                                                                                                                                                 c
          Es  una  palabra  reservada                                                                                                                                            c
                                                                                                                                                                                 o
          Puede  modificar  solo  clases  y  métodos                                                                                                                             o
                                                                                                                                                                                 m  
          Hacer   una   clase   strictpf   significa   que   todos   los   métodos   que   la   conforman   cumplen   con   la   norma   IEEE   754   para   punto               m  
          flotante  

                                                 




  
9          Java  World     Capítulo  1  

              




            final  
h
h
t
t           El  modificador  final  indica  que  una  clase  no  puede  ser  heredada  o  redefinida  por  una  subclase.  
t
t
            abstract  
p
p
:
:           Características  de  una  clase  abstract:  
/
/
/                   No  puede  ser  instanciada  (new),  solo  puede  ser  heredada.  
/
                    Si  un  método  de  la  clase  es  abstract,  esto  fuerza  a  que  la  clase  completa  sea  abstract.  
v
v                   No  todos  los  métodos  de  una  clase  abstract  tienen  que  ser  abstractos.  
a
a                   Los  métodos  abstract  no  llevan  cuerpo  (no  llevan  los  caracteres  {}).  
l
l                   La  primer  subclase  concreta  que  herede  de  una  clase  abstract  debe  implementar  todos  los  métodos  de  la  superclase.  
o
o
r
r           abstract  y  final  
c
c
                                                                                                                                              nos  dicen  que:  
r
r
e
e                   abstract:  obliga  a  que  la  subclase  defina  el  cuerpo  de  los  métodos.  
a
a                   final:  previene  que  la  clase  sea  heredada  o  redefinida.  
t
t           Un  modificador  se  opone  al  otro,  de  manera  que,  aunque  no  recibamos  un  error  de  compilación,  la  clase  declarada  de  esta  manera  
i
i           es  inutilizable.  
v
v                                                          
o
o
.
.
b
b
l
l
o
o
g
g
s
s
p
p
o
o
t
t
.
.
c
c
o
o
m  
m  




              
Java  World     Capítulo  1          10  
  




Declaración  de  interfaces  
                                                                                                                                                                        h
Cuando  creamos  una  interfaz,  lo  que  estamos  diciendo  es  lo  que  la  clase  deberá  de  poder  hacer,  pero  no  como  lo  hará.  Una  interfaz  
                                                                                                                                                                        h
                                                                                                                                                                        t
también  es  conocida  como  contrato.                                                                                                                                  t
                                                                                                                                                                        t
Características  de  una  interfaz:                                                                                                                                     t
                                                                                                                                                                        p
                                                                                                                                                                        p
                                                                                                                                                                        :
          Todos  los  métodos  de  una  interfaz  son  implícitamente  public  abstract,  no  es  necesario  especificarlo  en  la  declaración  del  
                                                                                                                                                                        :
                                                                                                                                                                        /
          mismo.  
                                                                                                                                                                        /
                                                                                                                                                                        /
          Todos  los  atributos  de  una  interfaz  son  implícitamente  constantes  (public  static  final),  no  es  necesario  especificarlo  en  
          la  declaración  del  mismo.                                                                                                                                  /
                                                                                                                                                                        g
          Todas  las  variables  de  una  interfaz  deben  de  ser  constantes  (public  static  final).                                                                g
                                                                                                                                                                        u
          Los  métodos  de  una  interfaz  no  pueden  ser:  static,  final,  strictfp  ni  native.                                                                     u
                                                                                                                                                                        s
          Una  interfaz  puede  heredar  (extends)  de  una  o  más  interfaces.                                                                                        s
                                                                                                                                                                        t
          Una  interfaz  no  puede  heredar  de  otro  elemento  que  no  sea  una  interfaz.                                                                           t
                                                                                                                                                                        a
          Una  interfaz  no  puede  implementar  (implements)  otra  interfaz.                                                                                          a
          Una  interfaz  debe  ser  declarada  con  la  palabra  clave  interface.  
                                                                                                                                                                        v
                                                                                                                                                                        v
                                                                                                                                                                        o
          Los  tipos  de  las  interfaces  pueden  ser  utilizados  polimórficamente.  
                                                                                                                                                                        o
                                                                                                                                                                        a
          Una  interfaz  puede  ser  public  o  package  (valor  por  defecto).  
          Los  métodos  toman  como  ámbito  el  que  contiene  la  interfaz.  
                                                                                                                                                                        a
                                                                                                                                                                        l
                                                                                                                                                                        l
                                                                                                                                                                        b
IMPORTANTE:  cuando  se  menciona  el  implícitamente,  se  refiere  a  que  si  no  se  especifican  estos  son  los  modificadores  que  toma,                        b
                                                                                                                                                                        e
pero  se  pueden  especificar  todos,  ninguno,  o  algunos,  siendo  declaraciones  semejantes,  por  ejemplo:                                                         e
                                                                                                                                                                        r
     public  interface  Dibujable  {  
             int  CONST  =  1;  
                                                                                                                                                                        r
                                                                                                                                                                        o
             public  int  CONST  =  1;                                                                                                                                  o
                                                                                                                                                                        l
             public  static  int  CONST  =  1;  
             public  final  int  CONST  =  1;                                                                                                                           l
                                                                                                                                                                        a
             static  int  CONST  =  1;  
             final  int  CONST  =  1;                                                                                                                                   a
                                                                                                                                                                        .
             static  final  int  CONST  =  1;                                                                                                                           .
             public  static  final  int  CONST  =  1;                                                                                                                   b
                                                                                                                                                                        b
                                                                                                                                                                        l
             void  doCalculo  ();  
             public  void  doCalculo  ();                                                                                                                               l
                                                                                                                                                                        o
             abstract  void  doCalculo  ();  
             public  abstract  void  doCalculo  ();  
                                                                                                                                                                        o
                                                                                                                                                                        g
     }                                                                                                                                                                  g
                                                                                                                                                                        s
                                                                                                                                                              
                                                                                                                                                                        s
                                                                                                                                                                        p
                                              
                                                                                                                                                                        p
                                                                                                                                                                        o
                                                                                                                                                                        o
                                                                                                                                                                        t
                                                                                                                                                                        t
                                                                                                                                                                        .
                                                                                                                                                                        .
                                                                                                                                                                        c
                                                                                                                                                                        c
                                                                                                                                                                        o
                                                                                                                                                                        o
                                                                                                                                                                        m  
                                                                                                                                                                        m  




  
11          Java  World     Capítulo  1  

           




         Declaración  de  métodos  y  atributos  
h
h
t
t        Un  método  puede  contener  modificadores  de  acceso  y  de  no  acceso.  Además,  posee  más  combinaciones  que  la  definición  de  clases.  
t        Dado  que  ambos,  métodos  y  atributos  se  declaran  de  manera  semejante,  se  especifican  en  un  mismo  apartado.  
t
p
p        Modificadores  de  acceso  
:
:
/
/        Los  modificadores  disponibles  son:  
/
/
                 public  
v
v                protected  
a
a                package  
l
l                prívate  
o
o
r        Con  estos  modificadores  tenemos  dos  conceptos  que  entender:  
r
c
c                Cuando  un  método  de  una  clase  puede  acceder  a  un  miembro  de  otra  clase.  
r
r                Cuando  una  subclase  puede  heredar  un  miembro  de  su  superclase.  
e
e
         El  primer  caso  se  da  cuando  un  método  de  una  clase  intenta  acceder  a  un  método  o  atributo  de  otra  clase,  valiéndose  del  operador  
a
a        .  para  invocar  un  método,  u  obtener  una  variable.  
t
t        El   segundo   caso   se   da   cuando   una   clase   hereda   de   otro,   permitiendo   que   la   subclase   acceda   a   los   métodos   y   atributos   de   la  
i
i        superclase,  a  través  de  la  herencia  (extends).  
v
v
o
o        public  
.
.        Cuando   un   atributo   o   método   es   declarado   como   public,   significa   que   cualquier   clase   en   cualquier   package   puede   acceder   a  
b
b        dicho  miembro.  
l
l
o
o        private  
g
g        Cuando   un   atributo   o   método   es   declarado   como   private,   solo   puede   ser   referenciado   por   la   misma   clase   (ni   siquiera   por   una  
s
s        subclase).  Incluso  si  una  subclase  declarara  un  atributo  o  método  con  el  mismo  nombre,  solo  estaría  generando  un  nuevo  miembro,  
p
p        no  sobrescribiéndolo,  como  puede  llegar  a  ser  malinterpretado.  
o
o
t
t        package  (default)  
.
.        Cuando   un   atributo   o   método   es   declarado   como   package,   solo   puede   ser   referenciado   por   cualquier   clase   que   se   encuentre  
c
c        dentro  del  mismo  package,  por  medio  de  herencia  y  referencia.  
o
o
m  
m        protected  

         Cuando  un  atributo  o  método  es  declarado  como  protected,  este  se  comporta  de  la  siguiente  manera:  

                 Una   variable   declarada   como   protected,   se   comporta   como   un   modificador   de   tipo   package   en   el   paquete   donde   se  
                 encuentra  la  clase  que  declaró  el  miembro.  
                 Una  variable  declarada  como  protected,  solo  puede  ser  accedida  a  través  de  la  herencia  (no  referencia),  cuando  se  encuentra  
                 fuera  del  package.  

         Esto   quiere   decir   que,   un   miembro   declarado   como   protected   es   visible   para   todas   las   clases   dentro   del   package   donde   fue  
         declarado  (ya  sean  subclases  de  la  misma  o  no)  a  través  de  referencia  y  herencia,  y  solo  disponible  a  través  de  la  herencia  para  las  
         subclases  que  se  encuentran  fuera  del  package.  Para  el  resto  de  las  clases,  se  comporta  como  un  modificador  prívate  (no  subclases  



           
Java  World     Capítulo  1        12  
  




fuera  del  package  de  declaración).  
                                                                                                                                                                            h
Modificadores  de  acceso  en  variables  locales                                                                                                                           h
                                                                                                                                                                            t
                                                                                                                                                                            t
                                                                                                                                                                            t
No  es  posible  aplicar  ningún  modificador  de  acceso  a  una  variable  local.  Solo  es  posible  aplicar  un  modificador  de  no  acceso:  final.                   t
                                                                                                                                                                            p
                                                                                                                                                                            p
                                                                                                                                                                            :
Modificadores  de  no  acceso  
                                                                                                                                                                            :
                                                                                                                                                                            /
Dentro  de  los  modificadores  de  no  acceso,  se  agregan  varios  de  los  2  ya  conocidos  a  la  lista  para  modificadores  de  miembros.                           /
                                                                                                                                                                            /
                                                                                                                                                                            /
                                                                                                                                                                            g
Modificador  de  no  acceso  en  métodos     final                                                                                                                          g
                                                                                                                                                                            u
El  modificador  final  fuerza  a  que  un  método  no  pueda  ser  redefinido  por  una  subclase.                                                                         u
                                                                                                                                                                            s
                                                                                                                                                                            s
                                                                                                                                                                            t
Modificador  de  no  acceso  en  atributos     final                                                                                                                        t
                                                                                                                                                                            a
                                                                                                                                                                            a
                                                                                                                                                                            v
En  el  caso  de  un  modificador  final  para  un  atributo,  pueden  darse  2  casos:  
                                                                                                                                                                            v
                                                                                                                                                                            o
     Si  el  atributo  es  un  valor  primitivo,  impide  de  que  modifique  su  valor  (un  valor  primitivo  es  por  ejemplo  un  int).                                 o
                                                                                                                                                                            a
     Si  el  atributo  es  una  referencia,  impide  que  se  modifique  la  referencia,  pero  no  el  estado  de  la  misma.                                              a
                                                                                                                                                                            l
                                                                                                                                                                            l
                                                                                                                                                                            b
Modificador  de  no  acceso  en  métodos     abstract  
                                                                                                                                                                            b
                                                                                                                                                                            e
El   modificador   abstract   en   un   método   indica   que   el   mismo   se   ha   declarado   en   el   contrato,   pero   no   se   ha   especificado   su            e
                                                                                                                                                                            r
comportamiento  (cuerpo  del  método).                                                                                                                                      r
                                                                                                                                                                            o
                                                                                                                                                                            o
                                                                                                                                                                            l
                                                                                                                                                                            l
                                                                                                                                                                            a
                     Al  especificar  al  menos  1  método  como  abstract,  se  fuerza  a  que  la  clase  se  declare  como  tal,  por  el  contrario,  
                                                                                                                                                                            a
                                                                                                                                                                            .
                     una  clase  declarada  como  abstract  puede  no  contener  ningún  método  de  este  tipo.  
                       
                                                                                                                                                                            .
                                                                                                                                                                            b
                                                                                                                                                             
                                                                                                                                                                            b
                                                                                                                                                                            l
Modificador  de  no  acceso  en  métodos     synchronized                                                                                                                   l
                                                                                                                                                                            o
                                                                                                                                                                            o
                                                                                                                                                                            g
  
El  modificador  sinchronized  indica  que  el  método  solo  puede  ser  accedido  por  un  Thread  a  la  vez.  
                                                                                                                                                                            g
                                                                                                                                                                            s
Este  modificador  puede  utilizarse  en  conjunto  con  cualquiera  de  los  4  modificadores  de  acceso.                                                                 s
                                                                                                                                                                            p
                                                                                                                                                                            p
                                                                                                                                                                            o
Modificador  de  no  acceso  en  métodos     Native                                                                                                                         o
                                                                                                                                                                            t
                                                                                                                                                                            t
                                                                                                                                                                            .
El  modificador   native  indica   que  el  código  es  dependiente  de  la   plataforma,  generalmente  en  código   C.  Solo  es  necesario  saber  
para  la  certificación  que  un  modificador  de  no  acceso  native  solo  puede  ser  aplicado  a  un  método.                                                           .
                                                                                                                                                                            c
El  método  debe  especificarse  como  si  fuera  abstracto  (sin  los  caracteres  {},  y  directamente  con  ;)                                                           c
                                                                                                                                                                            o
                                                                                                                                                                            o
                                                                                                                                                                            m  
Modificador  de  no  acceso  en  métodos     strictfp                                                                                                                       m  
Al  igual  que  para  una  clase,  el  modificador  de  no  acceso  strictfp  indica  que  los  caracteres  de  punto  flotante  utilizan  la  norma  IEEE  
754.  

Métodos  con  listas  de  argumentos  variables  

A  partir  de  Java  5.0,  es  posible  crear  métodos  que  reciban  una  cantidad  de  argumentos  variables.  

     Pueden  ser  de  tipo  primitivo  o  un  objeto.  



  
13          Java  World     Capítulo  1  

           




                   La  definición  de  var-­‐args  se  hace:  tipoDato nombreVariable.  
h                  Solo  se  puede  especificar  un  solo  parámetro  de  tipo  var-­‐args  en  la  firma  del  método.  
t                  El  parámetro  var-­‐args  debe  de  ser  el  último  especificado  en  la  firma  del  método.  
t
t                                                                                    
p        Al  llamar  a  un  método  sobrecargado  o  sobre  escrito,  primero  se   verifica  si  la   llamada   concuerda   con  algún  método  que  no  tenga  
:        argumentos  variables,  si  no  se  encuentra  ninguno  de  estos,  se  verifica  con  los  métodos  de  argumentos  variables.  
/
/          
/          
v
              public  class  PruebaParametrosVariables  {  
a                 static  public  void  haceAlgo(int  val)  {  
l                     System.out.println("Soy  haceAlgo  con  un  parámetro  int");  
                  }  
o               
                  static  public  void  haceAlgo(int  val1,  int  val2)  {  
r                     System.out.println("Soy  haceAlgo  con  dos  parámetros  int");  
                  }  
c               
                  static  public  void  haceAlgo(int...  val)  {  
r                     System.out.println("Soy  haceAlgo  con  parámetros  variables");  
e                 }  
                
a                 static  public  void  main(String[]  args)  {  
                      PruebaParametrosVariables.haceAlgo(1);  
t                     PruebaParametrosVariables.haceAlgo(2,  3);  
i                     PruebaParametrosVariables.haceAlgo(4,  5,  6);  
                      PruebaParametrosVariables.haceAlgo(4,  5,  6,  7);          
v                 }  
                                                                                                                                                                 
o          
.
b                             Soy  haceAlgo  con  un  parámetro  int  
                              Soy  haceAlgo  con  dos  parámetros  int  
l                             Soy  haceAlgo  con  parámetros  variables  
o                             Soy  haceAlgo  con  parámetros  variables  

g                                                                                                                                                                
              
s
p                                                         
o
t
.
c
o
m  




           
Capitulo 1
Capitulo 1
Capitulo 1
Capitulo 1
Capitulo 1

Weitere ähnliche Inhalte

Was ist angesagt?

Diagranacion periodico
Diagranacion periodicoDiagranacion periodico
Diagranacion periodicoJUan Feria
 
Monigote raro deforme
Monigote raro deformeMonigote raro deforme
Monigote raro deformearuiperezgil
 
Programación Enero Febrero 2011
Programación Enero Febrero 2011Programación Enero Febrero 2011
Programación Enero Febrero 2011Zaragoza Activa
 
Trampas de luz 09 al 15 de nov de 2012
Trampas de luz 09 al 15 de nov de 2012Trampas de luz 09 al 15 de nov de 2012
Trampas de luz 09 al 15 de nov de 2012Macarena Casuso
 
Los reciclados y sus proyectos
Los reciclados y sus proyectosLos reciclados y sus proyectos
Los reciclados y sus proyectosMeli Sanchez
 
National instruments presentation human capital group dirk willems
National instruments presentation human capital group   dirk willemsNational instruments presentation human capital group   dirk willems
National instruments presentation human capital group dirk willemsDirk Willems
 
Diagrama mcti
Diagrama mctiDiagrama mcti
Diagrama mctigrenyjoel
 
Processos de Improbidade Administrativa do Aloisio Vieira
Processos de Improbidade Administrativa do Aloisio VieiraProcessos de Improbidade Administrativa do Aloisio Vieira
Processos de Improbidade Administrativa do Aloisio VieiraLuciano Viana
 
Plano esquemático de Bueu
Plano esquemático de BueuPlano esquemático de Bueu
Plano esquemático de BueuConcello de Bueu
 
Presentación atletismo
Presentación atletismoPresentación atletismo
Presentación atletismonachoydiego
 
Presentación Objetivos enfermería de hospitalización
Presentación Objetivos enfermería de hospitalización Presentación Objetivos enfermería de hospitalización
Presentación Objetivos enfermería de hospitalización 982531786
 
Entrega finaaaaal
Entrega finaaaaalEntrega finaaaaal
Entrega finaaaaalnacho_0
 

Was ist angesagt? (20)

JavaWorld - SCJP - Capitulo 6
JavaWorld - SCJP - Capitulo 6JavaWorld - SCJP - Capitulo 6
JavaWorld - SCJP - Capitulo 6
 
Diagranacion periodico
Diagranacion periodicoDiagranacion periodico
Diagranacion periodico
 
Podemoscast
PodemoscastPodemoscast
Podemoscast
 
Anaga
AnagaAnaga
Anaga
 
Comic
ComicComic
Comic
 
Monigote raro deforme
Monigote raro deformeMonigote raro deforme
Monigote raro deforme
 
Programación Enero Febrero 2011
Programación Enero Febrero 2011Programación Enero Febrero 2011
Programación Enero Febrero 2011
 
Trampas de luz 09 al 15 de nov de 2012
Trampas de luz 09 al 15 de nov de 2012Trampas de luz 09 al 15 de nov de 2012
Trampas de luz 09 al 15 de nov de 2012
 
Los reciclados y sus proyectos
Los reciclados y sus proyectosLos reciclados y sus proyectos
Los reciclados y sus proyectos
 
National instruments presentation human capital group dirk willems
National instruments presentation human capital group   dirk willemsNational instruments presentation human capital group   dirk willems
National instruments presentation human capital group dirk willems
 
Diagrama mcti
Diagrama mctiDiagrama mcti
Diagrama mcti
 
Processos de Improbidade Administrativa do Aloisio Vieira
Processos de Improbidade Administrativa do Aloisio VieiraProcessos de Improbidade Administrativa do Aloisio Vieira
Processos de Improbidade Administrativa do Aloisio Vieira
 
Plano esquemático de Bueu
Plano esquemático de BueuPlano esquemático de Bueu
Plano esquemático de Bueu
 
Triptico
TripticoTriptico
Triptico
 
Lopez
LopezLopez
Lopez
 
Xen Summit Asia 2009 Xen Arm Talk
Xen Summit Asia 2009 Xen Arm TalkXen Summit Asia 2009 Xen Arm Talk
Xen Summit Asia 2009 Xen Arm Talk
 
Proporcion De Quejas
Proporcion De QuejasProporcion De Quejas
Proporcion De Quejas
 
Presentación atletismo
Presentación atletismoPresentación atletismo
Presentación atletismo
 
Presentación Objetivos enfermería de hospitalización
Presentación Objetivos enfermería de hospitalización Presentación Objetivos enfermería de hospitalización
Presentación Objetivos enfermería de hospitalización
 
Entrega finaaaaal
Entrega finaaaaalEntrega finaaaaal
Entrega finaaaaal
 

Andere mochten auch

Power pointcelula
Power pointcelulaPower pointcelula
Power pointcelulaMagpediaz
 
Planificacion clase 5 terminada
Planificacion clase 5 terminadaPlanificacion clase 5 terminada
Planificacion clase 5 terminadaMaca Vargas Arias
 
Las fuentes de la energia
Las fuentes de la energiaLas fuentes de la energia
Las fuentes de la energianachiti
 
Trabajo Práctico de Teoría de las Organizaciones
Trabajo Práctico de Teoría de las OrganizacionesTrabajo Práctico de Teoría de las Organizaciones
Trabajo Práctico de Teoría de las Organizacionesmanupicotto
 
los animales por cristina taipe
los animales por cristina taipelos animales por cristina taipe
los animales por cristina taipekristaipe
 
Planificacion clase 1 terminada
Planificacion clase 1 terminadaPlanificacion clase 1 terminada
Planificacion clase 1 terminadaMaca Vargas Arias
 
Presentación7 terminado
Presentación7 terminadoPresentación7 terminado
Presentación7 terminadoGissele León
 
Conceptos tecnología en informática
Conceptos tecnología en informáticaConceptos tecnología en informática
Conceptos tecnología en informáticauniminuto2111
 
Ponencia conjunta participo luis estela morales
Ponencia conjunta participo luis estela moralesPonencia conjunta participo luis estela morales
Ponencia conjunta participo luis estela moralesRafael Bordones
 
Planificacion clase 1 terminada
Planificacion clase 1 terminadaPlanificacion clase 1 terminada
Planificacion clase 1 terminadaMaca Vargas Arias
 
CIRCO DE LOS CINCO SENTIDOS POR VERÓNICA PALOMO
CIRCO DE LOS CINCO SENTIDOS POR VERÓNICA PALOMOCIRCO DE LOS CINCO SENTIDOS POR VERÓNICA PALOMO
CIRCO DE LOS CINCO SENTIDOS POR VERÓNICA PALOMOVeronicaPalomo
 
Ley sopa final
Ley sopa finalLey sopa final
Ley sopa finaldenisxn04
 
Plan Internacionalización Economía Española 2014-2015
Plan Internacionalización Economía Española 2014-2015Plan Internacionalización Economía Española 2014-2015
Plan Internacionalización Economía Española 2014-2015AMEC
 
Puntos básicos sobre la tatica en el futbol
Puntos  básicos sobre la tatica en el futbolPuntos  básicos sobre la tatica en el futbol
Puntos básicos sobre la tatica en el futbolfarid9006
 

Andere mochten auch (20)

Power pointcelula
Power pointcelulaPower pointcelula
Power pointcelula
 
Planificacion clase 5 terminada
Planificacion clase 5 terminadaPlanificacion clase 5 terminada
Planificacion clase 5 terminada
 
Dese
DeseDese
Dese
 
Las fuentes de la energia
Las fuentes de la energiaLas fuentes de la energia
Las fuentes de la energia
 
Magnetismo
MagnetismoMagnetismo
Magnetismo
 
Trabajo Práctico de Teoría de las Organizaciones
Trabajo Práctico de Teoría de las OrganizacionesTrabajo Práctico de Teoría de las Organizaciones
Trabajo Práctico de Teoría de las Organizaciones
 
los animales por cristina taipe
los animales por cristina taipelos animales por cristina taipe
los animales por cristina taipe
 
Planificacion clase 1 terminada
Planificacion clase 1 terminadaPlanificacion clase 1 terminada
Planificacion clase 1 terminada
 
Presentación7 terminado
Presentación7 terminadoPresentación7 terminado
Presentación7 terminado
 
Correspondenica
CorrespondenicaCorrespondenica
Correspondenica
 
Conceptos tecnología en informática
Conceptos tecnología en informáticaConceptos tecnología en informática
Conceptos tecnología en informática
 
Ponencia conjunta participo luis estela morales
Ponencia conjunta participo luis estela moralesPonencia conjunta participo luis estela morales
Ponencia conjunta participo luis estela morales
 
Nuestros servicios realiza sep2013
Nuestros servicios realiza sep2013Nuestros servicios realiza sep2013
Nuestros servicios realiza sep2013
 
Planificacion clase 1 terminada
Planificacion clase 1 terminadaPlanificacion clase 1 terminada
Planificacion clase 1 terminada
 
CIRCO DE LOS CINCO SENTIDOS POR VERÓNICA PALOMO
CIRCO DE LOS CINCO SENTIDOS POR VERÓNICA PALOMOCIRCO DE LOS CINCO SENTIDOS POR VERÓNICA PALOMO
CIRCO DE LOS CINCO SENTIDOS POR VERÓNICA PALOMO
 
Ley sopa final
Ley sopa finalLey sopa final
Ley sopa final
 
Gadgets.pptxmeche
Gadgets.pptxmecheGadgets.pptxmeche
Gadgets.pptxmeche
 
Plan Internacionalización Economía Española 2014-2015
Plan Internacionalización Economía Española 2014-2015Plan Internacionalización Economía Española 2014-2015
Plan Internacionalización Economía Española 2014-2015
 
Puntos básicos sobre la tatica en el futbol
Puntos  básicos sobre la tatica en el futbolPuntos  básicos sobre la tatica en el futbol
Puntos básicos sobre la tatica en el futbol
 
Guia clase 4 terminada
Guia clase 4 terminadaGuia clase 4 terminada
Guia clase 4 terminada
 

Ähnlich wie Capitulo 1

Cap1 javaworld
Cap1 javaworldCap1 javaworld
Cap1 javaworldevanlitos
 
Historietas iznogud el malvado-horacio germán garcía
Historietas iznogud el malvado-horacio germán garcíaHistorietas iznogud el malvado-horacio germán garcía
Historietas iznogud el malvado-horacio germán garcíaHoracio Germán García
 
Unidad 5.- Sistemas de cruzamiento
Unidad 5.- Sistemas de cruzamientoUnidad 5.- Sistemas de cruzamiento
Unidad 5.- Sistemas de cruzamientoElenaRaimundez
 
Examen de matematicas sexto grado supervision
Examen de matematicas sexto grado supervisionExamen de matematicas sexto grado supervision
Examen de matematicas sexto grado supervisiondemonia28
 
Web enabled 2012
Web enabled 2012Web enabled 2012
Web enabled 2012Wiyingi
 
Moodle 1.9 Configuración del curso
Moodle 1.9  Configuración del cursoMoodle 1.9  Configuración del curso
Moodle 1.9 Configuración del cursoRamón OVELAR
 
Folleto del museo_del_romanticismo
Folleto del museo_del_romanticismoFolleto del museo_del_romanticismo
Folleto del museo_del_romanticismoalvarpau
 
1963 bar
1963 bar1963 bar
1963 baredusor
 
Presentacion 1er Parcial
Presentacion 1er ParcialPresentacion 1er Parcial
Presentacion 1er ParcialSharlene
 
Prueba única de informática anderson cardona
Prueba única de informática anderson cardonaPrueba única de informática anderson cardona
Prueba única de informática anderson cardonaandercardona
 

Ähnlich wie Capitulo 1 (14)

Cap1 javaworld
Cap1 javaworldCap1 javaworld
Cap1 javaworld
 
Historietas iznogud el malvado-horacio germán garcía
Historietas iznogud el malvado-horacio germán garcíaHistorietas iznogud el malvado-horacio germán garcía
Historietas iznogud el malvado-horacio germán garcía
 
Unidad 5.- Sistemas de cruzamiento
Unidad 5.- Sistemas de cruzamientoUnidad 5.- Sistemas de cruzamiento
Unidad 5.- Sistemas de cruzamiento
 
Examen de matematicas sexto grado supervision
Examen de matematicas sexto grado supervisionExamen de matematicas sexto grado supervision
Examen de matematicas sexto grado supervision
 
Yo me anticipo!!
Yo me anticipo!!Yo me anticipo!!
Yo me anticipo!!
 
Web enabled 2012
Web enabled 2012Web enabled 2012
Web enabled 2012
 
Moodle 1.9 Configuración del curso
Moodle 1.9  Configuración del cursoMoodle 1.9  Configuración del curso
Moodle 1.9 Configuración del curso
 
Linea desarrollo institucional
Linea  desarrollo institucionalLinea  desarrollo institucional
Linea desarrollo institucional
 
Marifé Soria_Patrimonio Arq.
Marifé Soria_Patrimonio Arq.Marifé Soria_Patrimonio Arq.
Marifé Soria_Patrimonio Arq.
 
Folleto del museo_del_romanticismo
Folleto del museo_del_romanticismoFolleto del museo_del_romanticismo
Folleto del museo_del_romanticismo
 
Mapa Valle
Mapa ValleMapa Valle
Mapa Valle
 
1963 bar
1963 bar1963 bar
1963 bar
 
Presentacion 1er Parcial
Presentacion 1er ParcialPresentacion 1er Parcial
Presentacion 1er Parcial
 
Prueba única de informática anderson cardona
Prueba única de informática anderson cardonaPrueba única de informática anderson cardona
Prueba única de informática anderson cardona
 

Mehr von jorg_marq

Clase9 threads
Clase9 threadsClase9 threads
Clase9 threadsjorg_marq
 
Clase8 innerclasses
Clase8 innerclassesClase8 innerclasses
Clase8 innerclassesjorg_marq
 
Clase7 generics
Clase7 genericsClase7 generics
Clase7 genericsjorg_marq
 
Clase6 collections
Clase6 collectionsClase6 collections
Clase6 collectionsjorg_marq
 
Clase5 controldeflujo
Clase5 controldeflujoClase5 controldeflujo
Clase5 controldeflujojorg_marq
 
Clase4 operadores
Clase4 operadoresClase4 operadores
Clase4 operadoresjorg_marq
 
Clase3 asignaciones
Clase3 asignacionesClase3 asignaciones
Clase3 asignacionesjorg_marq
 
Clase2 ejemplosdeenumpoo
Clase2 ejemplosdeenumpooClase2 ejemplosdeenumpoo
Clase2 ejemplosdeenumpoojorg_marq
 
Clase1 introduccinalcurso
Clase1 introduccinalcursoClase1 introduccinalcurso
Clase1 introduccinalcursojorg_marq
 
Capitulos 8 9-10
Capitulos 8 9-10Capitulos 8 9-10
Capitulos 8 9-10jorg_marq
 
Clase10 stringsio
Clase10 stringsioClase10 stringsio
Clase10 stringsiojorg_marq
 
Whither cman
Whither cmanWhither cman
Whither cmanjorg_marq
 
Ex300 objectives
Ex300   objectivesEx300   objectives
Ex300 objectivesjorg_marq
 
Ex200 objectives
Ex200   objectivesEx200   objectives
Ex200 objectivesjorg_marq
 

Mehr von jorg_marq (16)

Clase9 threads
Clase9 threadsClase9 threads
Clase9 threads
 
Clase8 innerclasses
Clase8 innerclassesClase8 innerclasses
Clase8 innerclasses
 
Clase7 generics
Clase7 genericsClase7 generics
Clase7 generics
 
Clase6 collections
Clase6 collectionsClase6 collections
Clase6 collections
 
Clase5 controldeflujo
Clase5 controldeflujoClase5 controldeflujo
Clase5 controldeflujo
 
Clase4 operadores
Clase4 operadoresClase4 operadores
Clase4 operadores
 
Clase3 asignaciones
Clase3 asignacionesClase3 asignaciones
Clase3 asignaciones
 
Clase2 ejemplosdeenumpoo
Clase2 ejemplosdeenumpooClase2 ejemplosdeenumpoo
Clase2 ejemplosdeenumpoo
 
Clase1 introduccinalcurso
Clase1 introduccinalcursoClase1 introduccinalcurso
Clase1 introduccinalcurso
 
Capitulos 8 9-10
Capitulos 8 9-10Capitulos 8 9-10
Capitulos 8 9-10
 
Capitulo 5
Capitulo 5Capitulo 5
Capitulo 5
 
Capitulo 4
Capitulo 4Capitulo 4
Capitulo 4
 
Clase10 stringsio
Clase10 stringsioClase10 stringsio
Clase10 stringsio
 
Whither cman
Whither cmanWhither cman
Whither cman
 
Ex300 objectives
Ex300   objectivesEx300   objectives
Ex300 objectives
 
Ex200 objectives
Ex200   objectivesEx200   objectives
Ex200 objectives
 

Capitulo 1

  • 1.  
  • 2. Java  World    Capítulo  1   2     h t t p : / / g u s t a v o a l b e r o l a . b l Bienvenidos   o Si  estás  leyendo  esto  es  porque  te  encuentras  interesado  en  rendir  la  certificación  de  Sun  SCJP  (Sun  Certified  Java  Programmer),  o   g al  menos  tienes  curiosidad  al  respecto.   s El  texto  que  leerá p Study   Guide Katy   Sierra   y   Bert   Bates.   No   fue   ideado   como   alternativa   para   no   comprar   dicho   libro,   es   más,   recomiendo   o explícitamente  que  adquieran  el  libro.     t ¿Por  qué  adquirirlo,  si  me  estás  facilitando  los  resúmenes?   . Este  documento  es  un  resumen,  pero  a  su  vez  una  síntesis.  Conceptos  que  para  mí  son  conocidos,  puede  que  para  otros   c lectores  no  lo  sean,  y  viceversa.   o Este  documento  contiene  conceptos  que  han  sido  aportados  pura  y  exclusivamente  por  el  creador.   m   El  libro  explica  en  forma  más  profunda  todos  los  temas  que  se  verán    a  continuación.   El  libro  contiene  una  serie  de  exámenes  al  final  de  cada  capítulo,  los  cuales  debo  decir  son  prácticamente  indispensables,   y  muy  tramposos  en  algunos  casos.      
  • 3. 3   Java  World    Capítulo  1     h t t p : / / v a l o r c r Recomendaciones   e     a y  comenzar  a  prepararte  para  ser  un  SCJP.   t i Los   temas   que   se   tratan   pueden   parecer   triviales,   pero   llegan   a   ser   complejos   cuando   se   los   mezcla   en   un   todo.   Es   muy   v importante,   no   dar   nada   por   sentado,   y   leer   hasta   el   último   párrafo   (a   veces,   creemos   que   sabíamos   algo,   cuando   realmente,  nos  damos  cuenta  que  no  era  del  todo  cierto).   o Es  muy  importante  lo  que  sabes,  pero  también  lo  que  no  sabes.  Una  manera  muy  buena  de  realizar  esta  verificación  es  con   . Study  Guide Katy  Sierra  y  Bert  Bates.  La  otra  (y   b recomiendo   ambas)   es   escribir   código.   Hola   mundo,   2   +   2,   cualquier   cosa.   A   cada   tema   que   están   estudiando   hagan   un   l sencillo   programa,   y   piensen   para   sí   mismos,   cuáles   serían     los   casos   más   raros   que   se   les   pueden   llegar   a   presentar,   y   o pruébenlos.   Por   estas   razones,   no   es   obligatorio,   pero   sería   recomendable   que   supieran   programar   en   Java   a   un   nivel   g básico.  Simplemente  conocer  la  sintaxis  de  java.   Olvídense  de  su  IDE,  su  computadora  necesita  un  descanso.  Utilicen  la  consola  de    comandos  para  compilar  y  ejecutar  sus   s programas.   p Al   no   utilizar   una   IDE,   están   propensos   a   cometer   errores,   que   esta   no   les   permitiría,   o   les   advertiría   en   el   momento.   o Cuando  vayan  a  compilar,  sabrán  si  algo  no  le  agrada  al  compilador.   t   . Bien,  tienes  razón.  Si  no  sabes  cómo  hacerlo,  puede  ser  un  poco  frustrante.  Para  aquellos  que  sepan:   c Instalar  la  JDK   o Establecer  el  Path  a  la  instalación  de  los  binary  de  la  JDK   m   Compilar  un  .java  desde  consola   Ejecutar  un  .class  o  .jar  desde  consola   Los  invito  a  que  empiecen  con  el  capítulo  de  Identificadores,  los  que  no,  que  les  parece  si  comenzamos  a  familiarizarnos  con   la  consola.      
  • 4. Java  World    Capítulo  1   4     Utilizando  java  desde  la  consola  de  comandos   h Vamos  a  hacer  una  diferencia  entre  dos  componentes  de  Java:   h t t t JRE   t p JDK   p : JRE  (Java  Runtime  Environment):  Set  de  librerías  que  permiten  correr  una  JVM  en  la  pc  para  poder  ejecutar  un  programa  escrito  en   : / Java  (bytecodes).   / / JDK  (Java  Development  Kit):  Como  mencionamos  arriba,  los  bytecodes  son  un  lenguaje  intermedio  entre  el  código  fuente  y  el  código   / g máquina,   el  cual   es  interpretado  para  la  JVM.  Para  generar  este  código,  necesitamos  de  otras  funcionalidades  que  no  contiene  la   g u JRE.  Además,  en  la  JDK  encontraremos  la  API  de  Java.  Un  set  de  librerías  predefinidas  para  que  utilicemos  en  nuestros  programas.   u   s s t Los  pasos  a  continuación  representan  una  guía  simple  para  poder    utilizar  la  consola  de  comandos,  simplemente  para  que  puedan   hacer   ejercicios   sobre   los   temas   estudiados.   De   todas   maneras,   la   consola   de   comandos   se   tratará   más   a   fondo   en   entregas   t a posteriores.   a v v o Instalando  la  JDK  y  configurando  el  entorno   o a a l 1. Si  ya  tienes  una  version  de  la  JDK  igual  o  superior  a  la  1.6.0  puedes  pasar  al  paso  3.  Vamos  a  obtener  la  JDK  desde  el  sitio   oficial  de  sun  http://java.sun.com.   l b El  link  directo:  http://java.sun.com/javase/downloads/widget/jdk6.jsp   b e Lo  que  nosotros  buscamos  es  la  JDK  de  Java  SE.   e r 2. Una  vez  que  hayas  desccargado  la  JDK  es  tiempo  de  instalarla.   r o 3. Dijimos  que  ibamos  a   utilizar  la  consola  de  comandos,  el  problema   es  que  la   JDK  no  se  almacena   en  la   variable  PATH  de   o windows,  esto  quiere  decir  que  aun  no  podemos  ejecutar  los  comandos  de  Java,  salvo  que  nos  encontremos  en  el  directorio   l l a de  los  mismo  [Directorio  instalación  JDK]Bin   a . En   Windows,   lo   que   vamos   a   hacer   primero   es   rastrear   este   Path.   Generalmente   se   encuentra   en:   C:Archivos  de   programaJavajdk1.6.0_XXbin.  Si  no  puedes  dar  con  este  Path,  puedes  buscar  el  archivo   javac.exe.  Una  vez   . b que  tengas  el  directorio,  guardalo  en  un  txt.   b l 4. -­‐>   Propiedades.   En   la   solap l o PATH.  Doble  click  sobre  la  misma,   o g y  abrirá  la  edición.  Ahora,  agreguen  el  siguiente  texto  sin  eliminar  lo  que  hubiera  antes:   g     donde   Path   copiado   al   txt   es   el   path   de   los   bin   de   la   JDK   (ponemos   entre   comillas   el   s s p código  por  si  el  path  contiene  algún  espacio).   Luego  acepta  los  cambios.   p o 5. -­‐ -­‐   o t Se   debería   de   abrir   una   consola   de   comandos.   Ahora   vamos   a   probar   que   la   asignación   del   Path   fue   correcta.   Para   ello   t . tecleamos  el  comando  javac.   . c Debería  de  aparecerte  algo  como  lo  siguiente:   c o C:>javac   o m   Usage:  javac  <options>  <source  files>   m   where  possible  options  include:     Si  recibiste  un  mensaje  que  comienza  como  este,  significa  que  la  instalación  fue  exitosa,  de  lo  contrario,  vuelve  a  rever  los   pasos  anteriores.        
  • 5. 5   Java  World    Capítulo  1     Compilando  y  ejecutando   h t Cuando  escriban  código  en  Java,  cada  archivo  fuente  contendra  la  extensión  java  (dificil  de  recordar,  no?!).   En  cambio,  los  archivos  compilados  contienen  la  extensión  class.  También  pueden  estar  dentro  de  un  jar,  que  no  es  más  que  un   t zip  que  los  agrupa  en  un  solo  archivo  (tiene  otras  particularidades).   p   : Nosotros  vamos  a  centrarnos  en  la  creación  de  los  .java  y  los  .class.  Los  jar  los  dejaremos  fuera  por  ahora.   / Esta  sección  tiene  en  cuenta  que  el  lector  tiene  conocimientos  básicos  para  manejarse  en  la  consola  de  comandos.   /   v Vamos  a  crear  nuestra  primer  app.  Java:   a 1. Crea  un  archivo  llamado  HolaJavaWorld.java  (en  el  directorio  que  quieras),  y  copia  el  código  a  continuación  dentro  del   l archivo.   o r public  class  HolaJavaWorld  {      static  public  void  main(String[]  args)  {   c        System.out.println("Hola  Java  World!");;   r    }   e }     a 2. Ejecuta   la   consola   de   comandos,   y   posiciona   el   Prompt   sobre   el   directorio   donde   creaste   el   archivo   (Tip:   si   haces   botón   t la   de   comandos   i posicionada  en  dicho  directorio).   v 3. Ejecuta   javac   g  HolaJavaWorld.java   .   En   esta   parte   es   donde   le   pedimos   al   compilador   de   Java   que   genere   el   o Bytecode  de  dicho  archivo  fuente.  Si  llegase  a  existir  algún  error  de  compilación,  es  en  este  punto  que  se  nos  informa  de  tal.   . 4. Ejecuta  java  HolaJavaWorld.  Aqui  creamos  una  instancia  de  la  JVM  sobre  la  cual  correrá  nuestra  aplicación,  en  la  cual     b l Con  estos  conocimientos  básicos  de  la  consola,  y  un  poco   de  conocimiento  del  lenguaje  Java,  ya  te  encuentras  en  condiciones  de   o generar  código  para  probar  tus  conocimientos  sobre  lo  que  vayas  leyendo.   g   s   p o     t . c o m    
  • 6. Java  World    Capítulo  1   6     Identificadores   Los   identificadores   permiten   que   podamos   identificar   una   variable   por   un   nombre   y/o   conjunto   de   caracteres   alfanuméricos   h (generalmente,  describen  el  contenido).   t Para  los  identificadores,  existen  una  serie  de  convenciones.   t p Identificadores  legales   : Los  identificadores  legales  se  refieren  a  aquellos  que  cumplen  con  las  normas  mínimas  de  manera  que  el  compilador  no  genere  un   / error  en  tiempo  de  compilación.   / Las  características  que  deben  de  cumplir  los  identificadores  son:   g u Debe  estar  compuesto  de  caracteres  Unicode,  números,  $  o  _   s Debe  comenzar  con  un  carácter  Unicode,  $  o  _   t Luego  del  primer  carácter,  puede  contener  cualquier  conjunto  de  los  nombrados  en  el  primer  punto   No  tienen  un  límite  de  largo   a No  es  posible  utilizar  palabras  reservadas  de  Java   v Son  case-­‐sensitive  (distingue  mayúsculas  de  minúsculas)   o a Expresión  regular  de  la  composición  de  un  identificador  legal:  [w$_]([wd$_]*)   l Convenciones  de  código  de  Java  Sun   b e Sun   r   o Las  características  que  debe  de  cumplir  los  identificadores  son:   l Clases  e  interfaces   a o La  primer  letra  debe  ser  mayúscula   . o Utiliza  nomenclatura  camelCase   b o Para  las  clases,  los  nombres  deben  de  ser  sustantivos   l o Para  las  interfaces,  los  nombres  deben  de  ser  adjetivos   o Métodos   o La  primer  letra  debe  ser  minúscula   g o Utiliza  nomenclatura  camelCase   s o Los  nombres  deben  conformarse  por  el  par  verbo  +  sustantivo   p Variables   o o La  primer  letra  debe  ser  minúscula   t o Utiliza  nomenclatura  camelCase   . o Es  recomendable  utilizar  nombres  con  un  significado  explícito,  y  en  lo  posible,  cortos   c Constantes   o Todas  las  letras  de  cada  palabra  deben  estar  en  mayúsculas   o o Se  separa  cada  palabra  con  un  _   m          
  • 7. 7   Java  World    Capítulo  1     Estándares  para  nombres  de  JavaBeans     h h t t Al  utilizar  estándares  para  nombres,  se  garantiza  que  las  herramientas  puedan  reconocer  los  componentes  realizados  por  cualquier   t desarrollador.   t Las  características  que  debe  de  cumplir  los  identificadores  son:   p p : : Atributos   / / o Ambos   (getters   y   setters)   se   conforman   del   prefijo   especificado   +   el   nombre   del   atributo   con   su   primer   letra   en   / / mayúscula   v o Getters   v Si  la  propiedad  no  es  de  tipo  boolean  el  prefijo  debe  ser  get   a a Si  la  propiedad  es  de  tipo  boolean  el  prefijo  debe  ser  is     l l Deben  de  ser  public,  no  recibir  ningún  argumento,  y  devolver  un  valor  del  mismo  tipo  que  el  setter  para  la   o o propiedad.   r r o Setters   c c El  prefijo  debe  ser  set   r Deben  de  ser  public,  recibir  un  parámetro  del  mismo  tipo  que  la  propiedad,  y  devolver  void   r e Listeners   e o Los  métodos  que  agreguen  un  listener  deben  de  comenzar  con  el  prefijo  add   a a o Los  métodos  que  quiten  un  listener  deben  de  comenzar  con  el  prefijo  remove   t t o El  tipo  del  listener  a  agregar/quitar  debe  de  ser  pasado  como  argumento   i i o Deben  de  terminar  con  el  sufijo  Listener   v v Archivos  de  código  fuente   o o o Solo  puede  haber  una  clase  public  por  cada  archivo   . . o Los  comentarios  pueden  aparecer  en  cualquier  línea   b o Si  existe  una  clase  public,  el  nombre  de  la  misma  debe  corresponderse  con  el  nombre  del  archivo   b o Si  la  clase  pertenece  a  un  package,  esta  sentencia  debe  ser  incluida  como  primera  línea   l l o Si  hay  import,  estos  deben  de  ser  incluidos  entre  la  declaración  del  package  y  de  la  clase  (class)   o o o Los  import  y  package  aplican  a  todas  las  clases  dentro  del  archivo   g g o Un  archivo  puede  tener  más  de  una  clase,  siempre  que  esta  no  sea  public   s s o Los  archivos  que  no  tengan  una  clase  public  pueden  contener  cualquier  nombre   p p o o     t t . . c c o o m   m    
  • 8. Java  World    Capítulo  1   8     Declaraciones  de  clases  y  modificadores  de  acceso   h El  acceso  significa  visibilidad.  Dependiendo  de  los  modificadores  aplicados  a  la  clase,  atributos,  o  propiedades,  será  que  estos  podrán   h t ser  accedidos  o  no  por  otros.   t t t p Modificadores  de  acceso   p o public   : : / o prívate   o protected   / / o Default  (package).  Si  no  se  especifica  un  modificador,  este  es  el  que  toma  por  defecto   / g Modificadores  de  no  acceso   g u o strictpf   u o final   s s t o abstract   t a Modificadores  de  acceso  a  clases   a v v o package  (default)   o a a l Nivel  de  visibilidad:  clase  visible  para  todas  las  clases  que  se  encuentren  dentro  del  mismo  package.   Este  no  debe  especificarse  (modificador  por  defecto).     l b b e En   algunas   preguntas   con   lógica   compleja,   primero   es   recomendable   verificar   los   modificadores   de   acceso.   Si   e r r o     o l   l a public   a . Nivel  de  visibilidad:  clase  visible  para  todas  las  clases  de  todos  los  package.   . b Para  especificar  este  modificador  se  antepone  a  la  palabra  clave  class,  la  palabra  public.  De  todas  maneras,  si  la  clase  es  utilizada   b l por  otra  clase  que  no  se  encuentra  en  el  mismo  package,  es  necesario  realizar  el  import  de  la  misma.   l o o g Modificadores  de  no  acceso   g s Estos  modificadores  pueden  combinarse  con  aquellos  que  si  modifican  el  acceso.   s p p o strictpf   o t t . No  es  necesario  saber  para  la  certificación  como  es  que  funciona  strictpf.  Lo  único  que  es  necesario,  es  saber  que:   . c Es  una  palabra  reservada   c o Puede  modificar  solo  clases  y  métodos   o m   Hacer   una   clase   strictpf   significa   que   todos   los   métodos   que   la   conforman   cumplen   con   la   norma   IEEE   754   para   punto   m   flotante        
  • 9. 9   Java  World    Capítulo  1     final   h h t t El  modificador  final  indica  que  una  clase  no  puede  ser  heredada  o  redefinida  por  una  subclase.   t t abstract   p p : : Características  de  una  clase  abstract:   / / / No  puede  ser  instanciada  (new),  solo  puede  ser  heredada.   / Si  un  método  de  la  clase  es  abstract,  esto  fuerza  a  que  la  clase  completa  sea  abstract.   v v No  todos  los  métodos  de  una  clase  abstract  tienen  que  ser  abstractos.   a a Los  métodos  abstract  no  llevan  cuerpo  (no  llevan  los  caracteres  {}).   l l La  primer  subclase  concreta  que  herede  de  una  clase  abstract  debe  implementar  todos  los  métodos  de  la  superclase.   o o r r abstract  y  final   c c  nos  dicen  que:   r r e e abstract:  obliga  a  que  la  subclase  defina  el  cuerpo  de  los  métodos.   a a final:  previene  que  la  clase  sea  heredada  o  redefinida.   t t Un  modificador  se  opone  al  otro,  de  manera  que,  aunque  no  recibamos  un  error  de  compilación,  la  clase  declarada  de  esta  manera   i i es  inutilizable.   v v     o o . . b b l l o o g g s s p p o o t t . . c c o o m   m    
  • 10. Java  World    Capítulo  1   10     Declaración  de  interfaces   h Cuando  creamos  una  interfaz,  lo  que  estamos  diciendo  es  lo  que  la  clase  deberá  de  poder  hacer,  pero  no  como  lo  hará.  Una  interfaz   h t también  es  conocida  como  contrato.   t t Características  de  una  interfaz:   t p p : Todos  los  métodos  de  una  interfaz  son  implícitamente  public  abstract,  no  es  necesario  especificarlo  en  la  declaración  del   : / mismo.   / / Todos  los  atributos  de  una  interfaz  son  implícitamente  constantes  (public  static  final),  no  es  necesario  especificarlo  en   la  declaración  del  mismo.   / g Todas  las  variables  de  una  interfaz  deben  de  ser  constantes  (public  static  final).   g u Los  métodos  de  una  interfaz  no  pueden  ser:  static,  final,  strictfp  ni  native.   u s Una  interfaz  puede  heredar  (extends)  de  una  o  más  interfaces.   s t Una  interfaz  no  puede  heredar  de  otro  elemento  que  no  sea  una  interfaz.   t a Una  interfaz  no  puede  implementar  (implements)  otra  interfaz.   a Una  interfaz  debe  ser  declarada  con  la  palabra  clave  interface.   v v o Los  tipos  de  las  interfaces  pueden  ser  utilizados  polimórficamente.   o a Una  interfaz  puede  ser  public  o  package  (valor  por  defecto).   Los  métodos  toman  como  ámbito  el  que  contiene  la  interfaz.   a l l b IMPORTANTE:  cuando  se  menciona  el  implícitamente,  se  refiere  a  que  si  no  se  especifican  estos  son  los  modificadores  que  toma,   b e pero  se  pueden  especificar  todos,  ninguno,  o  algunos,  siendo  declaraciones  semejantes,  por  ejemplo:     e r public  interface  Dibujable  {          int  CONST  =  1;   r o        public  int  CONST  =  1;   o l        public  static  int  CONST  =  1;          public  final  int  CONST  =  1;   l a        static  int  CONST  =  1;          final  int  CONST  =  1;   a .        static  final  int  CONST  =  1;   .        public  static  final  int  CONST  =  1;   b   b l        void  doCalculo  ();          public  void  doCalculo  ();   l o        abstract  void  doCalculo  ();          public  abstract  void  doCalculo  ();   o g }   g s     s p     p o o t t . . c c o o m   m    
  • 11. 11   Java  World    Capítulo  1     Declaración  de  métodos  y  atributos   h h t t Un  método  puede  contener  modificadores  de  acceso  y  de  no  acceso.  Además,  posee  más  combinaciones  que  la  definición  de  clases.   t Dado  que  ambos,  métodos  y  atributos  se  declaran  de  manera  semejante,  se  especifican  en  un  mismo  apartado.   t p p Modificadores  de  acceso   : : / / Los  modificadores  disponibles  son:   / / public   v v protected   a a package   l l prívate   o o r Con  estos  modificadores  tenemos  dos  conceptos  que  entender:   r c c Cuando  un  método  de  una  clase  puede  acceder  a  un  miembro  de  otra  clase.   r r Cuando  una  subclase  puede  heredar  un  miembro  de  su  superclase.   e e El  primer  caso  se  da  cuando  un  método  de  una  clase  intenta  acceder  a  un  método  o  atributo  de  otra  clase,  valiéndose  del  operador   a a .  para  invocar  un  método,  u  obtener  una  variable.   t t El   segundo   caso   se   da   cuando   una   clase   hereda   de   otro,   permitiendo   que   la   subclase   acceda   a   los   métodos   y   atributos   de   la   i i superclase,  a  través  de  la  herencia  (extends).   v v o o public   . . Cuando   un   atributo   o   método   es   declarado   como   public,   significa   que   cualquier   clase   en   cualquier   package   puede   acceder   a   b b dicho  miembro.   l l o o private   g g Cuando   un   atributo   o   método   es   declarado   como   private,   solo   puede   ser   referenciado   por   la   misma   clase   (ni   siquiera   por   una   s s subclase).  Incluso  si  una  subclase  declarara  un  atributo  o  método  con  el  mismo  nombre,  solo  estaría  generando  un  nuevo  miembro,   p p no  sobrescribiéndolo,  como  puede  llegar  a  ser  malinterpretado.   o o t t package  (default)   . . Cuando   un   atributo   o   método   es   declarado   como   package,   solo   puede   ser   referenciado   por   cualquier   clase   que   se   encuentre   c c dentro  del  mismo  package,  por  medio  de  herencia  y  referencia.   o o m   m   protected   Cuando  un  atributo  o  método  es  declarado  como  protected,  este  se  comporta  de  la  siguiente  manera:   Una   variable   declarada   como   protected,   se   comporta   como   un   modificador   de   tipo   package   en   el   paquete   donde   se   encuentra  la  clase  que  declaró  el  miembro.   Una  variable  declarada  como  protected,  solo  puede  ser  accedida  a  través  de  la  herencia  (no  referencia),  cuando  se  encuentra   fuera  del  package.   Esto   quiere   decir   que,   un   miembro   declarado   como   protected   es   visible   para   todas   las   clases   dentro   del   package   donde   fue   declarado  (ya  sean  subclases  de  la  misma  o  no)  a  través  de  referencia  y  herencia,  y  solo  disponible  a  través  de  la  herencia  para  las   subclases  que  se  encuentran  fuera  del  package.  Para  el  resto  de  las  clases,  se  comporta  como  un  modificador  prívate  (no  subclases    
  • 12. Java  World    Capítulo  1   12     fuera  del  package  de  declaración).   h Modificadores  de  acceso  en  variables  locales   h t t t No  es  posible  aplicar  ningún  modificador  de  acceso  a  una  variable  local.  Solo  es  posible  aplicar  un  modificador  de  no  acceso:  final.   t p p : Modificadores  de  no  acceso   : / Dentro  de  los  modificadores  de  no  acceso,  se  agregan  varios  de  los  2  ya  conocidos  a  la  lista  para  modificadores  de  miembros.   / / / g Modificador  de  no  acceso  en  métodos    final   g u El  modificador  final  fuerza  a  que  un  método  no  pueda  ser  redefinido  por  una  subclase.   u s s t Modificador  de  no  acceso  en  atributos    final   t a a v En  el  caso  de  un  modificador  final  para  un  atributo,  pueden  darse  2  casos:   v o Si  el  atributo  es  un  valor  primitivo,  impide  de  que  modifique  su  valor  (un  valor  primitivo  es  por  ejemplo  un  int).   o a Si  el  atributo  es  una  referencia,  impide  que  se  modifique  la  referencia,  pero  no  el  estado  de  la  misma.   a l l b Modificador  de  no  acceso  en  métodos    abstract   b e El   modificador   abstract   en   un   método   indica   que   el   mismo   se   ha   declarado   en   el   contrato,   pero   no   se   ha   especificado   su   e r comportamiento  (cuerpo  del  método).   r o   o l l a Al  especificar  al  menos  1  método  como  abstract,  se  fuerza  a  que  la  clase  se  declare  como  tal,  por  el  contrario,   a . una  clase  declarada  como  abstract  puede  no  contener  ningún  método  de  este  tipo.     . b   b l Modificador  de  no  acceso  en  métodos    synchronized   l o o g   El  modificador  sinchronized  indica  que  el  método  solo  puede  ser  accedido  por  un  Thread  a  la  vez.   g s Este  modificador  puede  utilizarse  en  conjunto  con  cualquiera  de  los  4  modificadores  de  acceso.   s p p o Modificador  de  no  acceso  en  métodos    Native   o t t . El  modificador   native  indica   que  el  código  es  dependiente  de  la   plataforma,  generalmente  en  código   C.  Solo  es  necesario  saber   para  la  certificación  que  un  modificador  de  no  acceso  native  solo  puede  ser  aplicado  a  un  método.   . c El  método  debe  especificarse  como  si  fuera  abstracto  (sin  los  caracteres  {},  y  directamente  con  ;)   c o o m   Modificador  de  no  acceso  en  métodos    strictfp   m   Al  igual  que  para  una  clase,  el  modificador  de  no  acceso  strictfp  indica  que  los  caracteres  de  punto  flotante  utilizan  la  norma  IEEE   754.   Métodos  con  listas  de  argumentos  variables   A  partir  de  Java  5.0,  es  posible  crear  métodos  que  reciban  una  cantidad  de  argumentos  variables.   Pueden  ser  de  tipo  primitivo  o  un  objeto.    
  • 13. 13   Java  World    Capítulo  1     La  definición  de  var-­‐args  se  hace:  tipoDato nombreVariable.   h Solo  se  puede  especificar  un  solo  parámetro  de  tipo  var-­‐args  en  la  firma  del  método.   t El  parámetro  var-­‐args  debe  de  ser  el  último  especificado  en  la  firma  del  método.   t t   p Al  llamar  a  un  método  sobrecargado  o  sobre  escrito,  primero  se   verifica  si  la   llamada   concuerda   con  algún  método  que  no  tenga   : argumentos  variables,  si  no  se  encuentra  ninguno  de  estos,  se  verifica  con  los  métodos  de  argumentos  variables.   / /   /   v public  class  PruebaParametrosVariables  {   a    static  public  void  haceAlgo(int  val)  {   l        System.out.println("Soy  haceAlgo  con  un  parámetro  int");      }   o      static  public  void  haceAlgo(int  val1,  int  val2)  {   r        System.out.println("Soy  haceAlgo  con  dos  parámetros  int");      }   c      static  public  void  haceAlgo(int...  val)  {   r        System.out.println("Soy  haceAlgo  con  parámetros  variables");   e    }     a    static  public  void  main(String[]  args)  {          PruebaParametrosVariables.haceAlgo(1);   t        PruebaParametrosVariables.haceAlgo(2,  3);   i        PruebaParametrosVariables.haceAlgo(4,  5,  6);          PruebaParametrosVariables.haceAlgo(4,  5,  6,  7);           v    }       o   . b Soy  haceAlgo  con  un  parámetro  int     Soy  haceAlgo  con  dos  parámetros  int   l   Soy  haceAlgo  con  parámetros  variables   o   Soy  haceAlgo  con  parámetros  variables   g         s p     o t . c o m