java之final

来源:互联网 发布:带端口的ping 编辑:程序博客网 时间:2024/06/05 08:30
package com.lzw;
import static java.lang.System.out;
import java.util.Random;
import javax.xml.crypto.Data;


interface OutInterface2
{
}


class OuterClass3
{
private String s2;
public OutInterface2 doit(  final String x )
{
class InnerClass2 implements OutInterface2
{
public InnerClass2( String s ) // 方法中定义的内部类只能访问方法中final类型的局部变量
{
s = x; // x必须为final类型,x为常量,它的生命周期超出方法运行的生命周期
out.println(s);
}
}

//s2 = x;

return new InnerClass2("doit");

}
}


public class FinalData
{
static void main( String[] argStrings )
{
new OuterClass3();

}
}


/* 类用final修饰,则类中所有方法都被隐式设置为final形式,但是final类中的成员变量可以被定义为final或非final形式
 * final class FinalClass
 * {
 * int a = 0;
 *  void doit(){}
 * }
 * 
 * public static void main( String[] args )
 * {
 * FinalClass f = new FinalClass();
 * f.a++;
 * return;
 * }
 * 
 * 
 */


/*
 * class Test
 * {
 * }
 * 
 * private final Test test = new Test();
 * test = new Test(); //出错,不能指向其他引用
 */

0 0