`

java中final方法

 
阅读更多

之所以要使用final方法,可能是出于对两方面理由的考虑。第一个是为方法“上锁”,防止任何继承类改变它的本来含义。设计程序时,若希望一个方法的行为在继承期间保持不变,而且不可被覆盖或改写,就可以采取这种做法。
采用final方法的第二个理由是程序执行的效率。将一个方法设成final后,编译器就可以把对那个方法的所有调用都置入“嵌入”调用里。

  final在Java中并不常用,然而它却为我们提供了诸如在C语言中定义常量的功能,不 仅如此,final还可以让你控制你的成员、方法或者是一个类是否可被覆写或继承等功能,这些特点使final在Java中拥有了一个不可或缺的地位,也 是学习Java时必须要知道和掌握的关键字之一。 final成员   当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变, 而对于对象变量来说其引用不可再变。其初始化可以在两个地方,一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数中。这两个地方 只能选其一,要么在定义时给值,要么在构造函数中给值,不能同时既在定义时给了值,又在构造函数中给另外的值。下面这段代码演示了这一点: import java.util.List; import java.util.ArrayList; import java.util.LinkedList; public class Bat{     final PI=3.14;          //在定义时便给址值     f

 

1.定义及编程技巧

/*

 * final方法是在派生类中不能被覆盖的方法,final类是不能被覆盖的类。一个类可以含有final方法

 * final类和final方法使用final声明

 * 技巧:final static 类型成员变量。static使得变量只存在一个拷贝。final使得它不能改变。

 * */

2.关于final成员赋值的讨论:

a.final 成员能且只能被初始化一次

b.final成员必须在声明时或者方法中被初始化,而不能在其它的地方被初始化。

eg:

 

package mypackage;

public final class FinallyTest

{

private final int params;

 

  public FinallyTest()

  {

  params=5;

  }

 public FinallyTest(int para)

  {

  params=para;

  }

  public static void main(String[] args)

  {

  FinallyTest ft=new FinallyTest(20);

  System.out.println(ft.params);

  }

}

eg2:

 

package mypackage;

public final class FinallyTest

{

private final int params;

  public FinallyTest()

  {

     this(10);

  }

  public FinallyTest(int para)

  {

  params=para;

   }

  public static void main(String[] args)

  {

  FinallyTest ft=new FinallyTest();

  System.out.println(ft.params);

  }

}

上面是两个final初始化的例子。下面我们看一下两种错误的例子

eg3

 

package mypackage;

public final class FinallyTest

{

private final int params=11;//此处已经赋值

  public FinallyTest()

  {

     this(10);

  }

  public FinallyTest(int para)

  {

  params=para;

  }

  public static void main(String[] args)

  {

  FinallyTest ft=new FinallyTest();

  System.out.println(ft.params);

  }

}

Error(18,3): variable params is declared final; cannot be assigned

eg4:

 

package mypackage;

public final class FinallyTest

{

private final int params;

  public FinallyTest()

  {

   this(10);

  }

  public FinallyTest(int para)

  {

 

this.setParams(para);//不能用函数给它赋值必须直接赋值
  }

 public void setParams(int b)

 {

 params=b;

 }

  public static void main(String[] args)

  {

  FinallyTest ft=new FinallyTest();

  System.out.println(ft.params);

  }

}

Error(22,2): variable params is declared final; cannot be assigned

eg5

package mypackage;

public final class FinallyTest

{

private final int params;

  public FinallyTest()

  {

   this(10);

  }

  public FinallyTest(int para)

  {

  }

  public static void main(String[] args)

  {

  FinallyTest ft=new FinallyTest();

  System.out.println(ft.params);

  }

}

Error(10,19): variable params might not have been initialized

3.几点说明:

在java中,普通变量系统是自动初始化的,数值变量自动初始化为0,其余类型变量自动初始化为空。但是final类型的变量必须显示初始化,且初始化的方法必须是在申明时或者在构造方法中直接赋值,而不能通过调用函数赋值。

关于构造方法重载的问题,如果程序中没有显示的说明构造方法,那么就有默认的构造方法。如果程序中显示的声明了构造方法,那么默认的构造方法就不再存在。

在本例中,给出了关于this的使用方法

分享到:
评论

相关推荐

    final类的适应实例

    Java中final类的简单使用,并对Java关键字的使用做出了总结

    Java中final的深度剖析

    Java中的final关键字是一个非常重要的修饰符,它用于声明变量、方法和类,确保它们在程序执行期间保持不变。final关键字在Java编程中的应用广泛,可以帮助提高代码的稳定性和可维护性。 1. **常量的声明** final...

    java中final和static的区别

    final 关键字在 Java 中有多种用法,包括修饰变量、方法、类等。下面是 final 关键字的各种用法: 1. final 修饰变量:表示该变量一旦被初始化,程序无法修改变量的值,该变量变成了一个常量。注意,系统不会默认为...

    java中final和static的总结

    在Java编程语言中,`final` 和 `static` 是两个非常重要的关键字,它们分别具有不同的含义和用法,但都对代码的结构和行为产生深远影响。本文将深入探讨这两个关键字,并结合实际示例来解释它们的应用场景。 首先,...

    java中final和static讲解及实例

    java中final和static讲解及实例

    Java中的final关键字

    在Java编程语言中,`final`关键字扮演着一个至关重要的角色,它被用来定义不可变性和唯一性。这个关键字可以应用于变量、方法和类,分别赋予它们不同的特性。以下是对`final`关键字在不同场景下使用的详细介绍: 1....

    java中final关键字和static关键字详细用法

    Java中的`final`和`static`关键字是编程中非常重要的两个修饰符,它们分别用于不同的场景,以确保代码的稳定性和高效性。 首先,`final`关键字主要用于表示不可变性。它可以用来修饰类、方法和变量。对于类,如果一...

    深入理解Java中的final关键字_动力节点Java学院整理

    Java 中的 `final` 关键字是一个至关重要的概念,它被用来声明类、方法和变量,以确保它们在程序执行过程中不可更改。深入理解 `final` 关键字可以帮助开发者写出更加安全、高效的代码。 首先,`final` 关键字可以...

    java中final与static的用法

    `final`关键字在Java中有多种用途,它可以用来修饰类、方法和变量,其主要目的是确保被修饰的对象具有不可变性或只读性。 #### 1. `final`修饰变量 当`final`用于修饰一个变量时,该变量成为常量,一旦赋值后就不...

    Java关键字final、static使用总结

    在 Java 编程语言中,final 和 static 是两个非常重要的关键字,它们可以用来修饰类、方法、变量等,了解它们的使用方法和限制非常重要。本文将详细总结 final 和 static 的使用方法和限制。 一、final 关键字 ...

    Java中final共2页.pdf.zip

    在Java编程语言中,`final`关键字是一个非常重要的概念,它具有多种用途,涉及到类、方法和变量的声明。在本篇文章中,我们将深入探讨`final`关键字在Java中的使用和意义。 首先,`final`关键字用于声明一个不可变...

    关于Java中final的深度剖析.pdf

    "关于Java中final的深度剖析" final关键字是Java中一种非常重要的关键字,它可以用来修饰变量、方法和类,具有多种用途和效果。 1.final变量 在Java中,final变量是一种常量,它的值不能被改变。final变量可以在...

    java中final类型等的应用

    - **定义**:final是Java中的一个关键字,用于声明变量、方法或类。 - **特点**: - 当用于声明变量时,表示该变量的值一旦被初始化后就不能改变。 - 当用于声明方法时,表示该方法不能被子类重写。 - 当用于声明...

    Java final关键字

    在Java编程语言中,`final`关键字扮演着一个至关重要的角色,它被用来声明一个变量、方法或类为不可变的。在这个学习demo中,我们将深入理解`final`关键字的各种用法及其背后的原理。 首先,`final`关键字用于变量...

    Java中final的用法.doc

    在Java编程语言中,`final`关键字有着重要的作用,它用于标记一个变量、方法或类,表示不可变性。这个特性在多个方面都有应用,包括创建常量、确保引用不可变以及在多线程环境中提供安全。 1. **常量的创建**: `...

    深入解析Java编程中final关键字的作用

    在Java编程中,final关键字扮演着至关重要的角色,它用于声明不可变的变量、方法以及类,以确保代码的稳定性和安全性。以下是关于final关键字的深入解析: 1. **final类**: 当一个类被声明为final时,这意味着这...

    java final变量详解

    Java 中的 final 变量是指不能被改变的变量,它有三个方面的作用:修饰变量、修饰方法和修饰类。在 Java 中,final 变量是一种常量,它只能被赋值一次,赋值后值不再改变。 final 变量的使用方法有多种,例如在变量...

    《java程序设计》复习资料.doc

    - **知识点**:Java 中方法调用及其结果。 - **解释**:在这个例子中,方法 `method` 接受一个参数并将其加倍。当 `method(5)` 被调用时,参数值为 5,执行 `x += x` 后的结果为 10。因此,选项 B “10”是正确的。 ...

    Java中static、this、super、final用法

    在Java编程语言中,`static`, `this`, `super`, 和 `final` 是四个非常重要的关键字,它们分别代表不同的概念并具有特殊的用法。 一、`static` `static` 关键字用于声明类级别的成员(变量或方法),这意味着它们...

    举例讲解Java中final关键字的用法

    Java中的`final`关键字是一个非常重要的概念,它用于表示不可变性或终结状态。下面我们将详细探讨`final`关键字在修饰变量、方法和类时的不同用法。 1. **final变量** - 常量定义:`final`变量一旦被初始化后,其...

Global site tag (gtag.js) - Google Analytics