您的位置:首页 > 职场人生

黑马程序员——final关键字和static关键字

2013-06-06 21:34 197 查看
------- android培训java培训、期待与您交流!
----------

1.final有最终的意思,是java中的一个修饰符,它可以修饰非抽象类、非抽象类成员方法和变量。 

final类不能被继承,没有子类,final类中的方法默认是final的。

final方法不能被子类的方法覆盖。

final成员变量表示常量,只能被赋值一次,赋值后值不再改变。 

final不能用于修饰构造方法。

父类的private成员方法是不能被子类方法覆盖的,因此private类型的方法默认是final类型的。

final class Demo

{
public static final double PI = 3.14;//final修饰成员变量
final void show1(){}//final修饰成员方法
void show2()
{
final int y = 4;//final修饰局部变量
System.out.println(PI);
}

}

//class SubDemo extends Demo{}Demo类被final修饰不能被继承

class FinalDemo 

{
public static void main(String[] args) 
{
System.out.println("final");
}
//void show1(){}  被final修饰的成员方法不能被复写

}

       2.static:静态的意思,是一个修饰符,用于修饰成员(成员变量,成员函数)。当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调用:类名.静态成员。

static特点:

(1)随着类的加载而加载。也就说:静态会随着类的消失而消失。说明它的生命周期最长。

(2)优先于的对象存在。明确一点:静态是先存在,对象是后存在的。

(3)被所有对象所共享。

(4)可以直接被类名所调用。

静态使用注意事项:
(1)静态方法只能访问静态成员,非静态方法既可以访问静态也可以访问非静态。
(2)静态方法中不可以定义this,super关键字。
因为静态优先于对象存在,所以静态方法中不可以出现this,super。
(3)主函数是静态的。

class Person

{
String name;//成员变量,实例变量
static String country = "CN";//静态的成员变量,类变量
public static void show()//静态方法
{
System.out.println(".......");
//this.haha();静态方法不可以出现this关键字
}
public void haha()
{}

}

class  StaticDemo

{
public static void main(String[] args) 
{
Person p = new Person();
p.name = "zhangsan";
p.show();
System.out.println(p.country);
System.out.println(Person.country);//类名调用静态成员变量
Person.show();//类名调用静态方法
}

}

------- android培训java培训、期待与您交流!
----------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: