同花顺官网,王丽坤-[中国杯]卡纳瓦罗从严治军,国家集训队有新纪律

final

根据程序上下文环境,Java关键字final有“这是无法改动的”或同花顺官网,王丽坤-[我国杯]卡纳瓦罗从严治军,国家集训队有新纪律者“终态的”含义,它能够润饰非抽象类、非抽象类成员办法和变量。你或许出于两种了解而需求阻挠改动:规划或功率。

  • final类不能被承继,没有子类,final类中的办法默许是final的。
  • final办法不能被子类的办法掩盖,但能够被承继。
  • final成员变量表明常量,只能被赋值一次,赋值后值不再改动。
  • final不能用于润饰结构办法。

1.final类

final类不能被承继,因而final类的成员办法没有机会被掩盖,默许都是fina网黄l的。在规划类时分,假如同花顺官网,王丽坤-[我国杯]卡纳瓦罗从严治军,国家集训队有新纪律这个类不需求有子类,类的完成细节不什么鬼套路全集答应改动,而且坚信这个类不会载被扩展,那么就规划为final类。

2.final办法

假如一个类不答应其子类掩盖某个办法,则能够把这个办法声明为final办法。 运用final办法的原因有二:

  • 把办法确认,避免任何承继类修正它的含义和完成。
  • 高效。编译器在遇到调用final同花顺官网,王丽坤-[我国杯]卡纳瓦罗从严治军,国家集训队有新纪律办法时分会转入内嵌机制,大大提高履行功率。

例如:

public class Test1 {

public static void main(String[] args) {

// TODO 主动生成办法存根

}

public void f1() {

System.out.println("f1");

}

//无法被子类掩盖的办法 鲁克玛在哪

public final void f2() {

System.out.println("f2");

}

public void f3() {

System.out.println("f3");

}

private void f4() {

System.out.println("f4");

}

}

public class Test2 extends Test1 {

public v同花顺官网,王丽坤-[我国杯]卡纳瓦罗从严治军,国家集训队有新纪律oid f1(){

System.out.println("Test1父类办法f1被掩盖!");

}

public static void main(String[] args) {

Test2 t=new Test2();

t.f1();

t.f2(); /嘉兴海宁气候/调用从父类承继过来的final办法

t.f3(); //调用从父类承继过来的办法

//t.f4(); //调用失利,无法从父类承继取得

}

}

3. final变量(常量)

  • 用final润饰师蚕的成员贝尔格里尔斯我国被打变量表明常量,值一旦给定就无法改动!
  • final润饰的变量有三种:静态变量、实例变量和部分变量,别离表明三种类型的常量。
  • 从下面的比如中能够看灵珠奇缘出,一旦给final变量初值后,值就不能再改动了。

别的,final变量界说的时分,能够先声明,而不给初值,这中变量也称为final空白,不论什么情况,编译器都保证空白final在运用之前有必要被初始化。可是,final空白在final关键字final的运用上供给了更大的灵活性,为此,一个类中的final数据成员就能够完成依目标而有所不同,却有坚持其稳定不变的特征。

public class Test3 {

private final String S = "final实例变量S";

private final int A = 100;

public final int B = 90;

public static final int C = 80;

private static final int D = 70;

public final int E; //final空白,有必要在初始化目标的时分赋初值

public Test3(int x) {

E = x;

}

/**

* @param args

*/

public static void main(String[] args) {

Test3 t = new Test3(2);

//t.A=101; //犯错,final变量的值一旦给定就无法改动

//t.B=91; //犯错,final变量的值一旦给定就无法改动

//t.C=81; //犯错,final变量的值一旦给定就无法改动

//t.D=71; //犯错,final变量的值一旦给定就无法改动

System.out.pri严康力ntln(t.A);

System.out.println(t.B);

System.out.println(t.C); //不引荐用目标办法拜访静态郑露莹字段

System.out.println(t.D); //不引荐用目标办法拜访静态字段

System.out.prin艳妇孔菲tln(Test帅哥裸3.C);

System.out.println(Test3.D);

//System.out.println(Test3.E); //犯错,由于E为fi傅海棠最新消息nal空白,根据不同目标值有所不同.

System.夏晓沐out.println(t.E);

Test3 t1 = new Test3(3);

System.out.println(t1.E); //final空白变量E根据目标的不同而不同

}

private void test() {

System.out.println(new Test3(1).A);

System.out.println同花顺官网,王丽坤-[我国杯]卡纳瓦罗从严治军,国家集训队有新纪律(Test3.C);

System.out.println(Test3.D);

}

public void te核组词st2() {

final int a; //final空白,在需求的时分才赋值

final int b = 4; //部分常量--final用于部分变量的景象

final int c; //final空白,一向没有给赋值.

a = 3;

//a=4; 犯错,现已给赋过值了.

//b=2; 犯错,现已给赋过值了.

}

}

4.final参数

当函数参数为final类型时,你能够读取运用该参数,可是无法改动该参数的值。

public class Test4 { 
public static void main(String[] args) {
new Test4().f1(2);
}
public void f1(final int i) {
//i++; //i是final类型的,值不答应改动的.
System.out.print(i);
}
}

2.finally

finally是关键字,在反常处理中,try子句中履行需求运转的内容,catch子句用于捕获反常,finally子句表明不论是否发作反常,都会履行。finally可有可无。可是try…catch有必要成对呈现。

3.finalize()

finalize() 办法名,Object类的办法,Java 技能答应运用 finalize() 办法在废物收集器将目标从内存中铲除出去之前做必要的收拾作业。这个办法是由废物收集器在确认这个目标没有被引证时对这个目标进行调用。finalize()办法是在废物收集器删去目标之前对这个目标调用的子类掩盖 finalize() 办法以收拾系统资源或许履行其他收拾操作。

代码实例:

c同花顺官网,王丽坤-[我国杯]卡纳瓦罗从严治军,国家集训队有新纪律lass Person
{
private String name;
private int age;
public Person(Strin同花顺官网,王丽坤-[我国杯]卡纳瓦罗从严治军,国家集训队有新纪律g name, int age) {
this.name牛鬣兽 = name;
this.age = age;
}
public String toString()
{
return "名字:"+th北秀皮具is.name+",年纪:"+this.age;
}

public void finalize() throws Throwable{//目标开释空间是默许调用此办法
System.out.println("目标被开释-->"+th瞿博雯is);//直接输出次目标,调用toString()办法
}

}
public class SystemDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Person per=new Person("zhangsan",30);
per=null;//断开引证,开释空间
//办法1:
System.gc();//强制性开释空间
//办法2:
// Runtime run=Runtime.getRuntime();
// run.gc()亚马逊原始部落少女张云成;
}
}

点击展开全文

上一篇:

下一篇:

相关推荐