1.成員變量是是在類中定義的,而局部變量是在方法中定義的;
2.java會給成員變量賦初始值,但不會給局部變量賦初始值
3.局部變量的優先級高
4.無參的構造方法可以創建對象,有參的構造方法也可以創建對象
Telphone phone=new Telphone();
Telphone phone1=new Telphone(5.0f,4.5f,3.4f);
還可以判斷傳值是否安全
public Telphone(float newscreen,float newcpu,float newmem){
if(newscreen<3.5f){
System.out.println("你輸入的參數是不合理的");
screen=3.5f;}
else{
screen=newscreen;}
cpu=newcpu;
mem=newmem;
System.out.println("有參的構造方法執行了");
5.Java 中被 static 修飾的成員稱爲靜態成員或類成員。它屬於整個類所有,而不是某個對象所有,即被類的所有對象所共享
靜態成員可以用類名直接訪問,也可以用對象名進行訪問。
與靜態變量一樣,我們也可以使用
static 修飾方法,稱爲靜態方法或類方法
public static void print(){ }
靜態方法中可以直接調用同類中的靜態成員,但不能直接調用非靜態成員。如
如果希望在靜態方法中調用非靜態變量,可以通過創建類的對象,然後通過對象來訪問非靜態變量。如:
在普通成員方法中,則可以直接訪問同類的非靜態變量和靜態變量,如下所示
、 靜態方法中不能直接調用非靜態方法,需要通過對象來訪問非靜態方法。如:
public
static int sum() {
return score1+score2;
}
靜態方法中調用靜態方法
int allScore = HelloWorld.sum();
int allScore = sum();
類名.sum()
同時靜態初始化塊只能給靜態變量賦值,不能初始化普通的成員變量。
程序運行結果:
程序運行時靜態初始化塊最先被執行,然後執行普通初始化塊,最後才執行構造方法。由於靜態初始化塊只在類加載時執行一次,所以當再次創建對象
hello2 時並未執行靜態初始化塊。