<ul>TEMA 8. Clases internas RuGI Isaac Ruiz Guerra @rugi </ul><ul>Clases Internas </ul>
<ul><li>Inner Classes
Method-local inner classes
Anonymous inner clases
Static nested classes </li></ul><ul>Clases Internas </ul>
<ul><li>Inner Classes
Method-local inner classes
Anonymous inner clases
Static nested classes </li></ul><ul>Clases Internas </ul>
<ul><li>¿Por qué? ¿Para qué?
Creamos una clase interna cuando queremos mantener una relación estrecha entre 2 clases que, aunque contiene cada una méto...
Principal clasificación. <ul><li>Regulares </li><ul><li>“ Normales” </li></ul><li>No regulares </li><ul><li>Static
Method Local
Anonymous </li></ul></ul><ul>Clases Internas </ul>
Regulares. class MyOuter{ Class MyInner{ } } <ul>Clases Internas </ul>
Tip %javac MyOuter.java MyOuter.class MyOuter$MyInner.class <ul>Clases Internas </ul>
class MyOuter { private int x = 7; class MyInner{ public void seeOuter(){ System.out.println(“Outer x is ”+ x) } } } <ul>C...
“La única manera de acceder a la clase interna(regular) es a través de una instancia de la clase externa” Instancia extern...
Instanciando una clase interna desde la clase externa. class MyOuter{ private int x = 7; public void makeInner(){   MyInne...
Instanciando una clase interna desde afuera de la clase externa. public static void main (String[] args){ MyOuter.MyInner ...
Upcoming SlideShare
Loading in...5
×

Proyecto PCJ. Tema.8. Clases Internas.

1,185
-1

Published on

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,185
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
19
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Proyecto PCJ. Tema.8. Clases Internas.

  1. 1. <ul>TEMA 8. Clases internas RuGI Isaac Ruiz Guerra @rugi </ul><ul>Clases Internas </ul>
  2. 2. <ul><li>Inner Classes
  3. 3. Method-local inner classes
  4. 4. Anonymous inner clases
  5. 5. Static nested classes </li></ul><ul>Clases Internas </ul>
  6. 6. <ul><li>Inner Classes
  7. 7. Method-local inner classes
  8. 8. Anonymous inner clases
  9. 9. Static nested classes </li></ul><ul>Clases Internas </ul>
  10. 10. <ul><li>¿Por qué? ¿Para qué?
  11. 11. Creamos una clase interna cuando queremos mantener una relación estrecha entre 2 clases que, aunque contiene cada una métodos específicos, están sumamente relacionados unos con otros. </li></ul><ul>Clases Internas </ul>
  12. 12. Principal clasificación. <ul><li>Regulares </li><ul><li>“ Normales” </li></ul><li>No regulares </li><ul><li>Static
  13. 13. Method Local
  14. 14. Anonymous </li></ul></ul><ul>Clases Internas </ul>
  15. 15. Regulares. class MyOuter{ Class MyInner{ } } <ul>Clases Internas </ul>
  16. 16. Tip %javac MyOuter.java MyOuter.class MyOuter$MyInner.class <ul>Clases Internas </ul>
  17. 17. class MyOuter { private int x = 7; class MyInner{ public void seeOuter(){ System.out.println(“Outer x is ”+ x) } } } <ul>Clases Internas </ul>
  18. 18. “La única manera de acceder a la clase interna(regular) es a través de una instancia de la clase externa” Instancia externa Instancia interna http://java.sun.com/docs/books/tutorial/java/javaOO/nested.html <ul>Clases Internas </ul>
  19. 19. Instanciando una clase interna desde la clase externa. class MyOuter{ private int x = 7; public void makeInner(){ MyInner in = new MyInner(); in.seeOuter(); } class MyInner{ public void seeOuter(){ System.out.println(“Outer x is ”+x); } } } <ul>Clases Internas </ul>
  20. 20. Instanciando una clase interna desde afuera de la clase externa. public static void main (String[] args){ MyOuter.MyInner inner = new MyOuter().new MyInner(); inner.seeOuter(); } <ul>Clases Internas </ul>
  21. 21. RECESO. <ul>Clases Internas </ul>
  22. 22. Method-Local Inner Classes. - A diferencia de una clase regular, este tipo de clases van dentro de un método. - Únicamente se puede instanciar dentro de un método. - No puede utilizar variables locales(las declaradas dentro del método), a menos que sean finales. <ul>Clases Internas-No regulares </ul>
  23. 23. EJEMPLO. <ul>Clases Internas-No regulares </ul>
  24. 24. Anonymous Inner Class. <ul><li>Son algo inusuales (¡no en swing!)
  25. 25. Se declaran sin utilizar un nombre
  26. 26. Lo que debes hacer es: “aprender a no caerte al ver la sintaxis” </li></ul><ul>Clases Internas-No regulares </ul>
  27. 27. EJEMPLO 1. Tipo 1. Rarísimo. Aún así, se ocupan :P <ul>Clases Internas-No regulares </ul>
  28. 28. EJEMPLO 2. Tipo 2. El más común. Eventos <ul>Clases Internas-No regulares </ul>
  29. 29. <ul><li>Static nested classes </li></ul>class BigOuter{ static class Nested{ } } El static , en pocas palabras indica que la clase interna se trata como un dato miembro más de la clase; es decir: se puede acceder sin tener una instancia de la clase externa. <ul>Clases Internas-No regulares </ul>
  30. 30. <ul><li>Static nested classes </li></ul>class BigOuter{ static class Nest{ void go(){System.out.println(&quot;hi&quot;);}} } public class Broom { static class B2 {void goB2(){System.out.println(&quot;hi 2&quot;);}} public static void main(String[] args) { BigOuter.Nest n = new BigOuter.Nest(); n.go(); B2 b2 = new B2(); b2.goB2(); } } <ul>Clases Internas-No regulares </ul>
  31. 31. Eso es todo. Gracias por su atención ;) <ul>Clases Internas </ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×