1. 程式人生 > >2018/10/21動手動腦及類的建立

2018/10/21動手動腦及類的建立

關於類的呼叫次數,大體使用靜態變數來實現。

程式碼:

package yds;

import java.util.Scanner;

class Number{
static int sum;
public Number(){
sum++;
}
int Sum(){
return sum;
}
}
public class duixiangsum {
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
Number n1=new Number();
Number n2=new Number();
Number n3=new Number();
System.out.println("你已經建立了"+Number.sum+"個物件");
System.out.println("是否繼續建立(是,請輸入yes,否則輸入no)\n");
String flag;
flag=scan.next();
duixiangsum dt=new duixiangsum();
dt.Count(flag);
}
public void Count(String flag){
Scanner scan=new Scanner(System.in);
duixiangsum dt=new duixiangsum();
if(flag.equals("yes")){
Number a=new Number();
System.out.println("你已經建立了"+Number.sum+"個物件");
System.out.println("是否繼續建立(是,請輸入yes,否則輸入no)\n");
flag=scan.next();
dt.Count(flag);
}else{
if(flag.equals("no")){
System.out.println("建立結束");
System.out.println("共建立了"+Number.sum+"個物件");}
}
}
}

附,結果截圖

通過這個例項,我簡單的瞭解了靜態初始化塊的執行順序的一些基本方法。

    1、靜態初始化塊只執行一次。

    2、 建立子型別的物件時,也會導致父型別的靜態初始化塊的執行。

    3、靜態方法中只允許訪問靜態資料。

    4、靜態初始化塊不需要在main方法中呼叫,即使沒有main方法它也會執行。

    5、如果對類沒有進行例項化,初始化塊不會執行,但是靜態初始化塊會執行。

關於動手動腦,有以下幾點的總結:

關於這個程式碼無法編譯的問題

我認為,在系統中已經包含了一些基本的構造方法,但是,如果使用者再次私自構建同名構造方法,將會與系統產生衝突,此時系統將謙讓使用者而不提供預設的構造方法。