final变量、方法、类
2016-06-06 16:07
274 查看
final关键字用于声明变量,该变量被设定,就不能在改变变量的值。通常final定义的变量为常量。
比如:fianl double PI=3.14;
此时,它的值就是3.14,程序不能再次为final赋值.
final关键字定义的变量必须在声明时对其进行赋值操作,final除了可以修饰基本数据类型的常量,还可以修饰对象引用.final可以修饰数组,被修饰的数组被看作一个对象来引用,一旦被final修饰的对象,只能恒定指向一个对象,无法改变以指向另一个对象.既是static又是final的字段只占据不能改变的储存空间.
final方法
1.final的方法不能被重写.
2.final类型可以防止子类修改该类的定义与实现方式,同时定义为final方法的执行效率要高于非final方法.
3.被定义为private修饰符,子类无法访问该方法,自然无法覆盖该方法,所以一个定义为private的方法隐式被指定为final类型.
final类
1.final的类不能被继承
语法: final 类名{ }
如果将类设置为final形式,则类中的所有方法都会被隐式设置为final形式,但是final类中的成员变量可以被定义为final或final形式.
比如:fianl double PI=3.14;
此时,它的值就是3.14,程序不能再次为final赋值.
final关键字定义的变量必须在声明时对其进行赋值操作,final除了可以修饰基本数据类型的常量,还可以修饰对象引用.final可以修饰数组,被修饰的数组被看作一个对象来引用,一旦被final修饰的对象,只能恒定指向一个对象,无法改变以指向另一个对象.既是static又是final的字段只占据不能改变的储存空间.
package com.java.six; import java.util.Random; public class FinalStaticData { private static Random random=new Random();//实例化一个Random对象 //随机产生0~10之间的随机数并赋值定义为final的a1 private final int a1=random.nextInt(10); //随即产生0~10之间的随机数定义为static final的a2 private static final int a2=random.nextInt(10); private static void main(String[]args){ FinalStaticData fdata=new FinalStaticData();//实例化一个对象 //调用定义为final的a1 System.out.println("重新实例化对象调用a1的值:"+fdata.a1); //调用定义为final的a2 System.out.println("重新实例化对象调用a1的值:"+fdata.a2); //实例化另一个对象 FinalStaticData fdata2=new FinalStaticData(); System.out.println("重新实例化对象调用a1的值:"+fdata.a1); System.out.println("重新实例化对象调用a2的值:"+fdata.a2); } }
final方法
1.final的方法不能被重写.
2.final类型可以防止子类修改该类的定义与实现方式,同时定义为final方法的执行效率要高于非final方法.
3.被定义为private修饰符,子类无法访问该方法,自然无法覆盖该方法,所以一个定义为private的方法隐式被指定为final类型.
class Parents{ private final void doit(){ System.out.println("父类.doit()"); } final void doit2(){ System.out.println("父类.doit2()"); } final void doit3(){ System.out.println("父类.doit3()"); } } class Sub extends Parents{ public final void doit(){//在子类中定义一个doit()方法 System.out.println("子类.doit()"); } // final void doit2(){ // System.out.println("子类.doit2()"); // } final void doit3(){ System.out.println("子类.doit3()"); } } public class FinalMeyhod{ public static void main(String[]args){ Sub s=new Sub();//实例化 s.doit();//调用doit()方法 Parents p=s;//执行向上转型操作 p.doit(); p.doit(); } }
final类
1.final的类不能被继承
语法: final 类名{ }
如果将类设置为final形式,则类中的所有方法都会被隐式设置为final形式,但是final类中的成员变量可以被定义为final或final形式.
final class FinalClass{ int a=3; void doit(){ } public static void main(String args[]){ FinalClass f=new FinalClass(); f.a++; System.out.println(f.a); } }
相关文章推荐
- AnyDVD & AnyDVD HD v6.1.3.3 Final 多国语言版 下载
- 暴风影音II V2.4 Final 【万能播放器】下载
- FTP服务器端软件Serv-U FTP Server 6.4.0.5&0.4 Final 汉化版 下载
- Android源码中final关键字的用法及final,finally,finalize的区别
- PHP面向对象的进阶学习(抽像类、接口、final、类常量)
- php面向对象全攻略 (十) final static const关键字的使用
- jdk中String类设计成final的原由
- java面向对象基础_final详细介绍
- Java final static abstract关键字概述
- 详解C++成员函数的override和final说明符的用法
- php类中的$this,static,final,const,self这几个关键字使用方法
- java 中的static关键字和final关键字的不同之处
- java final 和instanceof 关键字的区别
- 深入解析Java编程中final关键字的使用
- JAVA中的final关键字用法实例详解
- Java修饰符 abstract,static,final 的区别详解
- Java中final变量使用总结
- java关键字final使用方法详解
- 详解Java中final的用法
- Java中的final关键字详细介绍