Java的面向对象

18-final关键字

2021-07-06 275 0

简介 了解final关键字的使用

1. final关键字的使用

    final英文翻译为最终的

    final可以用来修饰的结构:类、方法、变量


    final 用来修饰一个类:此类不能被其他类所继承。

    比如:String类、System类、StringBuffer类

    public final class String

        implements java.io.Serializable, Comparable<String>, CharSequence{ ... }


    final 用来修饰方法:表明此方法不可以被重写

    比如:Object类中getClass();

        public final native Class<?> getClass();

    final 用来修饰变量:此时的"变量"就称为是一个常量, 类似C++中的const常量

    final修饰属性:可以考虑赋值的位置有:显式初始化、代码块中初始化、构造器中初始化,不能使用setXxx方法进行赋值。


    final修饰局部变量:

    尤其是使用final修饰形参时,表明此形参是一个常量。当我们调用此方法时,给常量形参赋一个实参。一旦赋值

    以后,就只能在方法体内使用此形参,但不能进行重新赋值。

    static final 用来修饰属性:全局常量, static 和 final 合起来,只能修饰属性和方法。

    static可以修饰, 属性、方法、代码块、内部类

    final可以修饰 类、属性、方法,

    那么合起来 static final 可修饰 属性、方法

    public final native Class<?> getClass();

    native 表示代码是C语言或者C++写的

//FinalKeyword.java
package com.ylaihui.oop10;

public class FinalKeyword {
	
	final int WIDTH = 0;
	final int LEFT;
	final int RIGHT;
//	final int DOWN;
	
	{
		LEFT = 1;
	}
	
	public FinalKeyword(){
		RIGHT = 2;
	}
	
	public FinalKeyword(int n){
		RIGHT = n;
	}
	
//	public void setDown(int down){
//		this.DOWN = down;
//	}
	
	
	public void doWidth(){
//		width = 20;
	}
	
	
	public void show(){
		final int NUM = 10;//常量
//		NUM += 20;
	}
	
	public void show(final int num){
//		num = 20;//编译不通过
		System.out.println(num);
	}
	
	
	public static void main(String[] args) {
		
		int num = 10;
		
		num = num + 5;
		
		FinalKeyword test = new FinalKeyword();
//		test.setDown(3);
		
		test.show(10);
	}
}


final class FinalA{
	
}

//class B extends FinalA{
//	
//}

//class C extends String{
//	
//}

class AA{
	public final void show(){
		
	}
}

class BB extends AA{
	
//	public void show(){
//		
//	}
}


2. final修饰局部变量

    局部变量:

    final int NUM = 10;//常量

    形参:

     public void show(final int num){

    // num = 20;//编译不通过

     System.out.println(num);

     }

    

    

点赞 0

文章评论

欢迎您:

纸上得来终觉浅,绝知此事要躬行!

112 文章 38820 浏览 3 评论

联系我

  •   QQ:    361352119
  •  Email:  lisimmy@sina.com
  • 微信: