final的含义?

final:java中的关键字,意为“终态的”或者“无法改变的”。可用来修饰类、变量、方法。


变量(成员变量、静态变量、局部变量)

注意:

1、final变量即为常量,通常常量名大写。

2、final成员变量必须在声明时初始化或在构造器中初始化。

3、静态final成员变量必须在声明时初始化。

4、局部变量必须在声明时赋值。

5、final变量赋值后不能被修改。

6、final修饰方法中的参数时,参数在方法体中不能重新赋值。

7、接口中的变量可以不用明确的声明为final,因为变量默认为public static final。

代码:

public class ClassA {
public final String S1 = "this is S1 in ClassA";// 成员变量,声明时初始化
public final String S2;// 成员变量,在构造器中初始化
public static final String S3 = "this is S3 in ClassA";// 静态变量 public ClassA() {
S2 = "this is S2 in ClassA";
} public String method1() {
final String S = "this is method1 in ClassA";// 局部变量
return S;
} public String method2(final String S) {// final修饰方法中的参数
return S;
}
}

测试1:

public class MainClass {
public static void main(String[] args) {
ClassA a1 = new ClassA();
System.out.println(a1.S1);// this is S1 in ClassA
System.out.println(a1.S2);// this is S2 in ClassA
System.out.println(a1.S3);// this is S3 in ClassA
System.out.println(a1.method1());// this is method1 in ClassA
System.out.println(a1.method2("test"));// test
}
}

方法

注意:

1、final修饰的方法不能被子类重写。

2、final不能用来修饰抽象方法。

代码:

public class ClassA {
public final String method1() {
return "this is method1 in ClassA";
}
}

测试2:

public class MainClass {
public static void main(String[] args) {
ClassA a1 = new ClassA();
System.out.println(a1.method1());// this is method1 in ClassA
}
}

注意:

1、final修饰的类不能被继承。

2、final不能修饰抽象类和接口。

代码:

public final  class ClassA {
public String s1 = "this is s1 in ClassA";
}

测试3:

public class MainClass {
public static void main(String[] args) {
ClassA a1 = new ClassA();
System.out.println(a1.s1);// this is s1 in ClassA
}
}

final详解的更多相关文章

  1. 11、final详解

    1.final修饰成员变量 即该成员被修饰为常量,意味着不可修改. 对于值类型表示值不可变:对于引用类型表示地址不可变 其初始化可以在三个地方 ①:定义时直接赋值 ②:构造函数 ③:代码块{}或者静态 ...

  2. java关键字native、static、final详解

    native: native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如C和C++)实现的文件中.Java语言本身不能对操作系统底层进行访问和操作,但是可 ...

  3. java 关键字final static native详解

    java 关键字native static final详解 一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义, ...

  4. 最强Java并发编程详解:知识点梳理,BAT面试题等

    本文原创更多内容可以参考: Java 全栈知识体系.如需转载请说明原处. 知识体系系统性梳理 Java 并发之基础 A. Java进阶 - Java 并发之基础:首先全局的了解并发的知识体系,同时了解 ...

  5. 多线程之 Final变量 详解

    原文: http://www.tuicool.com/articles/2Yjmqy 并发编程网:http://ifeve.com/java-memory-model/ 总结: Final 变量在并发 ...

  6. java提高篇(十)-----详解匿名内部类 ,形参为什么要用final

    在java提高篇-----详解内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意的事项.如何初始 ...

  7. “全栈2019”Java第五十一章:继承与final关键字详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  8. abstract关键字、final关键字、static关键字、访问修饰符详解

     abstract关键字.final关键字.static关键字.访问修饰符详解 abstract关键字: final关键字: static关键字: 访问修饰符:

  9. 详解 final 和 static

    在我们上一篇博文中提到了 fianl 这个关键字,对于这个关键字,本人在初学时也耗费了极大地心血,甚至和师兄进行了激烈的讨论,并且,在我们讨论.尝试 以及 翻阅各种资料,最终得出了合适.易懂的解释. ...

随机推荐

  1. python学习-46 时间模块

    时间模块 ····时间戳 print(time.time()) 运行结果: 1564294158.0389376 Process finished with exit code 0 ·····结构化时 ...

  2. WUSTOJ 1287: B304(Java:355ms,C:8ms)

    题目:

  3. 强类型c语言 类型

    C 语言是一门强类型的语言,类型决定语言的特性,允许在相同类型进行运算. *强类型语言的特点:      1      先声明,后使用. 2      类型不可变. * 基本数据类型 * 数据类型的范 ...

  4. spring cloud微服务实践六

    本片我们就来认识下spring cloud中的zuul组件. 注:这一个系列的开发环境版本为 java1.8, spring boot2.x, spring cloud Greenwich.SR2, ...

  5. asp.net core-6.Bind读取配置文件到C#实例中

    1,创建asp.net core web应用程序,选择空网站 2,创建一个appsettings.json文件 为什么要叫appsettings.json呢?因为在Iwebhost启动的时候没有添加任 ...

  6. Shell重定向:2>&1

    Shell重定向:2>&1 0 是一个文件描述符,表示标准输入(stdin) 1 是一个文件描述符,表示标准输出(stdout) 2 是一个文件描述符,表示标准错误(stderr) 重定 ...

  7. tiny-Spring【2】逐步step分析-新加入特性

    tiny-Spring是黄亿华大佬自己写的一个集合IOC和AOP于一身的一种轻量级[教学用]Spring框架,它的github库地址为:https://github.com/code4craft/ti ...

  8. django 2.0 xadmin 错误集锦

    转载 django 2.0 xadmin 错误集锦 2018-03-26 10:39:18 Snail0Li 阅读数 5188更多 分类专栏: python   1.django2.0把from dj ...

  9. 1.NIO概述

    /*Java NIO 简介*/ java NIO (New IO)是从 java1.4版本开始引入的一个新的IO API,可以替代标准的 java IO API (jdk1.7又对其进行了改进, 称为 ...

  10. storedownloadd占用cpu高

    禁用App Store的自动更新