在方法中定义内部类

如下所示代码为在方法内部定义一个内部类:

package inner;
public class FunOuter
{
   int out_x = 100;
   public void test(){
     class Inner{
       String inner_x = "x";
       void display(){
         System.out.println(out_x);
       }
     }
     Inner inner = new Inner();
     inner.display();
   }
   public void showStr(String str)  {
     // public String str1 = "test Inner";//
不可定义, 只允许final修饰
     // static String str4 = "static Str";//
不可定义, 只允许final修饰
     String str2 = "test Inner";
     final String str3 = "final Str";
     class InnerTwo{
       public void testPrint(){
         System.out.println(out_x);  //
可直接访问外部类的变量
         // System.out.println(str); // 不可访问本方法内部的非final变量
         // System.out.println(str4); // 不可访问本方法内部的非final变量

System.out.println(str2);
         System.out.println(str3); //
只可访问本方法的final型变量成员
       }
     }
     InnerTwo innerTwo = new InnerTwo();
     innerTwo.testPrint();
   }
   public void use()  {
     // Inner innerObj = new Inner();//
此时Inner己不可见了
     // System.out.println(Inner.x);//此时Inner己不可见了
   }
   public static void main(String[] args){
     FunOuter outer = new FunOuter();
     outer.test();
   }
}

从上面的例程我们可以看出定义在方法内部的内部类的可见性更小, 只在方法内部可见, 在外部类(及外部类的其它方法中)中都不可见了.同时,方法内的内部类只能访问所在方法的final型成员.同时另一个需引起注意的是方法内部定义成员, 只允许final修饰或不加修饰符, 其它像static等均不可用.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值