您的位置:首页 > 编程语言 > Java开发

java--内部类的总结

2015-07-09 14:10 567 查看
 定义一个包含私有成员变量和函数的类,再定义一个内部类,在内部类函数中访问外部成员变量,并调用外部函数。在外部类函数中创建内部类对象,调用内部类函数。
 
 
 思路:看到内部类首先想到了内部类的访问规则:1.内部类可以直接访问外部类中的成员包括私有。2.外部类要访问内部类必须建立内部类的对象3.内部类有其他修饰符修饰时,可以看做成带修饰符的函数,其处理方式一样。
 分析:内部类分为:普通内部类、静态内部类、私有内部类、匿名内部类。以下对这四中方法都分别做了示例。
    
 * */
interface fu
{
 
 void shownm();
   
}
class Outer//外部类
{

 private int x = 3;

 static int y =6;

 

 class Inter1//内部类

 {

  int x = 4;

  public void showpublic()//普通内部类函数

  {

   int x =5;

   System.out.println("显示局部变量中x值:");

   System.out.println(x);

   System.out.println("显示内部类中x值:");

   System.out.println(this.x);

   System.out.println("显示外部类中x值:");

   System.out.println(Outer.this.x);

  }

 }

 

 static class Inter2//静态内部类

 {

  public void showstatic()//静态内部类公有函数

  {

     SOP(y);

  }

  public static void showstatic2()//静态内部类的静态函数

  {

   SOP(y);

  }

  

 }

 

 private class Inter3//私有内部类

 {

  public void showprivate()

  {

   showgy();//内部类访问外部类函数

  }

 } 

 static fu shownm1()

 {

  return new fu()

  {

   public void shownm()

   {

    System.out.println("匿名内部类调用的方法:");

    showjt();

   }

  };

 }

 

 public void showsy()//外部类调用私有内部类

 {

  System.out.println("外部类访问私有内部类的方法获取到的x值:");

  Inter3 i = new Inter3();

  i.showprivate();

 }

 

 public void showgy()//外部类调用公有内部类

 {

  Inter1 i = new Inter1();

  i.showpublic();

  

 }

 

 public static void showjt()//外部类调用内部类的非静态方法

 {

  SOP("外部类访问静态内部类的非静态方法获取到的y值:");

   new Outer.Inter2().showstatic();

 }

 

 public static void showjt2()//外部类调用内部类的静态方法

 {

  SOP("外部类访问静态内部类的静态方法获取到的y值:");

  Outer.Inter2.showstatic2();

 }

 

 private static void SOP(Object obj)//偷懒用的--打印函数

 {

  System.out.println(obj);

 }

}

public class Test8 {

 public static void main(String[] args)

 {

  Outer o = new Outer();

  o.showgy();

  Outer.Inter1 i = new Outer().new Inter1();

  i.showpublic();

     Outer.showjt();

  Outer.showjt2();

  o.showsy();

  Outer.shownm1().shownm();

 }

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: