「javafinal详解」JAVAfinal

博主:adminadmin 2022-11-29 18:03:05 85

本篇文章给大家谈谈javafinal详解,以及JAVAfinal对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Java,final什么意思?

1. 修饰基础数据成员的final

这是final的主要用途,其含义相当于C/C++的const,即该成员被修饰为常量,意味着不可修改。如java.lang.Math类中的PI和E是final成员,其值为3.141592653589793和2.718281828459045。

2. 修饰类或对象的引用的final

在Java中,我们无法让对象被修饰为final,而只能修饰对象的引用,这意味着即使你写public

final A a = new A();

事实上a指向的对象的数据依然可以被修改,不能修改的是a本身的引用值,即你不能再对a进行重赋值。同样的情况出现在数组中,比如public final int[]

a = {1, 2, 3, 4, 5},事实上a中的数值是可修改的,即可以写a[0] =

3。据目前了解,java中数组内的数据是无法修饰为不可修改的,而C/C++可以。

3. 修饰方法的final

修饰方法的final和C/C++中修饰成员对象的const大不相同。首先,修饰方法的final含义不是“不可修改”,而是指该方法不可被继承成员重新定义。(注意,这里所说的不能被重新定义,并不是指子类一定不能定义同名方法,如果父类的方法是私有类型,子类是允许定义该方法的,这里指的不能重新定义是指不能通过改写方法来使得方法重写的多态性得以实现,如不希望A

a = new B(); a.f();这样的重写方法情况出现)

示例:

public class A {

// final方法f

public final void f() {

System.out.println("类A中的final方法f被调用了");

}

}

public class B extends A {

// 编译错误!父类的f方法是final类型,不可重写!

//! public void f() {

//! System.out.println("类B中的方法f被调用了");

//! }

}

此外,当一个方法被修饰为final方法时,意味着编译器可能将该方法用内联(inline)方式载入,所谓内联方式,是指编译器不用像平常调用函数那样的方式来调用方法,而是直接将方法内的代码通过一定的修改后copy到原代码中(将方法主体直接插入到调用处,而不是进行方法调用)。这样可以让代码执行的更快(因为省略了调用函数的开销),比如在int[]

arr = new int[3]调用arr.length()等。

另一方面,私有方法也被编译器隐式修饰为final,这意味着private final void

f()和private void f()并无区别。

4. 修饰类的final

当一个类被修饰为final时,它的含义很明确,就是不允许该类被继承,也就是说,该类“绝后”了,任何继承它的操作都会以编译错误告终。这也凸显出Java用final而不用const作为标识符的理由。(成员变量可以不是final,成员方法直接是final的)

示例:

public final class A {

}

// 编译错误!A是final类型,不可被继承!

//!public class B extends A{

//!}

5. 参数final

对对象参数做final修饰。以为对象变量传递的是其引用,为防止调用过程中无意的更改而修饰。

有好多人博客里边有的。

final在Java里是什么意思?

final在java中的意思是表示最终的,无法改变的意思。

1.

final

定义数值表示这个数值是最终的,不可改变的,一旦改变是会出错的,当用final作用于类的成员变量时,成员变量(注意是类的成员变量,局部变量只需要保证在使用之前被初始化赋值即可)必须在定义时或者构造器中进行初始化赋值,而且final变量一旦被初始化赋值之后,就不能再被赋值了。。

2.

final

定义方法表示这个方法是不能被重写和重载的只能够被子类继承使用,使用final方法的原因有两个。第一个原因是把方法锁定,以防任何继承类修改它的含义;第二个原因是效率。在早期的Java实现版本中,会将final

方法转为内嵌调用。但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升。在最近的Java版本中,不需要使用final方法进行这些优化了。

3.

final

定义类便是这个类是最终的,是不能够被继承的,类中的方法也都是默认修饰了final方法,注意final类中的成员变量可以根据需要设为final。

java 中的 final 关键字有哪些用法

(1)修饰变量

用final关键字修饰的变量,只能进行一次赋值操作,并且在生存期内不可以改变它的值。final 修饰的变量可以先声明,后赋值。

final修饰基本类型时,起到常量的作用,基本类型的值不可变。

final修饰引用类型时,不能再指向其他的对象,但被引用的对象的值是可以改变的(引用变量的值

实际上是它所引用的对象的地址)。

当用final作用于类的成员变量时,成员变量(局部变量只需要保证在使用之前被初始化赋值即可)必须在定义时或者构造器中进行初始化赋值。

(2)修饰方法参数

编写方法时,可以在参数前面添加final关键字,它表示在整个方法中,不会(实际上是不能)改变参数的值,具体类似于修饰数据。

即不能改变参数的值,但是可以改变引用类型参数的对象的值。同时,即使没有final的修饰,参数的改变也不会影响到方法外的变量。

(3)修饰方法

final关键字修饰方法,它表示该方法不能被覆盖(重写)。另外,类中所有的private方法都隐式地指定为是final的,由于无法在类外使用private方法,所以也就无法覆盖它。此时可以在子类中定义相同的方法名和参数,这种情况不再产生重写与final的矛盾,而是在子类中重新定义了新的方法。可以对private方法添加final修饰符,但并没有添加任何额外意义。

(4) 修饰类

用final修饰的类是无法被继承的。且final类中的所有成员方法都会被隐式地指定为final方法。

Java中的final类怎么用?请详细解释一下。

在Java中声明类、属性和方法时,可使用关键字final来修饰。

1、 final标记的类不能被继承。

2、 final标记的方法不能被子类复写。

3、 final标记的变量(成员变量或局部变量)即为常量,只能赋值一次。

javafinal详解的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于JAVAfinal、javafinal详解的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-29,除非注明,否则均为首码项目网原创文章,转载请注明出处。