8.3final关键字

final在程序中描述为终接器的概念,在java里使用final关键字可以实现以下功能:定义不能够被继承的类,定义不能被覆写的方法,定义常量(全局常量)。
范例:使用fianl定义的类不能有子类

final class Channel{}   //这个类不能有子类

Channel类由于使用了final关键字,所以该类不允许有子类,实际上String类上也使用了final定义,所以String类也无法定义子类。

当子类继承了父类之后实际上可以进行父类中的方法覆写,但是不希望你的某一个方法被覆写,就可以使用final来进行定义
范例:使用final定义的方法不能被子类覆写

class  a{
   public  final  void  count() {} //方法不允许被子类覆写
}

class  b extends a{
public void count(){}   //[错误] 该方法无法被覆写
}

a父类中的count()方法使用了final关键字定义 ,这样该方法无法在子类中被覆写。

在有的系统设计中,可能会使用1表示打开的状态,使用0表示关闭的状态。如果直接对0或1进行操作,则有可能造成状态的混乱,在这样的情况下就可以通过一些名称来表示0或者是1.在final 关键字里有一个重要的应用技术;可以利用其定义常量,常量的内容一旦定义则不可修改。

范例:使用final定义常量

public class channel1 {
       private final int ON=1;   //常量ON表示数字1,状态为打开。
       private final int OFF=0;  //常量OFF表示数字0,状态为关闭
}

常量在定义时就需要为其设置对应的内容,并且其内容一旦定义将不可更改,在java程序中为了将常量与普通成员属性进行区分,所以要求常量名称字母全部大写。

大部分的系统设计中,常量往往都会作为一些全局的标记使用,所以在进行常量定义时,往往都会利用public static final 的组合来定义全局常量。
范例:定义全局常量

public class channel1 {
       public static final int ON=1; //全局常量ON表示数字1,状态为打开
       public static final int OFF=1;  //全局常量OFF表示数字0,状态为关闭
}

static的主要功能就是进行公共数据的定义,而同时使用final后就表示定义的常量为公共常量,在实际项目开发中会利用此结构定义相关状态码。

提示:关于常量与字符串连接

范例:全局常量与字符串连接

public class channel1 {
	
	public static final String INFO="mldn";
	public static void main(String[] args) {
		String strA="www.mldn.cn";
		String strB="www."+INFO+".cn";//常量连接
		System.out.println(strA==strB);
	}
}
true

本程序通过INFO常量实现了字符串连接操作,最终的结果就是两个String类都指向同一块堆内存。

发布了162 篇原创文章 · 获赞 9 · 访问量 3116

猜你喜欢

转载自blog.csdn.net/ll_j_21/article/details/104399220