A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

局部内部类为什么只能访问final局部变量,对于成员变量却可以随便访问?

3 个回复

正序浏览
张振宁 发表于 2011-10-21 15:38
我在网上搜索关于内部类的解释。
内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员 ...

楼主所说的是这样:
classA{
String var1 = "A";
void methodA(){
   String var2  = "B";
   final String var 3 = "C";
     class B{
        String b1 = var1;
        String b2 = var2; //这样为什么不行
        String b3 = var3;
     }
   }
}
回复 使用道具 举报
我在网上搜索关于内部类的解释。
内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员,并且依附于外部类而存在的。内部类可为静态,可用protected和private修饰(而外部类只能使用public和缺省的包访问权限)。内部类主要有以下几类:成员内部类、局部内部类、静态内部类、匿名内部类

你所说的大概意思我没搞懂。
给你写个例子,这些变量都可以访问。

public class Test {

        int a=0;                       
        final int B=0;                        //final 是不可改变的意思,也就是说定义后不能对值进行修改。      通常用来定义常量
        public int c=0;                        //public 公共的意思,也就是说,创建个Test类对象就可以访问该变量
        private int d=0;                //private 私有的意思,也就是说该成员变量只能在该类中访问。
        public static int f=0;        //static 静态的意思,也就是说该成员变量可以以通过类直接访问。   Test.f=7;
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马