------- android教育訓練、java教育訓練、期待與您交流! ----------
1.static屬性
1)static修飾的資源屬于類級别,是全體對象執行個體共享的資源
2)靜态屬性
·使用static修飾的屬性,屬性類的全體類的執行個體共享的變量
·靜态屬性是在類的加載期間初始化的
·使用類名·屬性通路,如:System.out
3)執行個體變量
·屬于對象的屬性
·使用對象屬性通路,如:person.name
例:
public class StaticFiledDemo{
public static void main(String[] args){
Foo f1=new Foo();
Foo f2=new Foo();
Foo f3=new Foo();
System.out.println(
f1.id+""+f2.id+""+f3.id+""+Foo.i);
}
class Foo{
int id;
static int i=0;
public Foo(){
id=i++;
}
注:
·int id 執行個體變量,相當于"每個人的水杯"
·static int i=0; 靜态級别變量,相當于"共用的水桶";
2.static方法
使用static聲明的方法,屬于類的方法,一般用來表示工具方法
在類加載以後可以自己調用,不需要建立愛你任何類的執行個體對象。
public class StaticMethodDemo{
public static void main(String[] args){
int c=Moo.add(1,2);//使用類名通路靜态方法
System.out.println(c);
double d=Math.sin(Math.PI);
System.out.println(d);
long now=System.currentTimeMills();
}
}
class Moo{
int a=2;
//靜态方法是屬于類的方法,是公共工具方法
//靜态方法不能通路屬于對象的資源
public static int add(int a, int b){
return a+b;
}
}
3.靜态代碼塊
靜态代碼塊是在類加載期間運作的代碼塊,由于類加載一次,是以靜态代碼塊隻執行一次
靜态代碼塊用途不是很常見,一般是類加載以後初始化一些資源時使用。
1.final關鍵字
1)final修飾的類,不能被繼承
·java的String就是final類,不能被繼承
·Math是final類,不能被繼承。
·Integer、Long、Character等包裝類是final類,不能被繼承
·在實際原則上是不允許使用final類
Spring、Hibernate、Struts2,這些架構使用了"動态繼承代理"技術,使用final的類會影響"動态代理技術"的實作;
2)final修飾的方法,不能再被覆寫
·在實際項目開發中,原則上不使用final方法,因為動态代理技術。
3)final修飾的變量,初始化以後不允許再修改了
·final 局部變量
·final 方法參數
·final 的成員變量
4)final static---Java 使用final static 修飾的變量作為常量
·一般要求常量名都有大寫字母
·java常量不是const
------- android教育訓練、java教育訓練、期待與您交流! ----------