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)\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+"个对象");}
}
}
}
附,结果截图
因为在类的构造函数被修改之后,初始化对象只调用修改后的函数,所以对象未被初始化,应该加上函数的参数,这样对象才会被初始化。
静态初始化块的执行顺序:
静态初始化块最优先被执行,而且只能够执行一次。构造函数在其之后执行,而且没生成一次对象就调用构造函数一次。
非静态初始化块构造函数之前被执行。构造函数就是将对象初始化。