黑马程序员:final、static用法总结
2014-07-10 20:30
344 查看
----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
一、静态:static
用法:是一个修饰符,用于修饰成员(成员变量或成员函数)。当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调用。格式:类名.静态成员。
static特点:
1、随着类的加载而加载。
2、被所有对象所共享。
3、优先于对象存在。
4、可以直接被类名所调用。
注意事项:
1、静态方法只能访问静态成员。
2、静态方法中不可以定义this,super关键字。
3、主函数是静态的。
二、final
1.final变量:
当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变。其初始化可以在两个地方,一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数中。这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能同时既在定义时给了值,又在构造函数中给另外的值。
当函数参数为final类型时,你可以读取使用该参数,但是无法改变该参数的值。
另外方法中的内部类在用到方法中的参变量时,此参变也必须声明为final才可使用
2.final方法
如果一个类不允许其子类覆盖某个方法,则可以把这个方法声明为final方法。
使用final方法的原因有二:
第一、把方法锁定,防止任何继承类修改它的意义和实现。
第二、高效。编译器在遇到调用final方法时候会转入内嵌机制,大大提高执行效率。
3.final类
final类不能被继承,因此final类的成员方法没有机会被覆盖,默认都是final的。在设计类时候,如果这个类不需要有子类,类的实现细节不允许改变,并且确信这个类不会载被扩展,那么就设计为final类。
----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
一、静态:static
用法:是一个修饰符,用于修饰成员(成员变量或成员函数)。当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调用。格式:类名.静态成员。
static特点:
1、随着类的加载而加载。
2、被所有对象所共享。
3、优先于对象存在。
4、可以直接被类名所调用。
注意事项:
1、静态方法只能访问静态成员。
2、静态方法中不可以定义this,super关键字。
3、主函数是静态的。
class Simple { static void go() { System.out.println("Welcome"); } } public class Cal { public static void main(String[] args) { Simple.go(); } }
二、final
1.final变量:
当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变。其初始化可以在两个地方,一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数中。这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能同时既在定义时给了值,又在构造函数中给另外的值。
当函数参数为final类型时,你可以读取使用该参数,但是无法改变该参数的值。
另外方法中的内部类在用到方法中的参变量时,此参变也必须声明为final才可使用
2.final方法
如果一个类不允许其子类覆盖某个方法,则可以把这个方法声明为final方法。
使用final方法的原因有二:
第一、把方法锁定,防止任何继承类修改它的意义和实现。
第二、高效。编译器在遇到调用final方法时候会转入内嵌机制,大大提高执行效率。
3.final类
final类不能被继承,因此final类的成员方法没有机会被覆盖,默认都是final的。在设计类时候,如果这个类不需要有子类,类的实现细节不允许改变,并且确信这个类不会载被扩展,那么就设计为final类。
class Value { int i = 1; } 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); Value v1 = new Value(); final Value v2 = new Value(); static final Value v3 = new Value(); //! final Value v4; // Pre-Java 1.1 Error: // no initializer // Arrays: final int[] a = { 1, 2, 3, 4, 5, 6 }; public void print(String id) { System.out.println( id + ": " + "i4 = " + i4 + ", i5 = " + i5); } public static void main(String[] args) { FinalData fd1 = new FinalData(); ! fd1.i1++; fd1.v2.i++; fd1.v1 = new Value(); for(int i = 0; i < fd1.a.length; i++) fd1.a[i]++; // Object isn't constant! fd1.print("fd1"); System.out.println("Creating new FinalData"); FinalData fd2 = new FinalData(); fd1.print("fd1"); fd2.print("fd2"); } }
----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
相关文章推荐
- static修饰类 及final与static用法总结
- Java关键字final, static的用法总结
- 黑马程序员-Java中static、this、super、final用法介绍
- java中的静态块static{}及this,super,final的用法总结
- Java中static和final关键字用法总结
- 黑马程序员----java中static,final,abstract的用法和区别
- java static和final的用法总结
- Java中的final和static用法总结
- java final和static用法总结
- “黑马程序员”Java中static、this、super、final用法
- static,final用法总结
- 黑马程序员_staic,final用法总结
- final 于static 用法总结
- Java关键字final,static的用法总结
- 关于Java中static和final关键字的用法总结
- Final、Static用法总结
- final和static用法的个人总结
- Java中static、this、super、final用法简谈
- Thinking:Java中static、this、super、final用法
- Java中static、this、super、final用法简谈(二)