final 修饰符 如何使用?

Final :

     1: 修饰整个类:

           表示该类不能被继承

             (如果认为一个类已经很完美不需要定义子类来继承它)

        格式: public final class A(**********)

        格式: public 和final 可以互换

     2:修饰类中的若干个属性

            @final修饰类中的属性必须被赋值,而且只能赋值一次(默认值不算)

            @final属性赋值有2种方式(2种不能同时使用)

                     在定义成员变量同时初始化

                     在类中所有的构造函数中初始化

 

  注意: 一个类的所有普通方法内部都不可以修改final修饰过的成员变量的值

     3:修饰类中的若干个方法

                表示该方法可以被子类继承,但是不能被子类重写

 

/*
	final类型修饰的属性必须在定义的同时初始化
	如果final类型修饰的属性没有在定义的同时初始化,则必须在该类中的所有构造函数中完成初始化
	
	不过这两种初始化只能存在一种,否则编译时会报错!因为final表示常量的意思,常变量当然不能被初始化两次了
*/
class Point
{
	int x;
	final double PI = 1.9; //10   final定义的变量必须在定义的同时初始化  如果这里只定义不初始化则我们就必须在所有的构造函数中完成对final变量的初始化  不过这两种方式只能选择其中的一种

	Point()
	{
		//PI = 1.234;  //只要10行对PI进行了初始化,本语句就必须的被注释掉,否则编译时会报错!
	}

	Point(int m, int n)
	{
		//PI = 2.33;  //只要10行对PI进行了初始化,本语句就必须的被注释掉,否则编译时会报错!
	}

	void output()
	{
		//PI = 2;  //error   因为“一个类的所有方法内部都不可以修改final修饰过的成员变量的”
		System.out.printf("%d %f\n", x, PI);
	}

	
	public static void main(String[] args)
	{
		Point pt = new Point();
		pt.output();
	}
}
/*
	在JDK 1.6中的运行结果是:
-----------------
0 1.900000
-----------------
*/


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值