public class StaticCode { public static int count= 0; System.out. printIn(“非静态代码块count=" + count); static { System. out printn("静态代码块count=" + count); public static void main(String0 args) {System.out. pitnt'statiCode1执行"):StaticCode sct1 = new StaticCode();System.out printn("tatiCode2执行");StaticCode sct2 = new StaticCode();
时间: 2023-12-03 20:44:34 浏览: 71
Java经典算法20题
4星 · 用户满意度95%
这段代码有一些语法错误,我来帮你修正一下:
```
public class StaticCode {
public static int count = 0;
static {
System.out.println("静态代码块count=" + count);
}
{
System.out.println("非静态代码块count=" + count);
}
public StaticCode() {
System.out.println("构造函数执行");
}
public static void main(String[] args) {
System.out.println("StaticCode1执行");
StaticCode sct1 = new StaticCode();
System.out.println("StaticCode2执行");
StaticCode sct2 = new StaticCode();
}
}
```
这段代码定义了一个 `StaticCode` 类,并在其中包含了一个静态代码块、一个非静态代码块和一个构造函数。静态代码块在类加载时会被执行,非静态代码块在每次创建对象时都会被执行,构造函数用于初始化对象。
在 `main` 方法中,先输出一段字符串,然后创建两个 `StaticCode` 对象。由于 `count` 是静态变量,所以它的值在两个对象中是共享的。输出结果可能如下:
```
StaticCode1执行
静态代码块count=0
非静态代码块count=0
构造函数执行
非静态代码块count=0
构造函数执行
StaticCode2执行
非静态代码块count=0
构造函数执行
非静态代码块count=0
构造函数执行
```
阅读全文