高级类特性----final关键字

final 关键字

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

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

final标记的类不能被继承。提高安全性,提高程序的可读性。

final标记的方法不能被子类重写。增加安全性。

final标记的成员变量必须在声明的同时或在每个构造方法中显式赋值,然后才能使用。final PI=3.14;

关键字final应用举例

public final class Test {
  public static int totalNumber= 5 ;
  public final int id;
  public Test() {
    id = ++totalNumber;//只能在构造方法中给final变量赋值
  }
  public static void main(String[] args) {
    Test t = new Test();
    System.out.println(t.id);
    final int i = 10;
    final int j;
    j = 20;
    j = 30; //非法
  }
}


 1 public class TestFinal {
 2
 3     int i = 10;
 4     int j;
 5
 6     final int m = 10;
 7     final int n;
 8
 9     public TestFinal() {
10         n = 100;
11     }
12
13     public void test(){
14         i = 10;
15         j = 20;
16
17 //        m = 100;
18     }
19
20     public static void main(String[] args) {
22     }
24 }
25
26 final class A {
27
28 }
29
30 //class B extends A {
31 //
32 //}
33
34 class C {
35     void method1(){}
36 }
37
38 class D extends C {
39     @Override
40     void method1() {
41         // TODO Auto-generated method stub
42         super.method1();
43     }
44 }
时间: 2024-10-10 16:41:01

高级类特性----final关键字的相关文章

高级类特性----static关键字

static 关键字 当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new关键字才会产生出对象,这时系统才会分配内存空间给对象,其方法才可以供外部调用. 我们有时候希望无论是否产生了对象或无论产生了多少对象的情况下,某些特定的数据在内存空间里只有一份,例如所有的中国人都有个国家名称,每一个中国人都共享这个国家名称,不必在每一个中国人的实例对象中都单独分配一个用于代表国家名称的变量. class Circle { private double radius

面向对象高级类特性

当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new关键字才会产生出对象,这时系统才会分配内存空间给对象,其方法才可以供外部调用.我们有时候希望无论是否产生了对象或无论产生了多少对象的情况下,某些特定的数据在内存空间里只有一份,例如所有的中国人都有个国家名称,每一个中国人都共享这个国家名称,不必在每一个中国人的实例对象中都单独分配一个用于代表国家名称的变量. 类属性.类方法的设计思想 ·类属性作为该类各个对象之间共享的变量.在设计类时,分析哪些类属性不因

高级类特性----接口(intertface)

接 口 有时必须从几个类中派生出一个子类,继承它们所有的属性和方法.但是,Java不支持多重继承.有了接口,就可以得到多重继承的效果. 接口(interface)是抽象方法和常量值的定义的集合. 从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现. 接口定义举例 public interface Runner { int id = 1; public void start(); public void run(); public void stop()

高级类特性----内部类

内部类 在Java中,允许一个类的定义位于另一个类的内部,前者称为内部类. 内部类和外层封装它的类之间存在逻辑上的所属关系 Inner class一般用在定义它的类或语句块之内,在外部引用它时必须给出完整的名称. Inner class的名字不能与包含它的类名相同: Inner class可以使用包含它的类的静态和实例成员变量,也可以使用它所在方法的局部变量. 内部类举例 class A { private int s; public class B { public void mb() { s

PHP的 Final关键字、类(文件)的加载和命名空间

** Final.类(文件)的加载和命名空间 1.final 关键字-----终态的.最终的 final 关键字用于修饰类和方法:修饰的类不能被继承,修饰的函数方法(public)在子类中不能被重载. 如果父类中的方法被声明为 final,则子类无法覆盖该方法.如果一个类被声明为 final,则不能被继承. 类使用 final 关键字的例子: final class Person{ ...... } final 定义的类被继承时会提示如下错误: Fatal error: Class Studen

JavaSE入门学习22:Java面向对象之final关键字

在Java程序设计中,我们有时可能希望某些数据是不能够改变的,这个时候final就有用武之地了.final是java的 关键字,它所表示的是这部分是无法修改的.不想被改变的原因有两个:效率.设计.使用到final的有三种情况:变 量(final变量即为常量).方法.类. 一final关键字 final在Java中是一个保留的关键字,可以声明成员变量.方法.类以及本地变量.一旦你将引用声明作final,你 将不能改变这个引用了,编译器会检查代码,如果你试图将变量再次初始化的话,编译器会报编译错误.

php中重写和final关键字的使用

为什么把重写和final放在一起,原因就是一条:final的意思是不可更改的,也就是说final定义的东西是不可改变的,下面具体来说一下. 来看一段简单的代码: 1 class BaseClass { 2 final public function test() { 3 echo "BaseClass::test() called\n"; 4 } 5 6 public function moreTesting() { 7 echo "BaseClass::moreTestin

第11章 类的高级特性--final

1.final变量 (1)final关键字可用于变量声明,一旦该变量被设定,就不可以再改变该变量的值.通常,由final定义的变量为常量.例如:final double PI=3.14; final关键字定义的变量必须在声明时对其进行赋值操作. 被定义为final的常量定义时需要使用大写字母命名,并且中间使用下划线进行连接. 例如:private final int VALUE_1=9; (2)final还可以修饰对象引用 一旦一个对象引用修饰为final后,它只能恒定指向一个对象无法将其改变以

夯实Java基础系列4:一文了解final关键字的特性、使用方法,以及实现原理

目录 final使用 final变量 final修饰基本数据类型变量和引用 final类 final关键字的知识点 final关键字的最佳实践 final的用法 关于空白final final内存分配 使用final修饰方法会提高速度和效率吗 使用final修饰变量会让变量的值不能被改变吗: 如何保证数组内部不被修改 final方法的三条规则 final 和 jvm的关系 写 final 域的重排序规则 读 final 域的重排序规则 如果 final 域是引用类型 参考文章 微信公众号 Jav