方法1: class HelloWorld { private Class1 class1 = new Class1(); static void Main(string[] args) { class1.ss(); } }
时间: 2023-12-03 17:47:45 浏览: 16
这段代码有一个问题,因为在Main方法中直接使用class1.ss()是不合法的。因为class1是HelloWorld类的一个非静态成员变量,而Main方法是静态的,无法直接访问非静态成员变量。为了解决这个问题,你需要将class1声明为静态的,或者在Main方法内部创建一个HelloWorld对象,然后通过对象引用来访问class1。下面是修正后的代码:
```
class HelloWorld
{
private static Class1 class1 = new Class1();
static void Main(string[] args)
{
class1.ss();
}
}
```
相关问题
方法2: class HelloWorld { private Class1 class1 ; static void Main(string[] args) { class1= new Class1(); class1.ss(); } }
这段代码与之前的不同,它定义了一个名为 HelloWorld 的类,并且这个类中有一个名为 class1 的成员变量。在 Main 方法中,我们创建了一个 Class1 的实例并将其赋值给 class1 成员变量,然后调用了 class1 的 ss 方法。这段代码的作用是实例化 Class1 类并调用它的 ss 方法。
class Test { private static String name; static { name = "World"; System.out.print (name); } public static void main(StringLargs) { System.out.print("Hello"); Test test = new Test); } 运行结果
编译该代码会出现错误,因为 main 方法中的字符串参数应该是 "String[] args" 而不是 "StringLargs"。同时,在 Test 类的构造函数调用中,应该是 Test() 而不是 Test)。修改后的代码如下:
```
class Test {
private static String name;
static {
name = "World";
System.out.print(name);
}
public static void main(String[] args) {
System.out.print("Hello");
Test test = new Test();
}
}
```
运行结果为 "WorldHello"。静态代码块在类加载时就会执行,因此先输出 "World",然后 main 方法中输出 "Hello",最后创建一个 Test 对象。