黑马程序员_内部类的总结

——- android培训java培训、期待与您交流! ———-



定义一个包含私有成员变量和函数的类,再定义一个内部类,在内部类函数中访问外部成员变量,并调用外部函数。在外部类函数中创建内部类对象,调用内部类函数。

思路:看到内部类首先想到了内部类的访问规则: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();
  }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值