11. JavaSE-Final关键字详解

Final关键字:

Final 可以修饰类、方法、变量

Final修饰的类不可以被继承

Final修饰的方法不可以被覆盖

Final修饰的变量是一个常量,只能被赋值一次

内部类只能访问被final修饰的局部变量

继承弊端:

打破了封装性,而final可以可以解决乱用继承的情况。

为什么要用final修饰变量?

其实在程序如果一个数据是固定的,那么直接使用这个数据就可以了,但是这样这样阅读性差,所

以他给数据起个名称,而且这个变量名称的值不能变化,所以加上final固定。

写法规范:

常量所有字母都大写,多个单词,中间用下划线连接

时间: 2024-11-16 10:40:50

11. JavaSE-Final关键字详解的相关文章

static与final关键字详解

接口(interface):接口的地位等同于class.接口中的所有方法都是抽象方法.在声明接口中的方法时,可以使用abstract关键字,也可以不使用.通常情况下,都会省略掉abstract关键字. 可以将接口看作特殊的抽象类(抽象类可以有具体方法,也可以有抽象方法,而接口中只能有抽象方法,不能有具体方法). 类可以实现接口.实现用implements表示,代表了某个类实现了某个接口. 一个类实现了某个接口,那么该类必须要实现接口中声明的所有抽象方法.如果该类是抽象类,那么就无需实现接口中的方

Java内部类与final关键字详解

一.内部类的几种创建方法: 1.成员内部类 class Outer{ private int i = 1; class Inner{ public void fun() {System.out.println("Outer I=" + i)} } } 2.方法内部类 class Outer{ public void fun() { final int i = 1; // 被方法内部类访问的局部变量必须被final修饰 class Inner{ // 方法内部类 不能有访问修饰符,比如p

Java8中的final关键字详解

final修饰类 当用final去修饰一个类的时候,表示这个类不能被继承. 将类定义成final后,结果只是禁止被继承.由于禁止了继承,所以一个final类中的所有方法都默认为final. 在自己设计一个类的时候,要想好这个类将来是否会被继承,如果可以被继承,则该类不能使用fianl修饰,在这里呢,一般来说工具类我们往往都会设计成为一个fianl类.在JDK中,String被设计为final类型. public final class Feige { public final void say(

final关键字详解

final变量,如果是基本数据类型,则其数值一旦初始化后就不能被改变.如果是引用类型的变量,则对其初始化后,便不能再指向另一个对象,但是其里面的值是可以改变的.引用变量所指向的对象中的内容是可以改变的. final 变量: final 变量能被显式地初始化并且只能初始化一次.被声明为 final 的对象的引用不能指向不同的对象.但是 final 对象里的数据可以被改变.也就是说 final 对象的引用不能改变,但是里面的值可以改变. final 修饰符通常和 static 修饰符一起使用来创建类

java关键字详解

Java关键字及其作用 目录 Java关键字及其作用--- 1 一.     关键字总览:2 二.     详细解释--- 3 1.访问控制--- 3 1)私有的-- 3      private 2)受保护的-- 3      protected 3)公共的-- 3      public 2.类.方法和变量修饰符--- 3 1)声明抽象-- 3      abstract 2)类-- 4      class 3)继承.扩展-- 4      extends 4)最终.不可改变-- 4   

php关键字详解

1.abstract:修饰抽象类,抽象方法,不可以被实例化 2.extends:继承父类中的所有属性和方法 3.implements:使用接口,一个类只能继承一个类,但可以使用多个接口,接口中的方法全部为抽象方法,使用时,必须全部实现; 4.interface:定义接口类; 5.define:定义全局常量;  define("student", "chen"); 6.const:只能修饰类中的常量; const COUNTRY = "china"

Delphi 关键字详解

absolute//它使得你能够创建一个新变量, 并且该变量的起始地址与另一个变量相同. var   Str: string[32];   StrLen: Byte absolute Str; //这个声明指定了变量StrLen起始地址与Str相同. //由于字符串的第0个位置保存了字符串的长度, 所以StrLen的值即字符串长度. begin   Str := 'abc';   Edit1.Text := IntToStr(StrLen); end; abstract//它允许你创建抽象的方法

Java 多线程(六) synchronized关键字详解

Java 多线程(六) synchronized关键字详解 多线程的同步机制对资源进行加锁,使得在同一个时间,只有一个线程可以进行操作,同步用以解决多个线程同时访问时可能出现的问题. 同步机制可以使用synchronized关键字实现. 当synchronized关键字修饰一个方法的时候,该方法叫做同步方法. 当synchronized方法执行完或发生异常时,会自动释放锁. 下面通过一个例子来对synchronized关键字的用法进行解析. 1.是否使用synchronized关键字的不同 例子

Java基础11:Java泛型详解

Java基础11:Java泛型详解 泛型概述 泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用. 什么是泛型?为什么要使用泛型? 泛型,即"参数化类型".一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参.那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参). 泛型的本质是为了参数化类型(在不创建新的类型的

C#关键字详解第二节

base:基类 在有些书中base的解释为表示父类,没错,base可以表示父类,但我更想理解成基类,因为更原始更具象,既 然是类,那么他就符合面向对象的设计规则和特点,我们知道面向对象的三个特点是封装,继承和多态!而 base就是对于多态最合理的定义,因为基类衍生出了其他类,而这里的衍生就是多态的体现,一般来说base在 派生类(子类)中访问重写的基类成员,当然基类访问只能在构造函数,实例方法或实例属性访问器中进行. 下面看例子 namespace base关键字 { class Program