【Java开源代码栏目提醒】:网学会员为广大网友收集整理了,j02080310.java,希望对大家有所帮助!
import java.lang.*;
class j02080310
{
public static void main(String[] para)
{
hasFinal obj = new hasFinal(10000);
hasFinal obj2 = new hasFinal(50000);
obj.finFun("obj==");
obj2.finFun("obj2==");
/*=====以下语句块错误,因为不能重设 final 变量之值======*/
//obj.myValue = 1111;
//obj.myValue2 = 2222;
//obj.finVar = null;
//obj.finVar2 = null;
//obj2.myValue = 3333;
//obj2.myValue2 = 4444;
//obj2.finVar = new myClass();
//obj2.finVar2 = new myClass();
/*====================================================*/
obj.finVar.Var = 33333; //myClass 类之 Var 成员不是 final
obj.finVar2.Var = 70000;
System.out.println("obj.finVar.Var = " + obj.finVar.Var );
System.out.println("obj.finVar2.Var = " + obj.finVar2.Var );
System.out.println("obj2.finVar.Var = " + obj2.finVar.Var );
System.out.println("obj2.finVar2.Var = " + obj2.finVar2.Var );
}
}
class myClass
{
public int Var;
public void showVar()
{
System.out.println("Var = " + Var);
}
}
class hasFinal
{
final int myValue; //定义时未指定初值
final myClass finVar = new myClass();
final static int myValue2 = 999 ;
final static myClass finVar2; //定义时未指定初值
static
{ //可于此设定 static final 成员变量的初始值
finVar2 = new myClass();
}
public hasFinal()
{
myValue = 888; // final 成员变量一定要初始化
}
public hasFinal(int value)
{ // 可于此设定非 static 之 final 成员变量的初始值
myValue = value + 888;
finVar.Var = value;
finVar2.Var = value + 777;
//myValue2 = value + 999; //这个方式不行,因为 static 成员变量早就已经配置好了
//在构造子内只是再次设定 static 成员变量之值,但 final 变量不允许再次设定其值,故 error
}
public final void finFun()
{
System.out.println( "final method 可以 overload " );
}
public final void finFun(String key)
{ // final 方法也可以 overload
System.out.println( key + " myValue = " + myValue );
System.out.println( key + " myValue2 = " + myValue2 );
System.out.println( key + " finVar = " + finVar ); //可了解 finaVar 实例的地址
System.out.println( key + " finVar.Var = " + finVar.Var );
System.out.println( key + " finVar2 = " + finVar2 ); //可了解 finaVar2 实例的地址
System.out.println( key + " finVar2.Var = " + finVar2.Var );
System.out.println("====================================" );
}
}
class childClass extends hasFinal
{
int myValue; //可隐藏(hide)继承自 hasFinal 的 final int myValue
// 引用类的继承
public void finFun(float x)
{ //可 overload
System.out.println("overload final method");
}
/*======不能覆盖(override)继承自 hasFinal 之 final 的 void finFun(String key)*/
/*
public void finFun(String str)
{
System.out.println(str + "override final method");
}*/
}
上一篇:
j02080309.java
下一篇:
建筑劳动毕业论文提纲格式