java final关键字

 package object;
/*
 * final关键字代表最终、不可改变的。常量继承
 * 
 * 从封装中理解final:封锁变量使为常量
 * 
 * 从继承中理解final:最终的,不再被继承
 * 					方法也不能被重写了,没子类了
 * 
 * 
	常见四种用法:
	1. 可以用来修饰一个类(final修饰类表示该类不能被继承。)
	2. 可以用来修饰一个方法(final修饰方法表示该方法不能被重写)
	3. 还可以用来修饰一个局部变量
	4. 还可以用来修饰一个成员变量(final修饰变量表示该变量的值不能被修改。)
 */
public class Final {

}
					//修饰类(最终的类)
final class TestFinal
{
//		1.该类不能被继承(俗称“断子绝孙类”),但是该类可以有父类。
	public void TestMethod()
	{
		
	}
//   	2.所有的方法都不能被重写(这里需要注意的是不能被重写,但是可以被重载,
}
//class Son extends TestFinal
//{
//	//该类不能被继承(俗称“断子绝孙类”),但是该类可以有父类。
//}
class Test01
{
//	public void TestMethod()
//	{
//		int i=i;
//		2.所有的方法都不能被重写(这里需要注意的是不能被重写,但是可以被重载,
//	}
	public void TestMethod(int i)
	{
		i=0;//可以重载
	}
}



					//修饰方法(最终方法)
//2.所有的方法都不能被重写(这里需要注意的是不能被重写,但是可以被重载)
class Test02
{
	final public void  TestMethod02()
	{
		System.out.println("");
	}
	
}	//可以被继承,但是方法不能重写,但是可以重载
	//最终方法与最终类共同点:创建的类都不能被重写,但是能重载
	//不同点:一个可以继承,一个不可以继承
class Test03 extends Test02
{
	public void  TestMethod02(int i)
	{
		
	}
}


//前言中曾提到过,被final修饰的变量,又被称为自定义常量。
//而在java中,常量的意思是不会被改变的量。
//所以,被final修饰的变量即自定义常量是不能被改变的(只能被赋值一次,后续不能更改!)
/*
 * 在java中,共有两类数据类型:基本数据类型和引用数据类型。

    当final修饰基本数据类型的变量,则意味着这个变量只能被赋值一次;
 */



/*
 * 当final修饰引用数据类型(类、接口、数组)的变量,
 * 则引用变量所指向的对象(即该变量所存放的地址值)不能更改,
 * 但是该对象的内容(即地址值上存储的内容)可以更改!!
 */
class Test09{
	
	public void Arrey( final int Arrey[])
	{
		Arrey[0]=0;
	//	Arrey=null;
	}

}





					//修饰变量(成员与局部)(常量)
//1) final修饰成员变量:该成员变量必须在其所在类对象创建之前被初始化(且只能被初始化一次)。
class Test04
{	//三种初始化方法,但只能初始化一次(没有默认初始化)
	final int number01=111;//1.显式初始化
	final int number02;
	final int number03;
	//final int number04;
	
	public Test04()
	{
		 number02=222;//构造器初始化
	}
	{
		 number03=333;//代码块初始化
	}
	//原因:因为在new一个实例的时候就需要加载
	
	//这时在方法中初始化就报错
	//但是可以放在参数中
	public  void tesst(final int number05)
	{
		//number04=444;
	}
	
	
	
	
	
	
	
2) final修饰局部变量:该变量必须在使用之前赋值,且只能被赋值一次!
	public void Test06()
	{
		final int number09=0;
		System.out.print(number09);
	}
	public void Test07(final int number09)
	{
		System.out.print(number09);
	}
}				//全局变量
class Test00
{
	static final int number09=0;//全局变量
}












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值