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是最终的)的更多相关文章

  1. 浅析final关键字

    浅析final关键字 final单词字面意思是"最终的,不可更改的".所以在java中final关键字表示终态,即最终的状态,"这个东西不能被改变". fina ...

  2. 抽象类、final关键字、多态

    1.1 抽象类 1.1.1 抽象类概念 C extends B,B extends A,在继承过程中,形成一个继承金字塔,位于金字塔底部的类越来越具体(强大),位于塔顶的越来越抽象(简单). 例如:人 ...

  3. 乐字节Java继承|方法重写、super和final关键字

    大家好,乐字节的小乐又来了,上一篇是:乐字节Java|JavaBean.继承与权限修饰,也是属于Java继承的,今天继续Java继承. 一. 方法的重写 父类不满足子类的要求,按需改写.注意 方法签名 ...

  4. 多态,向上转型,向下转型,final关键字

    多态 概述   多态封装性,继承性之后,面向对象的第三大特性. 定义   多态:是指同一种行为,具有多个不同的表现形式.   生活中,比如跑的动作,猫,狗,大象跑起来的动作都是不一样的,再比如飞的动作 ...

  5. java自学第3期——继承、多态、接口、抽象类、final关键字、权限修饰符、内部类

    一.继承: 关键字extends /* 定义一个父类:人类 定义父类格式:public class 父类名称{ } 定义子类格式:public class 子类名称 extends 父类名称{ } * ...

  6. 面试题系列:工作5年,第一次这么清醒的理解final关键字?

    面试题:用过final关键字吗?它有什么作用 面试考察点 考察目的: 了解面试者对Java基础知识的理解 考察人群: 工作1-5年,工作年限越高,对于基础知识理解的深度就越高. 背景知识 final关 ...

  7. 代码块及final关键字的使用

    1.代码块的作用:用来初始化类.对象 2.代码块如果有修饰的话,只能使用static. 3.分类:静态代码块 vs 非静态代码块 4.静态代码块 内部可以有输出语句 随着类的加载而执行,而且只执行一次 ...

  8. Java关键字final、static

    一.final根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理解而需要阻止改变:设计或效率. final ...

  9. final关键字

    1.final类不能被继承,因此final类的成员方法没有机会被覆盖,默认都是final的.在设计类时候,如果这个类不需要有子类,类的实现细节不允许改变,并且确信这个类不会再 被扩展,那么就设计为fi ...

随机推荐

  1. 3dmax导出到blend或者vs中

    使用3dmax将模型导成obj格式的时候,可以导出材质或者不导出. 1.如果不导出,则按下图不勾选导出材质和创建材质库选项.这样生成的obj是可以直接再blend或者vs中打开的. 2.如果导出,不仅 ...

  2. Arcgis与CityEngine安装破解

    Arcgis与CityEngine共存,实现同时破解 作为一个GIS背景的技术人员,以前安装了无数次的Arcgis DeskTop,到了新公司后,今天主管让我学习下CityEngine,学渣的我之前没 ...

  3. CentOS7 下ifconfig command not found解决办法

    今天尝鲜用VMWare安装了CentOS7,选择了最小安装包模式,安装完毕之后想查看一下本机的ip地址,发现报错 # ifcon -bash: ifconfig: command not found ...

  4. AspNetPager分页控件的使用

    下面所记得东西仅仅是使用方法,详细知识点请看链接:http://www.webdiyer.com/Controls/AspNetPager/Downloads 首先:从网站上下载并安装控件 下载地址: ...

  5. iOS自动检测版本更新

    虽然苹果官方是不允许应用自动检测更新,提示用户下载,因为苹果会提示你有多少个软件需要更新,但是有的时候提示用户一下有新版还是很有必要的. 首先说一下原理: 每个上架的苹果应用程序,都会有一个应用程序的 ...

  6. DBCP连接池

    方法一: package DBCPUtils; import java.util.List;import java.util.Properties; import javax.sql.DataSour ...

  7. 浅谈redis和memcached的区别

    缓存技术方面说到redis大家必然会联想到memcached,了解它们的人应该都知道以下几点吧 redis与 memcached相比,redis支持key-value数据类型,同事支持list.set ...

  8. 判断是否为gif/png图片的正确姿势

    判断是否为gif/png图片的正确姿势 1.在能取到图片后缀的前提下 1 2 3 4 5 6 7 8 9 //假设这是一个网络获取的URL NSString *path = @"http:/ ...

  9. mongodb防火墙配置

    http://ruby-china.org/topics/20128 https://docs.mongodb.com/manual/tutorial/configure-linux-iptables ...

  10. C#设置IE代理及遇到问题的解决方案

    起初使用的方法是修改完一次代理之后就不能继续修改,需要重新启动一次进程才可以,最初代码是: private void ShowProxyInfo() { if (!GetProxyStatus()) ...