博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java之final
阅读量:6969 次
发布时间:2019-06-27

本文共 1911 字,大约阅读时间需要 6 分钟。

我们先看一道面试题:

  请问 final 的含义是什么?可以用在哪里?其初始化的方式有哪些?

首先我们回答一下这道题,然后再探究其所以然。 

    1、final 表示“最终的”、“不可改变的”,意指其修饰类不可以被继承或修饰的属性的值不可改变。

  2、final 既可以修饰类,也可以修饰属性。
  3、final 变量可以直接初始化值,也可以在构造方法中初始化值,但是二者只可选其一。

好了!现在我们已经知道了答案了,那咱们就来一一验证吧!

1、直接初始化属性值,类不可被继承:

package com.smbea.demo; import org.junit.Test; /** * final 修饰属性并并直接初始化 * 此类不可被继承 * @author hapday */public final class FinalDemo2 {    final int num = 9;         @Test    public void finalTest() {//      this.num = 7;   // 这一句之所以注释是因为报 The final field FinalDemo2.num cannot be assigned 的错误        System.out.println(this.num);  // 输出结果:9    }}

2、通过构造器为 final 的变量初始化:

package com.smbea.demo; /** * final 修饰属性并通过构造器初始化 * @author hapday */public class FinalDemo {    final int num ;         public FinalDemo(int num) {        System.out.println("无参构造器");        this.num = num;        System.out.println(this.num);    }         public static void main(String[] args) {        new FinalDemo(8);    }}

 

 

我们先看一道面试题:

  请问 final 的含义是什么?可以用在哪里?其初始化的方式有哪些?

首先我们回答一下这道题,然后再探究其所以然。 

    1、final 表示“最终的”、“不可改变的”,意指其修饰类不可以被继承或修饰的属性的值不可改变。

  2、final 既可以修饰类,也可以修饰属性。
  3、final 变量可以直接初始化值,也可以在构造方法中初始化值,但是二者只可选其一。

好了!现在我们已经知道了答案了,那咱们就来一一验证吧!

1、直接初始化属性值,类不可被继承:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package 
com.smbea.demo;
 
import 
org.junit.Test;
 
/**
 
* final 修饰属性并并直接初始化
 
* 此类不可被继承
 
* @author hapday
 
*/
public 
final 
class 
FinalDemo2 {
    
final 
int 
num = 
9
;
     
    
@Test
    
public 
void 
finalTest() {
//      this.num = 7;   // 这一句之所以注释是因为报 The final field FinalDemo2.num cannot be assigned 的错误
        
System.out.println(
this
.num);  
// 输出结果:9
    
}
}

 

 2、通过构造器为 final 的变量初始化:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package 
com.smbea.demo;
 
/**
 
* final 修饰属性并通过构造器初始化
 
* @author hapday
 
*/
public 
class 
FinalDemo {
    
final 
int 
num ;
     
    
public 
FinalDemo(
int 
num) {
        
System.out.println(
"无参构造器"
);
        
this
.num = num;
        
System.out.println(
this
.num);
    
}
     
    
public 
static 
void 
main(String[] args) {
        
new 
FinalDemo(
8
);
    
}
}

  

转载地址:http://wyssl.baihongyu.com/

你可能感兴趣的文章
Codeforces 556D - Case of Fugitive
查看>>
Codeforces 932D - Tree
查看>>
BZOJ 1010: [HNOI2008]玩具装箱toy
查看>>
django之路由分发
查看>>
51nod1832 先序遍历与后序遍历
查看>>
MD5 带salt 加密
查看>>
13 用Css做下拉菜单
查看>>
homework-01
查看>>
修改WAMPServer中MySql中文乱码的方法
查看>>
【下载】推荐一款免费的人脸识别SDK
查看>>
不定参数
查看>>
浏览器各种距离
查看>>
使用Python读取Google Spreadsheet的内容并写入到mangodb
查看>>
DOM操作和jQuery实现选项移动操作
查看>>
[emuch.net]MatrixComputations(1-6)
查看>>
ByteArrayOutputStream用法
查看>>
Floyed那些事~~~~~
查看>>
Python 学习笔记1 安装和IDE
查看>>
H5新增标签
查看>>
日志分析
查看>>