Your SlideShare is downloading. ×
Clases anidadas  en www.fiec.espol.edu.ec
Clases anidadas  en www.fiec.espol.edu.ec
Clases anidadas  en www.fiec.espol.edu.ec
Clases anidadas  en www.fiec.espol.edu.ec
Clases anidadas  en www.fiec.espol.edu.ec
Clases anidadas  en www.fiec.espol.edu.ec
Clases anidadas  en www.fiec.espol.edu.ec
Clases anidadas  en www.fiec.espol.edu.ec
Clases anidadas  en www.fiec.espol.edu.ec
Clases anidadas  en www.fiec.espol.edu.ec
Clases anidadas  en www.fiec.espol.edu.ec
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Clases anidadas en www.fiec.espol.edu.ec

1,060

Published on

Material de la espol, clases de java

Material de la espol, clases de java

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Anidamiento y Clases Internas Visita FIEC Novedades y aplicaciones FIEC
  • 2. Anidamiento de clases
    • Es posible definir clases dentro de otras clases, las mismas que son conocidas como clases anidadas ( nested classes ) o clases internas (inner classes).
    • La clase que contiene a la inner class se la conoce como clase externa (outer class).
    • Fueron introducidas en el JDK 1.1.
    • Se puede declarar una clase dentro de otra clase o dentro de una interfase.
    • Se puede declarar una interfase dentro de otra interfase o dentro de una clase.
    • Se puede declarar una clase dentro de un método.
    • Se pueden tener varios niveles de anidamiento.
  • 3. Anidamiento de clases
    • Una clase anidada puede acceder a todos los miembros (hasta los privados) de la clase que la contiene, pero la clase que la contiene no tiene los mismos permisos.
    • Los tipos de clases anidadas son:
        • static nested (inner) class
        • non static nested (inner) class
        • Anonymous inner class (clases anónimas)
    Visita FIEC Novedades y aplicaciones FIEC
  • 4. Static Nested Class
    • No puede acceder a los miembros no estáticos de la clase que la contiene directamente, sino a través de un objeto. Estas clases son raramente usadas.
    Visita FIEC Novedades y aplicaciones FIEC
  • 5. Ejemplo de static nested class
    • class OuterStatic {
    • private int x = 100;
    • void test() {
    • StaticNested obSta = new StaticNested();
    • obSta.display();
    • }
    • static class StaticNested {
    • int y = 30;
    • int z = 20;
    • void display() {
    • System.out.println("display: z = " + z);
    • System.out.println("display: y = " + y);
    • OuterStatic obO = new OuterStatic();
    • System.out.println("display: x = " + obO.x);
    • }
    • }
    • }
    • class StaticNestedClassDemo {
    • public static void main(String args[]) {
    • OuterStatic outer = new OuterStatic();
    • outer.test();
    • }
    • }
    • StaticNestedClassDemo.java
  • 6. Non static nested class
    • Conocida también como Inner class .
    • Tiene acceso a todas las variables y métodos de la clase que la contiene ( outer class ).
    Visita FIEC Novedades y aplicaciones FIEC
  • 7. Ejemplo de inner class
    • class Outer {
    • int x = 100;
    • void test() {
    • Inner obIn = new Inner();
    • obIn.display();
    • }
    • class Inner {
    • int y = 10;
    • void display() {
    • System.out.println("display: x = " + x );
    • System.out.println("display: y = " + y );
    • }
    • }
    • }
    • class InnerClassDemo {
    • public static void main(String args[ ]) {
    • Outer outer = new Outer();
    • outer.test();
    • }
    • }
    • InnerClassDemo.java
    • Ver también: InnerClassDemo2.java, Outer3.java
  • 8. Anidamiento de clases
    • Inner class además de ser definida dentro de otra clase, puede también definirse dentro de un método.
    • Una clase definida dentro de un método solamente puede acceder a las variables de este, que tengan el modificador final .
    • No se pueden definir miembros estáticos dentro de las Non static inner classes, exceptuando las constantes.
    • Ver InnerClassDem3.java
  • 9. Anidamiento de clases
    • Existen clases internas que no tienen nombre, y son las conocidas anonymous inner classes .
    • Son útiles para manejar eventos.
    • Las clases anónimas pueden extender de una clase o implementar una interfase.
    • La sintaxis para crear una clase anónima es la siguiente:
      • new <nombre de clase de la que hereda o interfase que implementa> {
      • //cuerpo de la clase
      • }
  • 10. Ejemplo de clase an ó nima
    • interface VideoClip {
    • void play();
    • void stop();
    • }
    • class TestVideoClip {
    • void test(VideoClip v)
    • {
    • v.play();
    • v.stop();
    • }
    • }
    • class AnonInnerClassDemo {
    • public static void main(String args[ ]) {
    • TestVideoClip t = new TestVideoClip();
    • t.test ( new VideoClip() {
    • public void play() { System.out.println(“Reproduciendo el video&quot;); }
    • public void stop() { System.out.println(&quot;Se detiene el video&quot;); }
    • } ) ;
    • }
    • }
    • AnonInnerClassDemo.java
    Visita FIEC Novedades y aplicaciones FIEC
  • 11. Inner Classes
    • Cuando usted compila una inner class, obtiene un archivo .class con el siguiente formato de nombre:
      • OuterClass$InnerClass.class
    • Cuando usted compila una clase anónima, obtiene un archivo .class con el siguiente formato de nombre:
      • OuterClass$n.class, donde n es un entero que comienza con 1.

×