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 a=new Number();
Number b=new Number();
Number c=new Number();
System.out.println("你已经创建了"+Number.sum+"个对象");
System.out.println("是否继续创建(是,请输入yes,否则输入no) ");
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) ");
flag=scan.next();
dt.Count(flag);
}else{
if(flag.equals("no")){
System.out.println("创建结束");
System.out.println("共创建了"+Number.sum+"个对象");}
}
}
}

附,结果截图

 因为在类的构造函数被修改之后,初始化对象只调用修改后的函数,所以对象未被初始化,应该加上函数的参数,这样对象才会被初始化。

静态初始化块的执行顺序:

静态初始化块最优先被执行,而且只能够执行一次。构造函数在其之后执行,而且没生成一次对象就调用构造函数一次。
非静态初始化块构造函数之前被执行。构造函数就是将对象初始化。

原文地址:https://www.cnblogs.com/0518liu/p/9949632.html