final

java final static 和final区别

两盒软妹~` 提交于 2020-03-17 00:26:09
static 和非static 之间的差异,只有当值在运行期间初始化的前提下,这种差异才会揭示出来。因为编译期间的值被编译器认为是相 同的。 package thinking; public class FinalData { // Can be compile-time constants final int i1 = 9; static final int I2 = 99; // Typical public constant: public static final int I3 = 39; // Cannot be compile-time constants: final int i4 = (int)(Math.random()*20); static final int i5 = (int)(Math.random()*20); public void print(String id) { System.out.println( id + ": " + "i4 = " + i4 + ", i5 = " + i5); } public static void main(String[] args) { FinalData fd1 = new FinalData(); FinalData fd2 = new FinalData(); fd1.print("fd1");

final关键字

假装没事ソ 提交于 2020-03-17 00:24:17
final可以修饰类、方法、属性和变量 final修饰类,该类不可以被继承 final修饰方法,方法不可以被子类重写 final修饰属性,属性不会进行隐式初始化,只能被显式初始化或者在构造方法中赋值,而且只能二选一,因为只能被赋值一次。当选择构造器中赋值,如果有多个构造器,则每个构造器都要赋值,否则编译不通过。 final修饰变量,变量值只能被赋一次,即为常量 来源: https://www.cnblogs.com/lexuexi/p/8531766.html

L2 Cracia Final Update1 OpCodz

徘徊边缘 提交于 2020-03-17 00:23:37
[87] Gracia Final Update 1 Client 00 SendLogOut 01 RequestAttack 03 RequestStartPledgeWar 04 RequestReplyStartPledgeWar 05 RequestStopPledgeWar 06 RequestReplyStopPledgeWar 07 RequestSurrenderPledgeWar 08 RequestReplySurrenderPledgeWar 09 RequestSetPledgeCrest 0B RequestGiveNickName 0C RequestCharacterCreate 0D RequestCharacterDelete 0E SendProtocolVersion 0F MoveBackwardToLocation 10 Say 11 RequestEnterWorld 12 RequestGameStart 13 RequestNewCharacter 14 RequestItemList 15 RequestEquipItem 16 RequestUnEquipItem 17 RequestDropItem 19 RequestUseItem 1A RequestTrade 1B RequestAddTradeItem 1C

关键字final、static应用及介绍

浪尽此生 提交于 2020-03-10 10:19:56
1、final关键字 1.1、概述 在java中,为了不随意更改API提供的内容,为了避免这种随意更改的情况,java提供了 final 关键字,用于修饰 不可改变 内容 final :不可改变。可以用于修饰类、方法和变量。 类:被修饰的类,不能被继承。 方法:被修饰的方法,不能被重写。 变量:被修饰的变量,不能被重新赋值。 1.2 使用方式 修饰类 格式如下: final class 类名 { } 查询API发现像 public final class String 、 public final class Math 、 public final class Scanner 等,很多我们学习过的类,都是被final修饰的,目的就是供我们使用,而不让我们所以改变其内容。 修饰方法 格式如下: 修饰符 final 返回值类型 方法名(参数列表) { //方法体 } 注意:重写被 final 修饰的方法,编译时就会报错。 修饰变量 局部变量–基本数据类型 基本数据类型的局部变量,被final修饰之后,只能被赋值一次,不能再被改变。 public class FinalDemo1 { public static void main ( String [ ] args ) { // 声明变量,使用final修饰 final int a ; // 第一次赋值 a = 10 ; //

Java中的修饰符

孤街醉人 提交于 2020-03-07 17:17:53
修饰符分类:   权限修饰符:private,默认的,protected,public   状态修饰符:static,final   抽象修饰符:abstract 1. 类 可以使用哪些修饰符? (主要使用public修饰类)   权限修饰符:默认的,public   状态修饰符:final   抽象修饰符:abstract 2. 成员变量 可以使用哪些修饰符? (主要使用private修饰变量)   权限修饰符:private,默认的,protected,public   状态修饰符:static,final   抽象修饰符:不允许使用 3. 构造方法 可以使用哪些修饰符?(主要使用public修饰构造方法)   权限修饰符:private,默认的,protected,public   状态修饰符:不允许使用   抽象修饰符:不允许使用 4. 成员方法 可以使用哪些修饰符? (主要使用public修饰成员方法)   权限修饰符:private,默认的,protected,public   状态修饰符:static,final   抽象修饰符:abstract   其他组合:   成员变量:public static final   成员方法:public static        public abstract        public final  来源: https:/

Java中内部类

那年仲夏 提交于 2020-03-03 21:23:32
1.四种内部类:成员内部类、局部内部类、匿名内部类和静态内部类。 2.成员内部类 2.1成员内部类可以无条件访问外部类的所有成员属性和成员方法(包括private成员和静态成员)。 2.2成员内部类 隐藏现象 不过要注意的是,当成员内部类拥有和外部类同名的成员变量或者方法时,会发生隐藏现象,即默认情况下访问的是成员内部类的成员。如果要访问外部类的同名成员,需要以下面的形式进行访问: 1 2 外部类. this .成员变量 外部类. this .成员方法   虽然成员内部类可以无条件地访问外部类的成员,而外部类想访问成员内部类的成员却不是这么随心所欲了。在外部类中如果要访问成员内部类的成员,必须先创建一个成员内部类的对象,再通过指向这个对象的引用来访问: 2.3内部类可以拥有private访问权限、protected访问权限、public访问权限及包访问权限。 2.4为什么成员内部类可以无条件访问外部类的成员? 编译器会默认为成员内部类添加了一个指向外部类对象的引用,虽然我们在定义的内部类的构造器是无参构造器,编译器还是会默认添加一个参数,该参数的类型为指向外部类对象的一个引用,所以成员内部类中的Outter this&0 指针便指向了外部类对象,因此可以在成员内部类中随意访问外部类的成员。从这里也间接说明了成员内部类是依赖于外部类的,如果没有创建外部类的对象,则无 法对Outter

Java中final与static的使用

一世执手 提交于 2020-03-02 06:52:16
Final关键字 根据使用环境不同,final的含义会有细微的区别,但通常是指无法改变的内容。final关键字可以修饰变量、方法和类。 Final变量 final数据是用来向编译器告知变量是恒定不变的。对使用基本类型数据的常量,在定义时必须对其赋值。一个既是static又是final的域只会占据一段不能改变的存储空间。当对象使用引用而不是基本类型时使用final修饰,final使引用恒定不变,但其引用的内容可变。 空白的final允许的,但在使用前必须初始化,一旦初始化,将不能再更改。一般应用于类中,在定义处或构造方法中初始化。方法的参数也可以被final修饰,final参数不能更改参数引用指定的对象,主要用来向匿名内部类传递数据。 接口中定义的域不能是空白final的,因为接口中的域都是static final,所以必须在定义时进行初始化。其他位置的static final也一样。 Final方法 final方法的使用原因有两个: 锁定方法,防止继承类修改和覆盖方法。 加强效率,将调用转换为内嵌,该条仅限于小方法使用。 类中所有私有方法都隐式的指定为final的,虽然可以给私有方法加final修饰,但不会有任何意义。 Final类 final类表示该类无法被继承。final类中的域可根据选择是否成为final域,但类中的方法都将隐式的指定为final的

浅谈java中的static关键字

不问归期 提交于 2020-02-25 23:32:55
学习自: http://www.cnblogs.com/dolphin0520/p/3799052.html static 关键字主要有两种作用: 第一,为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关。比如一些常量 第二,实现某个方法或属性与类而不是对象关联在一起 具体而言,在Java语言中,static主要有4中使用情况:成员变量、成员方法、代码块和内部类 举例:下面的单例模式方法中为什么要用static修饰符来修饰getInstance方法。可以在不用创建对象Singlteon的时候直接通过 Singleton1.getInstance();实现此方法。 package Singleton; /** * Created by hanzhixiong on 2017/10/9. */ public class Singleton1 { private static Singleton1 instance ; //private Singleton1(){};// 构造类 public static Singleton1 getInstance(){ if ( null == instance ){ instance = new Singleton1(); } return instance ; } } importSingleton.Singleton1;

千锋逆战班 java学习day17

房东的猫 提交于 2020-02-25 19:52:46
在千锋“逆战”学习第17天 努力的最大好处在于:你可以选择自己想过的生活 三、final 1、final可修饰的内容: 类(最终类) 方法(最终方法) 变量(最终变量) 2、final修饰类:此类不能被继承 String、Math、System均为final修饰的类,不能被继承 3、final修饰方法:此方法不能被覆盖 意为最终方法,不支持子类以覆盖的形式修改 4、final修饰变量:此变量值不能被改变(常量) 【注】所有final修饰的变量只能赋值一次,值不允许改变 package com.qf.day17.t1.finalkeyword; public class TestFinalKeyword { public static void main(String[] args) { final int A=10;//最终变量-->常量 A=20;//无法为final修饰的最终变量进行二次赋值 } } /*final*/ class Super{//最终类 public /*final*/ void method(){//最终方法 } } class Sub extends Super{//不能继承Super类 public void method(){//不能覆盖method方法 } } 5、实例常量 实例常量不再提供默认值,必须手动赋予初始值 赋值时机

JAVAEE第五章 final 权限修饰(public private proteced) 内部类

一世执手 提交于 2020-02-22 12:14:14
学习内容 final修饰类的使用 final修饰方法的使用 权限修饰(public private protected default)的作用域 内部类概念及使用 引用类型作为成员变量 引用类型作为传入参数 引用类型作为返回值类型 第一节 final关键字 概述 子类可以继承父类,同时子类可以修改父类中的成员变量也可以重写父类的方法,由此带的问题是安全问题,当我们不想让任何类修改变量和方法的时候,可以用final关键. final可以修饰类、变量、方法 1- 被修饰的类不能被继承 2- 被修饰的方法不能重写 3- 被修饰的成员变量不能再修改 使用格式 修饰类 final class 类名{} 修饰方法 修饰符 final 返回值类型 方法名(参数){} 修饰变量 修饰基本类型的话,变量只能赋值一次,再次赋值会报错. 修饰引用类型的话,同一个变量只能指向同一个对象地址,不能再次赋值 大部分我们是用来修饰引用变量 //修饰基本类型 final int num = 1 ; num = 2 ; //再次赋值报错 final User user = new User ( "张三" ) ; user = new User ( "李四" ) ; //在new一个新的User对象会报错 小贴士:一般被final修饰的变量,都用大写来表示 第二节权限修饰符 概述 JAVA提供给了四种权限修饰符 1