08. 特性修饰符——final

08. 特性修饰符——final

1、final定义:

·final用于声明属性,方法,形参和类

(1)属性:定义就必须直接赋值或者在构造方法中进行赋值,并且后期都不能修改。

public class Demo {
	
	//final修饰属性必须要赋初值
	public final int a = 1;
	public final int b ;
	public Demo() {
		//如果被final修饰的属性,没有被初始化,那么就必须在构造器中初始化
		b = 0;
		
		//初始化后的final属性不能再被修改
		//a = 100;
		
	}
}

(2)方法:定义必须有实现代码,并且子类里不可被覆盖。

//类:动物
public abstract class Animal {
	
	//抽象方法,不允许final修饰
//	public abstract void eat();
	
	//具体方法,最终方法
	public final void run() {
		
	}
	
	public void fun() {
		
	}
}

public class Dog extends Animal{
	
	//父类中的final方法不能被子类重写
//	public final void run() {
//		
//	}
	
	//父类的非final方法可以被子类重写

	public void fun() {
		
		super.fun();
	}
}

(3)类:不能定义为抽象类或者是接口,不可被继承。

//抽象类上不允许使用final修饰
public abstract class Demo {
 
}

//接口不允许final修饰
public interface FlyAble {

}

//类:树叶,叶类,不能再被继承
public final class Leaf {

}

//class A extends Leaf{
//	
//}

(4)形参:方法体内不允许被修改。

public class Demo {
	public void fun(final int a , final int b ) {
		
	//形参用final修饰,那么在该方法内不允许被修改	
//		a=1;
//		b=2;
		System.out.println( a );
		System.out.println( b );
		
		//局部变量,final修饰的只能赋值一次
		final int c ;
		c=1;
		
		//c=2;
	}
}

(5)常量(用static 和 final 同时修饰的属性)

public class MyMath {

	//常量,属性,变量
	public static final double PI = 3.14;
	
	public  static final double LIGHT_SPEED = 30.0;
}

2、对变量和常量的总结

(1)按作用域区分

·在类中声明的变量或常量叫属性,或者叫成员变量。

·在方法中声明的变量叫局部变量,或者临时变量。

·属性可以使用四种权限修饰符,局部变量不可以

·属性可以使用static修饰,局部变量不可以。

·属性可以使用final修饰,局部变量也可以

·属性的生命周期很长,随着类的加载或者创建对象被初始化,直到没有对象引用才回收。

·局部变量生命周期很短,执行某个方法时临时被初始化,方法解时被回收。

·如果局部变量与属性重名,则遵守就近原则,可以使用this区分。

·属性可以在整个类中被使用,局部变量只在当前方法中使用。

·属性都有默认的初始化值,如引用类型都是null,整型是0。局部变量不被自动初始化,必须手动初始化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值