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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 赵亚威 于 2013-3-18 19:59 编辑

class Outer{
         int x=8;
        public void show(){
                  int z=5;
                class Inner {

                        
                        void function() {
                                // TODO Auto-generated method stub
                                System.out.println("z="+z);
                        }
                        
                }
                new Inner().function();
         }
}
为什么使用final 原理是?

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

2 个回复

倒序浏览
final修饰符
  在Java声明类、属性和方法时,可以使用关键字final来修饰,final所标记的成分具有终态的特征,表示最终的意思。
  final的具体规则
    ·final标记的类不能被继承
    ·final标记的方法不能被子类重写
    ·final标记的变量(成员变量或局部变量)即成为常量,只能赋值一次
    ·final标记的成员变量必须在声明的同时赋值,如果在声明的时候没有赋值,那么只有一次赋值的机会,而且只能在构造方法中显式赋值,然后才能使用
    ·final标记的局部变量可以只声明不赋值,然后再进行一次性的赋值
    ·final一般用于标记那些通用性的功能、实现方式或取值不能随意被改变的成分,以避免被误用
  如果将引用类型(即,任何类的类型)的变量标记为final,那么,该变量不能指向任何其它对象,但可以改变对象的内容,因为只有引用本身是final的。
内部类
  在一个类(或方法、语句块)的内部定义另一个类,后者称为内部类,有时也称为嵌套类。
  内部类的特点
    ·内部类可以体现逻辑上的从属关系,同时对于其它类可以控制内部类对外不可见等
    ·外部类的成员变量作用域是整个外部类,包括内部类,但外部类不能访问内部类的private成员
    ·逻辑上相关的类可以在一起,可以有效地实现信息隐藏
    ·内部类可以直接访问外部类的成员,可以用此实现多继承
    ·编译后,内部类也被编译为单独的类,名称为outclass$inclass的形式
例:
public class Outer{
private int size;
public class Inner{
  private int counter = 10;
  public void doStuff(){
   size++;
  }
}
public static void main(String [] args){
  Outer outer = new Outer();
  Inner inner = outer.new Inner();
  inner.doStuff();
  System.out.println(outer.size);
  System.out.println(inner.counter);
}
}

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
若还有问题,请继续追问,没有的话,请将帖子分类改成【已解决】~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马