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

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

on

  • 2,131 views

Material de la espol, clases de java

Material de la espol, clases de java

Statistics

Views

Total Views
2,131
Slideshare-icon Views on SlideShare
2,122
Embed Views
9

Actions

Likes
0
Downloads
27
Comments
0

1 Embed 9

http://www.slideshare.net 9

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

    • Anidamiento y Clases Internas Visita FIEC Novedades y aplicaciones FIEC
    • 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.
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
        • }
    • 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
    • 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.