public class Demo{ int n=10; public static void main(String[] args){ System.out.println(n); } } 编译运行的结果是( )。
时间: 2024-03-14 20:48:06 浏览: 21
编译错误。因为在静态方法 `main` 中想要访问实例变量 `n`,需要先创建类的实例。可以改为以下代码才能成功编译并输出结果:
```
public class Demo{
int n=10;
public static void main(String[] args){
Demo obj = new Demo(); //创建类的实例
System.out.println(obj.n);
}
}
```
输出结果为:10
相关问题
public class Demo { public static void main(String args[]) { int sum = 0 ; int x = 10 ; while (x > 0) { sum += x ; } System.out.println(sum) ; } }
这段代码有一个无限循环的问题。在 while 循环中, x 的值一直大于 0,因此循环条件永远为真,程序会一直执行 while 循环,导致程序陷入无限循环。如果你想要修复这个问题,需要在循环中修改 x 的值,使其最终小于等于 0,或使用 break 语句来跳出循环。例如:
```java
public class Demo {
public static void main(String args[]) {
int sum = 0;
int x = 10;
while (x > 0) {
sum += x;
x--; // 每次循环减少 x 的值
}
System.out.println(sum);
}
}
```
这样,循环会在 x 的值减少至 0 时结束,sum 中将包含 10 到 1 的所有整数的和,输出结果为 55。
class Demo{ int i = 100; public void m(){ int j = i++; System.out.println("i="+j); System.out.println("j="+j); } } class Test{ public static void mian(String[] args){ Demo d1 = new Demo(); Demo d2 = d1; d2.m(); System.out.println(d1.i); System.out.println(d2.i); } }
这段代码存在一些问题。首先是在主类Test中的main方法的拼写错误,应该是"public static void main(String[] args)"。其次,Demo类中的m方法中的第二个打印语句应该是"System.out.println("j="+j);"而不是"System.out.println("j="+i);"
修正后的代码如下所示:
```java
class Demo {
int i = 100;
public void m() {
int j = i++;
System.out.println("i=" + j);
System.out.println("j=" + j);
}
}
class Test {
public static void main(String[] args) {
Demo d1 = new Demo();
Demo d2 = d1;
d2.m();
System.out.println(d1.i);
System.out.println(d2.i);
}
}
```
这段代码的功能是创建一个Demo对象d1,然后将d1赋值给d2。接下来调用d2的m方法,该方法会将d1的i值赋给局部变量j,并将d1的i值加1。最后打印出j的值、d1的i的值和d2的i的值。