final变量、方法与类
学习内容:
一、final变量
1.设定为final的变量,其值不可被改变。
2.final定义的变量必须在声明时对其进行赋值操作。
3.final可以修饰对象。被修饰为final的对象,只能恒定指向一个对象。
4.一个既是final又是static的字段只占一段不能改变的存储空间。
5.定义final常量时需要用大写字母命名,并且中间使用下划线连接,这是Java中的编码规则。
下面通过一段代码区分定义为final与定义为static、final的不同:
package final相关知识;
import java.util.Random;
public class FinalStaticData {
private static Random rand=new Random();//实例化一个Random类对象
private final int a1=rand.nextInt(10);//产生一个0~10的随机数
private static final int a2=rand.nextInt(10);//产生一个0~10的随机数
public static void main(String[] args) {
FinalStaticData data1=new FinalStaticData();
System.out.println("a1产生的随机数为:"+data1.a1);
System.out.println("a2产生的随机数为:"+data1.a2);
FinalStaticData data2=new FinalStaticData();
System.out.println("a1产生的随机数为:"+data2.a1);
System.out.println("a2产生的随机数为:"+data2.a2);
}
}
运算截图:


由程序可见,每次重新实例化对象时定义为final的常量a1的值都会改变,而定义为static、final的常量a2的值不变,因为在内存中为a2开辟了一个恒定不变的区域。
二、final方法
1.定义为final的方法无法被重写。
2.定义为final的方法执行效率更高。
3.一个被private修饰的方法隐式被指定为final类型。
三、final类
1.定义为final的类不能被继承。
2.final类的语法:
final 类名{}
3.如果将某个类设置为final类型,其所有方法都被设置为final类型,但其成员变量可以自定义。
明天任务:内部类
final变量、方法与类的更多相关文章
- Java中final关键字修饰变量、方法、类的含义是什么
Java中的关键字final修饰变量.方法.类分别表示什么含义? 先看一个简单的介绍 修饰对象 解释说明 备注 类 无子类,不可以被继承,更不可能被重写. final类中的方法默认是final的 方法 ...
- 关键字final 分别修饰一个类,一个方法,一个变量,各起什么作用
关键字final 分别修饰一个类,一个方法,一个变量,各起什么作用 解答:final修饰类是不能被继承 fianl修饰方法不能在子类中被覆盖 final修饰变量,称为常量,初始化以后不能改变值.
- 面向对象编程(四)继承,概念及super关键字,final关键字,Object类常见方法
继承 概念: ① 继承背后的思想就是基于已存在的类来构建新类; ② 当从已存在类继承时,就重用了它的方法和属性,还可以添加新的方法和属性来定制新类以应对需求; ③ 当从其它类导出的类叫作子 ...
- eclipse快速查找一个变量、方法或者类被引用的地方
最近不停debug,拿到一个变量之后总是要先概览一下才好下手,之前一直用Ctrl+F来做,太麻烦.今天查了下eclipse使用,发现有快捷键,使用方法: 先双击要查看的变量.方法或者类,使之被选中,然 ...
- this、static、main方法、静态代码块、final关键字、Runtime类、Cloneable类、类成员的访问控制权限、异常体系
this表示当前对象,用在方法内部,当某对象调用该方法时,该方法中的this就代表调用该方法的对象: static关键字: 修饰类属性后,该属性就成为该类所有实例的公共属性,修改该属性值,所有的实例的 ...
- eclipse高速查找一个变量、方法或者类被引用的地方
近期不停debug,拿到一个变量之后总是要先概览一下才好下手,之前一直用Ctrl+F来做,太麻烦. 今天查了下eclipse使用,发现有快捷键,用法: 先双击要查看的变量.方法或者类,使之被选中,然后 ...
- 带有public static void main方法的类,其中的成员变量必须是static的,否则main方法没法调用。除非是main里的局部变量。因为main方法就是static的啊。
带有public static void main方法的类,其中的成员变量必须是static的,否则main方法没法调用.除非是main里的局部变量.因为main方法就是static的啊.
- JSP变量、方法和类的声明,JSP程序片,JSP表达式
参考文章 http://c.biancheng.net/view/1431.html http://c.biancheng.net/view/1433.html http://c.biancheng. ...
- [Objective-c] 002_对象 类 变量 方法
接触过Java的对面向对象应该是熟悉不过了, Objective-C也是面向对象的. 类 对象 变量 方法 Objective-c 中如何定义一个类? .h文件 #import <Foundat ...
随机推荐
- nginx之配置文件公用抽取
nginx之配置文件公用抽取 因为某些原因,需要同时部署同一应用两个不同分支的代码,而配置文件存在较大重复,因此有此篇. 最近构建的过程中遇到了一些跟nginx配置相关的问题,记录下. 简单说下构建的 ...
- ssm 框架实现增删改查CRUD操作(Spring + SpringMVC + Mybatis 实现增删改查)
ssm 框架实现增删改查 SpringBoot 项目整合 一.项目准备 1.1 ssm 框架环境搭建 1.2 项目结构图如下 1.3 数据表结构图如下 1.4 运行结果 二.项目实现 1. Emplo ...
- [强网杯2019]upload buuoj
提示:重点在这,可节省大部分时间 扫描后台 发现www.tar.gz备份文件. 这平台有429[太多请求限制]防护.dirsearch扫描一堆429.于是用了最笨的方法. 文件上传 先注册个账号 注册 ...
- Go语言 映射(map)
Go语言 映射(map) 1. 什么是 map2. 创建 map3. 访问 map4. nil map和空map5. map中元素的返回值6. len()和delete()7. 测试map中元素是否 ...
- 帝国CMS随机调用栏目
[e:loop={'select * from [!db.pre!]enewsclass where bclassid in(1) order by rand() desc limit 10',10, ...
- python入门基础—安装
说明:0基础,那就先练习python语言基础知识,等基础知识牢固了,再对各开发平台分别进行介绍.这里只介绍两个简单而又容易搭建开发平台Anaconda和pycharm Anaconda是一个开源的Py ...
- 【洛谷】P4555 [国家集训队]最长双回文串
P4555 [国家集训队]最长双回文串 题源:https://www.luogu.com.cn/problem/P4555 原理:Manacher 还真比KMP好理解 解决最长回文串问题 转化为长度为 ...
- Java语言学习day30--8月5日
###10String类的其他方法 * A:String类的其他方法 * a: 方法介绍 * int length(): 返回字符串的长度 * String substring(int beginIn ...
- 发布nuget包的正确姿势---cicd自动打包发布nuget包
最轻便的发布nuget包方式,方便cicd自动打包发布nuget包 首先新建项目 项目名随便取,这里就叫它GuiH.ClassLibrary 默认即可,需要改目标版本时,等创建好再改 项目创建好了 随 ...
- svelte组件:svelte3自定义桌面PC端对话框组件svelte-layer
基于Svelte3.x开发pc网页版自定义弹窗组件svelteLayer. svelte-layer:基于svelte.js轻量级多功能pc桌面端对话框组件.支持多种弹窗类型.30+参数随意组合配置, ...