本文概述
final一个关键字在java中是用来限制用户。可以使用javafinal关键字在许多上下文。final可以:
- 变量
- 方法
- 类
final关键字可以应用的变量,final一个没有价值的变量叫做空白决赛变量或未初始化变量。它只能在构造函数中初始化。空白的final变量可以是静态的,也只在静态初始化块。我们会有详细的学习这些。我们先学习基本的final一个字。
1)Javafinal变量
如果你做任何变量,final,你无法改变final的变量的值(它将常数)。
final一个变量的例子
speedlimit有final一个变量,我们要改变这个变量的值,但它不能被改变,因为final变量赋值不能被改变。
class Bike9{
final int speedlimit=90;//final variable
void run(){
speedlimit=400;
}
public static void main(String args[]){
Bike9 obj=new Bike9();
obj.run();
}
}//end of class
Output:Compile Time Error
2)final的Java方法
如果你做任何方法final,你不能覆盖它。
final方法的例子
class Bike{
final void run(){System.out.println("running");}
}
class Honda extends Bike{
void run(){System.out.println("running safely with 100kmph");}
public static void main(String args[]){
Honda honda= new Honda();
honda.run();
}
}
Output:Compile Time Error
3)final的Java类
如果你做任何类决赛,你不能扩展它。
的例子,final一节课
final class Bike{}
class Honda1 extends Bike{
void run(){System.out.println("running safely with 100kmph");}
public static void main(String args[]){
Honda1 honda= new Honda1();
honda.run();
}
}
Output:Compile Time Error
问)是final方法继承了?
Ans)是的,final的方法是遗传的,但你不能覆盖它。例如:
class Bike{
final void run(){System.out.println("running...");}
}
class Honda2 extends Bike{
public static void main(String args[]){
new Honda2().run();
}
}
Output:running...
问)空白或final未初始化的变量是什么?
final一个变量没有初始化的时候声明被称为空白final变量。
如果你想创建一个初始化的变量创建对象的时候,一旦初始化可能不会改变,它是有用的。例如潘卡的员工数量。
它可以只在构造函数初始化。
空白的final变量的例子
class Student{
int id;
String name;
final String PAN_CARD_NUMBER;
...
}
)我们可以初始化空白final变量?
是的,但只在构造函数。例如:
class Bike10{
final int speedlimit;//blank final variable
Bike10(){
speedlimit=70;
System.out.println(speedlimit);
}
public static void main(String args[]){
new Bike10();
}
}
Output: 70
静态空白final变量
final一个静态变量没有初始化的时候声明称为静态空白final变量。它只能在静态初始化块。
静态空白final变量的例子
class A{
static final int data;//static blank final variable
static{ data=50;}
public static void main(String args[]){
System.out.println(A.data);
}
}
问)final一个参数是什么?
如果你声明任何参数,final,你不能改变它的价值。
class Bike11{
int cube(final int n){
n=n+2;//can't be changed as n is final
n*n*n;
}
public static void main(String args[]){
Bike11 b=new Bike11();
b.cube(5);
}
}
Output: Compile Time Error
问)我们可以声明一个构造函数final吗?
不,因为构造函数不会遗传。
评论前必须登录!
注册