final关键字(final是最终的)
final关键字(final是最终的)
1.final修饰特点
a.修饰类,类不能被继承
b.修饰变量,变量就变成了常量,
修饰基本数据类:final int num = 10;
修饰引用数据类型变量只能始终指向一个对象,不能再指向其他对象
即 基本类型,是值不能被改变(报错无法为最终变量NUM分配值)
引用类型,是地址值不能被改变,对象中的属性可以改变
c.修饰方法,方法不能被重写
2.final关键字修饰局部变量
a.修饰基本类型,是值不能被改变(报错无法为最终变量NUM分配值)
b.修饰引用类型,是地址值不能被改变,对象中的属性可以改变
例:
class bj08_20 {
public static void main(String[] args) {
//final修饰基本数据类型
final int NUM = 10;
System.out.println(NUM);
//final修饰引用数据类型
final Person p = new Person("张三",23);
//p里面是个地址值
//p = new Person("李四",24);再次改变p值是不允许的,可以改变对象的属性值
p.setName("李四");
p.setAge(24);
System.out.println(p.getName() + "..." + p.getAge());
method(10);
method(20);//之前method弹栈消失了
}
public static void method(final int x) { //方法声明上final修饰的
System.out.println(x);
}
}
3.final修饰变量的初始化时机
1)final修饰变量的初始化时机----有几种初始化的方法
a.显示初始化:final int num = 10;
b.在对象构造完毕前即可(构造方法初始化)
注意:
final修饰方法不可以被其他重写 public final void print() {}不希望任何方法被重写,就把类定义成final class Father{}
写了一些方法后不想让子类改变了.
例:
class Demo {
int num;
}
Demo d = new Demo();
在创建对象时,num会默认初始化值0
final修饰的值只能被赋值一次,成员变量的默认初始化值是无效值(有默认初始化值),所以一定要进行显示初始化值(赋值)(即final num = 10).若果没有进行赋值,会报错:可能尚未初始化变量num.
例:
class Demo {
final int num;
public Demo {
num = 10;//在在对象构造完毕前即可
}
}
Demo d = new Demo();
final关键字(final是最终的)的更多相关文章
- 浅析final关键字
浅析final关键字 final单词字面意思是"最终的,不可更改的".所以在java中final关键字表示终态,即最终的状态,"这个东西不能被改变". fina ...
- 抽象类、final关键字、多态
1.1 抽象类 1.1.1 抽象类概念 C extends B,B extends A,在继承过程中,形成一个继承金字塔,位于金字塔底部的类越来越具体(强大),位于塔顶的越来越抽象(简单). 例如:人 ...
- 乐字节Java继承|方法重写、super和final关键字
大家好,乐字节的小乐又来了,上一篇是:乐字节Java|JavaBean.继承与权限修饰,也是属于Java继承的,今天继续Java继承. 一. 方法的重写 父类不满足子类的要求,按需改写.注意 方法签名 ...
- 多态,向上转型,向下转型,final关键字
多态 概述 多态封装性,继承性之后,面向对象的第三大特性. 定义 多态:是指同一种行为,具有多个不同的表现形式. 生活中,比如跑的动作,猫,狗,大象跑起来的动作都是不一样的,再比如飞的动作 ...
- java自学第3期——继承、多态、接口、抽象类、final关键字、权限修饰符、内部类
一.继承: 关键字extends /* 定义一个父类:人类 定义父类格式:public class 父类名称{ } 定义子类格式:public class 子类名称 extends 父类名称{ } * ...
- 面试题系列:工作5年,第一次这么清醒的理解final关键字?
面试题:用过final关键字吗?它有什么作用 面试考察点 考察目的: 了解面试者对Java基础知识的理解 考察人群: 工作1-5年,工作年限越高,对于基础知识理解的深度就越高. 背景知识 final关 ...
- 代码块及final关键字的使用
1.代码块的作用:用来初始化类.对象 2.代码块如果有修饰的话,只能使用static. 3.分类:静态代码块 vs 非静态代码块 4.静态代码块 内部可以有输出语句 随着类的加载而执行,而且只执行一次 ...
- Java关键字final、static
一.final根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理解而需要阻止改变:设计或效率. final ...
- final关键字
1.final类不能被继承,因此final类的成员方法没有机会被覆盖,默认都是final的.在设计类时候,如果这个类不需要有子类,类的实现细节不允许改变,并且确信这个类不会再 被扩展,那么就设计为fi ...
随机推荐
- linux常用命令备忘
scp使用非默认端口 scp -P port username@.....IP:/dir 要拷贝到的地方
- 106运用SWITCH语句打印星期几的单词
package com.chongrui.test;/*运用SWITCH语句打印星期几的单词 * */ public class TypeConvertion { public static void ...
- 【Java EE 学习 71 下】【数据采集系统第三天】【分析答案实体】【删除问题】【删除页面】【删除调查】【清除调查】【打开/关闭调查】
一.分析答案实体 分析答案实体主要涉及到的还是设计上的问题,技术点几乎是没有的.首先需要确定一下答案的格式才能最终确定答案实体中需要有哪些属性. 答案格式的设计是十分重要的,现设计格式如下: 在表单中 ...
- Ubuntu 搭建SSH服务器
参考地址:https://help.ubuntu.com/community/SSH/OpenSSH/Configuring 配置文件路径:/etc/ssh/ssh_config 和 /etc/ssh ...
- SQL 谜题(硬币的组合)
问题:早在ITPUB中看过有个SQL高手,喜欢出谜题,以下是一个谜题.我试用SQL SERVER解决此问题. 用1分,5分,10分,25分,50分硬币凑成一元,总共有几种组合办法? SELECT'1* ...
- 2016ACM/ICPC亚洲区大连站-重现赛(感谢大连海事大学)(7/10)
1001题意:n个人,给m对敌对关系,X个好人,Y个坏人.现在问你是否每个人都是要么是好人,要么是坏人. 先看看与X,Y个人有联通的人是否有矛盾,没有矛盾的话咋就继续遍历那些不确定的人关系,随便取一个 ...
- 我的微信小程序入门踩坑之旅
前言 更好的阅读体验请:我的微信小程序入门踩坑之旅 小程序出来也有一段日子了,刚出来时也留意了一下.不过赶上生病,加上公司里也有别的事,主要是自己犯懒,就一直没做.这星期一,赶紧趁着这股热乎劲,也不是 ...
- .NET Remoting 应用实例
前言 项目中运用到.NET Remoting ,前段时间也看了下.NET Remoting的相关资料,感觉自己应该动手写个实例来梳理下对.NET Remoting认识和理解,不足的地方请大家指正. 简 ...
- 小规模的流处理框架.Part 1: thread pools
原文链接:http://ifeve.com/part-1-thread-pools/ 很不错的一篇文章
- HDU5838 Mountain(状压DP + 容斥原理)
题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5838 Description Zhu found a map which is a N∗M ...