Java中的final修饰符
1.什么时候可以选择final修饰符
如果想让一个类不被其他类继承,不允许在有子类,这时候就要考虑用到final来修饰。
2.用final修饰的类
首先大家要明白,用final修饰的类是不能被继承的,下面来看一个错误案例。
eg:
final class Penguin { } class SubPenguin extends Penguin { }
此时这段代码的class SubPenguin extends Penguin这行代码会报错:
The type SubPenguin cannot subclass the final class :翻译:该类型SubPenguin不能继承的最后类
即.Penguin类不能被继承。
3.用final修饰的方法
eg:
class Penguin { public final void print(){} } class Subpenguin extends Penguin { public void print(){}//错误 }
此时这段代码public void print(){}会报错,提示错误信息:
cannot override the final method from Penguin:翻译:无法覆盖企鹅的最后方法
即.print方法不能被子类重写。
4.用final修饰的变量
用final修饰的变量包括成员变量和局部变量,他们将变成常量,只能赋值一次。
public class Dog { final String name="小黄";//用final来修饰狗狗的姓名 public void setname(String name) { this.name=name; //错误,name不能在被赋值。 } }
5.使用final修饰符的注意点
final可以用来修饰类,方法和属性,不能修饰构造方法。
6.用final修饰的引用型变量,变量所指对象的属性值是否能改变?
首先来看一个简单的例子
//狗狗类 public class Dog { String name;//狗狗的姓名 //带参构造,给狗狗的名字赋值 public Dog(String name) { this.name=name; } } //测试类 class Test { public static void main(String[] args) { final Dog dog=new Dog("小黄");//实例化一个狗对象,用final修饰 dog.name="大黄"; dog=new Dog("小八"); } }
这段代码中dog对象被修饰为final成常量,其值不可变,但要注意的是dog.name="大黄";这行代码并没有错,那么dog=new Dog("小八")是错的,也就是说,使用final修饰的引用型变量,变量不可以在指向另外的对象,但是所指变量的内容是可以改变的。
结论:使用final修饰的引用型变量时,变量的值时固定不变的,而变量所指对象的属性值是可变的。
Java中的final修饰符的更多相关文章
- Java学习笔记十九:Java中的访问控制修饰符
Java中的访问控制修饰符 一:Java修饰符的种类: 访问修饰符 非访问修饰符 修饰符用来定义类.方法或者变量,通常放在语句的最前端.我们通过下面的例子来说明: public class Hello ...
- 详解Java中的访问控制修饰符(public, protected, default, private)
Java中的访问控制修饰符已经困惑笔者多时,其中较复杂的情况一直不能理解透彻.今天下定决心,系统.全面地研究Java中的访问控制修饰符的所有方面,并整理成这篇文章,希望有同样疑惑的读者读完后能有所收获 ...
- 分享知识-快乐自己:java 中的访问修饰符
1):Java中的访问修饰符: Java面向对象的基本思想之一是封装细节并且公开接口.Java语言采用访问控制修饰符来控制类及类的方法和变量的访问权限,从而向使用者暴露接口,但隐藏实现细节. 访问控制 ...
- java中4种修饰符访问权限的区别及详解全过程
java中4种修饰符访问权限的区别及详解全过程 http://jingyan.baidu.com/article/fedf0737700b3335ac8977ca.html java中4中修饰符分别为 ...
- (转)JAVA中的权限修饰符
注:本博文是转载的,原文地址:http://blog.csdn.net/xk632172748/article/details/51755438 Java中修饰符总结: 访问控制修饰符 访问控制修饰符 ...
- java中的类修饰符、成员变量修饰符、方法修饰符。
类修饰符: public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类. abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现. fin ...
- java中的访问修饰符详解
主要讲述一下java中protected的修饰控制范围. 在叙述protected修饰符使用之前,先来说一下java,可以发现,开发java程序是一个时时刻刻都在编写类.开发类.定义类的过程.类里面可 ...
- Java中的权限修饰符private、protected、public
java中的修饰符分类: 权限修饰符: private, default, protected, public 状态修饰符: static, final 抽象修饰符: abstract 权限修饰符 我 ...
- Java中的类修饰符
资料主要来源于网络(http://60.28.60.3/zy/java-new/zhishidian/chap3/3.htm) 之前每次写小测试程序的时候,总是把一个类放在一个Java文件中,按理说这 ...
随机推荐
- 基于微信红包插件的原理实现android任何APP自动发送评论(已开源)
背景 地址:https://github.com/huijimuhe/postman 核心就是android的AccessibilityService,回复功能api需要23以上版本才行. 其实很像在 ...
- js字符串函数(split、join、indexOf、substring)
1,函数:split()功能:使用一个指定的分隔符把一个字符串分割存储到数组示例: str="jpg|bmp|gif|ico|png";arr= str .split(" ...
- [USACO2002][poj1947]Rebuilding Roads(树形dp)
Rebuilding RoadsTime Limit: 1000MS Memory Limit: 30000KTotal Submissions: 8589 Accepted: 3854Descrip ...
- SequoiaDB 系列之四 :架构简析
在本系列的第一篇中,简述了SequoiaDB的安装,以及一个(伪)集群的部署 第二篇和第三篇对SequoiaDB的集群,做了简单地操作. 在本篇中,将对SequoiaDB的架构进行简单的分析. 因为自 ...
- DOM(六)事件类型
对于用户事件类型而言,最常用的是鼠标.键盘.浏览器. 1.鼠标事件: 鼠标的事件都频繁使用,下面例子就测试各种鼠标事件 <script language="javascript&quo ...
- git 的简单使用方法
git 的简单使用方法1. 服务器 安装完成2. ssh 中的账号创建完成3. 创建 ssh 账号,会在 ssh 的安装目录下的home 目录里面,多了用户家目录4. 进入该目录 ,创建一个新的文件夹 ...
- 名词释义(ActiveMQ 和 Webservice)
ActiveMQ一般用来做消息通信,特别是异步的消息处理,把同步的处理变成异步消息,使得系统解耦.消峰平谷. Webservice则是一种RPC,用来远程调用服务,达到打通系统.服务复用的目的. 其实 ...
- Oracle导出数据结构和数据表的方法
1.PLSQL导出数据结构(数据表.序列.触发器.函数.视图) 1)在左侧 点击tables 2)Tools-->Export User Objects 3)红色1 是你要选择导出的表,红色2 ...
- Blog Explanation
有疑问或blog中说明错误的欢迎评论或联系QQ:30056882,邮箱BLADEVIL@outlook.com.本人水平不高,欢迎讨论问题. blog中所有随笔均为原创,转载请注明来源. (已退役.)
- 【poj2226】 Muddy Fields
http://poj.org/problem?id=2226 (题目链接) 题意 给出一个只包含‘.’和‘*’的矩阵,用任意长度的宽为1的木板覆盖所有的‘*’而不覆盖‘.’,木板必须跟矩形的长或宽平行 ...