`

java static final

 
阅读更多

// blog: Java关键字final、static使用总结

final :

 

public class TestFinalClass{
	//私有方法不被继承
	private void f1(){
		System.out.println("f1 方法 不被继承");
	}

	public void f2(){
		System.out.println("f2 方法 可被继承");
	}

	public void f3(){
		System.out.println("f3 方法 可被继承");
	}

	public final void f4(){
		System.out.println("f4 方法 不被继承重写");
	}
	
	
}
 

 

 

 

public class TestFinalClassSon extends TestFinalClass{

	public void f2(){
		System.out.println("test Final Class son method: f2");
	}
	public static void main(String args[]){
		TestFinalClass tfc = new TestFinalClassSon();
		//tfc.f1();   //父亲私有方法
		tfc.f2();
	
		tfc.f3();
	
		tfc.f4();
	}

}

 

 

public class TestFinalVarAndParam{
	private final int a =1;
	private final String str;  //必须在初始化对象时赋值,默认null

	public TestFinalVarAndParam(){
		str = " 构造函数中初始化";
	}

	public void updateIntA(){
		//a = 2;   //更新错误】
//		str = "运行时,赋值。";  //不能在方法里面赋值
		System.out.println(str);
	}

	//测试final局部变量
	public void testLocalVar(){
		final String str ;  //用时才初始化
		final int a;
		final int b = 2;
		System.out.println(b);
		str = " final str 局部变量";
		System.out.println(str);
	}

	//测试final 参数变量
	public void testClient(TestFinalVarAndParam tp){
		//测试参数变量
		Person p = new Person();
		p.printName();
		tp.testClassFinalParam(p);
		
	
		p.printName();
		
	}

	public void testClassFinalParam(final Person person){
		//person是final参数,不能被update 。但是 person的属性可以被改变。
		person.updateName();
	}

	public static void main(String args[]){
		TestFinalVarAndParam tp = new TestFinalVarAndParam();
		tp.updateIntA();
	
		//测试局部变量
		tp.testLocalVar();
		
		//调用 测试final参数 方法
		tp.testClient(tp);
	}

	//内部类
	class Person{
		private String name;
		public Person(){
			name = "Mark";
		}
		public void updateName(){
			name = "Marcs";
		}
		public void printName(){
			System.out.println(name);
		}
	}
}
 

 

 

static:

 

public class TestStatic{
	 //全局变量
	private static int i ;  
	
	//全局方法
	public static void println(int i){   
		System.out.println(i);
	}

	//静态的代码块
	static{
		TestStatic.i = 1;
		System.out.println(" static var i = " + i);
	}

	public static void main(String args[]){
//		TestStatic 
	}
	
}
 

 

run.bat

@echo off
setlocal

set JAVA_HOME=D:/install/develop_tool/java/jdk1.6.0_11
set path=%JAVA_HOME%/bin
rem set CLASSPATH=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar 
set CLASSPATH=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar 

rem javac TestStatic.java
java -verbose TestStatic

endlocal
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics