`
JAVA_HOME117
  • 浏览: 20483 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 中final的使用

 
阅读更多
class Test 
{
		final int age;

		{
		// System.out.println(age);
		 age=8;
         System.out.println(age);
		}
	
	public static void main(String[] args) 
	{
		new Test();
	}
}




系统不会对final修饰的类成员变量属性初始化//System.out.println(age);是会出现错误的!

class TestFinalLocalVariable 
{

	public static void main(String[] args) 
	{
		final String default1="statement case";
		//不能再给default1赋值,因为有final的修饰
		//default1 ="ex";
		System.out.println(default1);
	}

	public void test(final int a){
	   //不能对final修饰的行参赋值
	   //a=5;
	}
}



import java.util.*;

public class TestFinalReference 
{
	public static void main(String[] args) 
	{
		final int[] iArr={3,54,5,34,76,45};
		System.out.println(Arrays.toString(iArr));
        Arrays.sort(iArr);
		System.out.println(Arrays.toString(iArr));
		iArr[2]=7777;
		System.out.println(Arrays.toString(iArr));
		//系统会提示你无法为变量指定值,这里是不容许的
        iArr=null;
		System.out.println(Arrays.toString(iArr));

		final Person p=new Person(23);
		System.out.println(p.getAge());
		//系统会提示你无法为变量指定值,这里是不容许的。有了final的修饰
		p=null;
         
	}
}

class Person
{
    int age ;
		public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}
    public Person(int age){
	}

}

//还要大家注意的就是final修饰的方法不能被子类重写,但是可以重载

  public calss FinalOverload{
      public final void Test(){}
  
  }

   class SubFinal extends FinalOverload{
       //这样定义一个方法也是没问题的
	   public void test(){}
       //重载父类的方法也是没问题的,但是就不能重写
	   public final void test(String[] str){}
   }
   

   //还有就是final修饰的类是不能继承的


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics