`
SunnyYoona
  • 浏览: 365553 次
社区版块
存档分类
最新评论

[Java开发之路](1)final关键字

 
阅读更多
在Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。下面就从这三个方面来了解一下final关键字的基本用法。

1.修饰类

final修饰类时,则该类不能被继承

package com.qunar.bean;
public final class Student {
}
package com.qunar.bean;
// Remove final modifier from Student
public class Qunar extends Student{
public static void main(String[] args){
}
}


在使用final修饰类的时候,要注意谨慎选择,除非这个类真的在以后不会用来继承或者出于安全的考虑,尽量不要将类设计为final类。

2.修饰方法

final修饰方法,则该方法不允许被覆盖(重写)
使用final方法的原因有两个:第一个原因是把方法锁定,以防任何继承类修改它的含义;第二个原因是效率,在早期的Java实现版本中,会将final方法转为内嵌调用,但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升。在最近的Java版本中,不需要使用final方法进行这些优化了。

如果只有在想明确禁止该方法在子类中被覆盖的情况下才将方法设置为final的。

注:类的private方法会隐式地被指定为final方法。
package com.qunar.bean;
public class Student {
private String name;
private int age;
private String sex;
public final void play(){
System.out.println("Student");
}
}

package com.qunar.bean;
public class Qunar extends Student{
// Remove final modifier from Student.play
public void play(){
System.out.println("Qunar");
}
public static void main(String[] args){
Qunar qunar = new Qunar();
qunar.play();
}
}

3.修饰属性

final修饰属性则该类的属性不会隐式的初始化(类的初始化属性必须有值)或在构造方法中赋值(但只能选其一)
package com.qunar.bean;
public class Student {
private String name;
// 报错 final filed age may not hava been initialized
// final private int age;
final private int age = 10;
private String sex;
public final void play(){
// final filed Student.age cannot been assigned
// age = 30;
System.out.println("Student");
}
}


4.修饰变量

final修饰变量则该变量的值只能赋一次值,即变为常量








分享到:
评论

相关推荐

    浅析Java中的final关键字Java开发Java经验技

    浅析Java中的final关键字Java开发Java经验技巧共6页.pdf.zip

    java提高篇之关键字final编程开发技术共5页.pdf

    java提高篇之关键字final编程开发技术共5页.pdf.zip

    Java基础精品课12-抽象类录屏7.final关键字.mp4

    Java基础精品课12-抽象类录屏7.final关键字.mp4

    JavaSE基础:多态、final关键字-27

    1、多态基础语法 2、多态在实际开发中的作用 3、final关键字 4、关于package和import 5、关于访问控制权限

    Android源码中final关键字的用法及final,finally,finalize的区别

    我发现在Android的源码中很多地方对final关键字的用法很是“别出心裁”,之所以这么说是因为我从没看过是这么使用final关键字的,一个典型的例子是View类中onScrollChanged方法(不妨将其成为方案一): protected...

    Java开发详解.zip

    020604_【第6章:面向对象(高级)】_final关键字笔记.pdf 020605_【第6章:面向对象(高级)】_抽象类的基本概念笔记.pdf 020606_【第6章:面向对象(高级)】_接口的基本概念笔记.pdf 020607_【第6章:面向对象...

    Java开发常见问题总结.docx

    一些关键且实用的Java开发技巧: 基础语法与规范: 始终使用public class并遵循驼峰命名法。 使用final关键字以提高性能和明确意图(不可变对象)。 明确初始化变量,避免产生未定义行为。 遵循“早初始化,晚赋值...

    终于明白为什么要加 final 关键字了!

    作者:guanpj ...在开发过程中,由于习惯的原因...在 Java 8 之前,匿名内部类在使用外部成员的时候,会报错并提示 “Cannot refer to a non-final variable arg inside an inner class defined in a different method”:

    Java2实用教程.rar

    4 8 4final关键字 4 9对象的上转型对象 4 10多态性 4 11abstract类和abstract方法 4 12super关键字 4 13接口 4 13 1接口的声明与使用 4 13 2理解接口 4 13 3接口回调 4 13 4接口做参数 4 14内部类 4 15匿名类 4 15 1...

    基于Java的飞机大战游戏系统

    在本系统实现过程中,综合处理了多态 、接口–interface 、final关键字、继承等问题,开发技术上包括资源包的导入、图片流等,具体包括问题分析、方案设计、系统实现等多个方面,通过对Java基本原理的分析,重点解决...

    Javaw基础课程笔记.zip

    Java 视频教程目录: day01、Java 语言发展史_JDK的安装_HelloWorld程序的编写_关键字_标识符_基本数据类型。 day02、Java 数据类型转换_...day11:Java final 关键字_内部类_成员内部类_局部内部类_匿名内部类。

    java教程.rar

    Example.java final关键字的使用 Usepri.java 一个简单的内部类 第8章 示例描述:介绍了异常处理概念以及处理方式。 YiChang1.java 异常处理的一般形式 第9章 示例描述:演示如何使用流。 ...

    java自学之道

    9. final关键字 9.1 final介绍 9.2 final使用注意事项 三、继承 1、继承的概念 1.1 继承的定义 1.2 继承举例 1.3 父类和子类 类继承 2.1 方法继承 2.2 方法覆盖 2.3 方法重载 3、多态与动态绑定 3.1 多态分为两...

    21天学会java开发网络游戏

     final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用...

    Java入门教程(微学苑)-part1

    1.7 Java开发环境搭建 4 1.8 JDK 的下载 4 1.9 JDK的安装 5 1.10 环境变量的设置 9 1.11 Eclipse的安装 9 1.12 安装简体中文语言包 11 1.13 第一个Java程序示例 14 1.14 通过Eclipse运行程序 14 1.15 通过命令行运行...

    整理后java开发全套达内学习笔记(含练习)

    assert (关键字) 断言 [ә'sә:t] ' (java 1.4 之后成为关键字) associate n.关联(同伴,伙伴) [ә'sәuʃieit] attribute n.属性(品质,特征) [ә'tribju:t] boolean (关键字) 逻辑的, 布尔型 call n.v.调用; 呼叫...

    Java面向对象程序设计笔记

    4. Final关键字: 13 5. 抽象类: 13 6. 接口 14 7. 接口与抽象类的区别: 15 8. 设计模式 15 单一设计模式: 15 策略模式: 16 模板模式: 16 组合设计模式: 16 9. 多态 16 10. 内部类 17 ...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    11.2.4 理解final关键字 296 11.2.5 总结:类的修饰符 297 11.3 方法的修饰符 297 11.3.1 方法的访问控制符 298 11.3.2 public:没有限制的修饰符 299 11.3.3 protected:仅对子类和同包的类可见 300 11.3.4 ...

    Java 基础学习笔记:数据类型,常见运算,final & static,Java 常见类,异常 & 反射

    Java 基础学习笔记,主要包括: 10_Java常见对象.md 10_Java常见对象_2.md 1_数据类型.md 3_运算.md ...由于Java的高性能和稳定性,许多大型企业和互联网公司选择使用Java开发核心业务系统和高并发的We

    Java异常是Java提供的一种识别及响应错误的一致性机制,Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序

    Java异常架构与异常关键字 Java异常简介 Java异常架构 1. Throwable 2. Error(错误) 3. Exception(异常) 运行时异常 编译时异常 4. 受检异常与非受检异常 受检异常 非受检异常 Java异常关键字 Java异常处理 声明...

Global site tag (gtag.js) - Google Analytics