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、如果对类没有进行实例化,初始化块不会执行,但是静态初始化块会执行。

关于动手动脑,有以下几点的总结:

关于这个代码无法编译的问题

我认为,在系统中已经包含了一些基本的构造方法,但是,如果用户再次私自构建同名构造方法,将会与系统产生冲突,此时系统将谦让用户而不提供默认的构造方法。

猜你喜欢

转载自www.cnblogs.com/yandashan666/p/9826011.html