(十一)java中final和static

      final的用法:final的意思是最终的,最后的额,不可变的,在java中也具有相似的含义。
    final修饰基础数据表示把该数据修饰成常量,意味着不可修改,不可变。
    final修饰对象的引用的时候,表示该引用不可变,但是引用的结果是可变的。这里和修饰数组相似,修饰数组的时候数组里边的内容是可变的。
    final定义的方法不可被重写,final定义的类不能被继承。
    static表示静态的,他修饰的方法和属性归类所有不属于对象,static修饰类的时候只能修饰嵌套类,static修饰的嵌套类可以被类中的静态方法调用,没有被static修饰的嵌套类就是通常所说的内部类。
    static修饰的方法中不存在this,因为static修饰的方法不依赖于任何对象就可以访问,既然没有对象,也就没有this。在静态方法中,不能访问类中的非静态成员变量和非静态成员方法,因为他们都要依赖于对象。
    需要注意的是,在非静态方法中是可以访问静态成员方法和变量的。
    最常用的static方法是main方法,在程序执行的时候没有创建对象,直接通过类名来访问。
    还需要记住的是,即使没有显示的声明为static,类的构造器实际也都是静态的。
    静态变量被所有的类共享,在内存中仅存在一个副本,也仅在类被初次加载的时候初始化一次。非静态变量归对象所有,在创建对象的时候被初始化,存在多个副本互不影响。
    static还有一个重要作用是声明一个静态代码块来优化程序的性能。static块可以存在类的任何地方,在类被初次加载的时候会被执行一次,并且仅此一次,而执行顺序与静态代码块的排列顺序一致。
    static关键字不会影响变量和方法的作用域和访问权限,static修饰的是全局变量,因此不能来修饰局部变量。
    静态方法和静态变量独立于对象,属于类,但是权限够的情况下,是可以通过对象和this来访问的。

时间: 2024-07-28 22:22:23

(十一)java中final和static的相关文章

java中final和static

final的意思是最终的,最后的额,不可变的,在java中也具有相似的含义. final修饰基础数据表示把该数据修饰成常量,意味着不可修改,不可变. final修饰对象的引用的时候,表示该引用不可变,但是引用的结果是可变的.这里和修饰数组相似,修饰数组的时候数组里边的内容是可变的. final定义的方法不可被重写,final定义的类不能被继承. static表示静态的,他修饰的方法和属性归类所有不属于对象,static修饰类的时候只能修饰嵌套类,static修饰的嵌套类可以被类中的静态方法调用,

java中final的用法

许多程序设计语言都有自己的办法告诉编译器某个数据是"常数".常数主要应用于下述两个方面: (1) 编译期常数,它永远不会改变 (2) 在运行期初始化的一个值,我们不希望它发生变化 对于编译期的常数,编译器(程序)可将常数值"封装"到需要的计算过程里.也就是说,计算可在编译期间提前执行,从而节省运行时的一些开销.在Java中,这些形式的常数必须属于基本数据类型(Primitives),而且要用final关键字进行表达.在对这样的一个常数进行定义的时候,必须给出一个值.

详解Java中final的用法_java

概念 final 具有"不可改变的"的含义,可以修饰 非抽象类.非抽象成员方法和变量. 用 final 修饰的类不能被继承,没有子类. 用 final 修饰的方法不能被子类的方法覆盖(重写). 用 final 修饰的变量表示常量,只能被赋一次值(声明变量的时候). 注: final 不能用来修饰构造方法,因为"方法覆盖"这一概念仅适用于类的成员方法,而不适用于类的构造方法,父类的构造方法和子类的构造方法之间不存在覆盖的关系,因此用final修饰构造方法没有任何意义.

java中final 变量作为方法的参数?怎么理解?见下面代码

问题描述 java中final 变量作为方法的参数?怎么理解?见下面代码 class NiMingLei { public static void main(String[] args) { Outer out= new Outer(); out.function(7); out.function(8); } } class Outer { static int y=4; void function(final int a) { class Inter { void method() { Sys

Java中final关键字详解_php技巧

谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法. 主要介绍:一.final关键字的基本用法.二.深入理解final关键字 一.final关键字的基本用法 在Java中,final关键字可以用来修饰类.方法和变量(包括成员变量和局部变量).下面就从这三个方面来了解一下final关键字的基本用法. 1.修饰类 当用final修饰一个类时,表明这个类不能

java中final修饰符实例分析_java

final修饰符: final修饰成员变量必须有程序员显示指定初始值. 类的Field:必须在静态初始化块中或声明该Field时指定初始值. 实例Field:必须在非静态初始块中,声明Field或者构造器中指定初始值. final局部变量:必须由程序员显示初始化. final修饰的基本变量和引用类型变量的区别? final修饰的基本变量:不能对基本变量重新赋值. final修饰的引用变量:只保证这个引用类型所引用的地址不会变,即 一直引用同一个对象,但这个对象完全可以发生改变. 复制代码 代码如

Java中final关键字的用法总结_java

1.final修饰类被final修饰的类不能被继承,因此final类的成员方法也不能被覆写,被final关键字修饰的类没有子类,因此类的实现细节也无法改变,无法被扩展.final类中的所有成员方法都会被隐式地指定为final方法,final类中的成员变量可以根据需要设为final. 2.final修饰方法一个类中的方法如果被final关键字修饰,则其子类无法覆写该方法,只能被子类继承.如果父类中的某个方法不想被其子类所覆写,可将该方法定义为final类型,另外,父类中的私有方法(即被privat

Java中final关键字的使用教程

final 具有"不可改变的"的含义,可以修饰 非抽象类.非抽象成员方法和变量.     用 final 修饰的类不能被继承,没有子类.    用 final 修饰的方法不能被子类的方法覆盖(重写).    用 final 修饰的变量表示常量,只能被赋一次值(声明变量的时候). 注: final 不能用来修饰构造方法,因为"方法覆盖"这一概念仅适用于类的成员方法,而不适用于类的构造方法,父类的构造方法和子类的构造方法之间不存在覆盖的关系,因此用final修饰构造方法

java中final, finally, finalize的区别

  final-修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此一个类不能既被声明为 abstract的,又被声明为final的.将变量或方法声明为final,可以保证它们在使用中不被改变.被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改.被声明为final的方法也同样只能使用,不能重载. final变量定义: 变量一经初始化就不能指向其它对象.指向的存储地址不可修改,但指向的对象本身是可以修改的. 先说fina