Rectangle是一个非静态的内部类,只能被这个类的非静态方法访问。main方法是静态方法,所以使用该类创建对象时会出错。
解决办法有两个:
1. 将Rectangle变为静态的内部类
2. 将类移到外面定义
// 1. 将Rectangle变为静态的内部类
public class Main {
public static void main(String[] args) {
Rectangle rect = new Rectangle();
rect.width = 100;
System.out.println(rect.width);
rect.height = 200;
System.out.println(rect.height);
Rectangle rect2 = new Rectangle();
rect2.width = 10;
System.out.println(rect2.width);
rect2.height = 20;
System.out.println(rect2.height);
}
static class Rectangle {
int width;
int height;
}
}// 2. 将类移到外面定义
public class Main {
public static void main(String[] args) {
Rectangle rect = new Rectangle();
rect.width = 100;
System.out.println(rect.width);
rect.height = 200;
System.out.println(rect.height);
Rectangle rect2 = new Rectangle();
rect2.width = 10;
System.out.println(rect2.width);
rect2.height = 20;
System.out.println(rect2.height);
}
}
class Rectangle {
int width;
int height;
}
两种方案都可以正常运行,运行输出结果一致。