最开始我直接写的这样的:(会报错)
package CSDN;
public class a001 {
int a;
char b;
public static void main(String[] args) {
System.out.println("a="+a);
System.out.println("b="+b);
}
}
提示我不能对非静态字段进行静态引用,根据其他博主的博客,是这样的:main方法是static修饰的,所以只能访问static修饰的成员,没有被static修饰的成员需要先创建对象才能访问,而静态方法则在被调用时可以不创建任何对象。
所以我改了一下:
package CSDN;
public class a001 {
static int a;
static char b;
public static void main(String[] args) {
System.out.println("a="+a);
System.out.println("b="+b);
}
}
成功了
但是应该还有别的方法,我先看了标准答案:
package CSDN;
public class a002 {
int a;
char b;
public a002() {
System.out.println("a="+a);
System.out.println("b="+b);
}
public static void main(String[] args) {
new a002();
}
}
他的思路是用一个实例对象 发送消息给类a002的int和char成员变量 来完成调用
由于可以使用.a来调用,所以又有下面的解法:
package CSDN;
public class a003 {
int a;
char b;
public static void main(String[] args) {
a003 A = new a003();
System.out.println("a="+A.a);
System.out.println("b="+A.b);
}
}
另一种调用对象的方式:
package CSDN;
public class a004 {
public static void main(String[] args) {
class print{
int a;
char b;
void show() {
System.out.println("a="+a);
System.out.println("b="+b);
}
}
print A = new print();
A.show();
}
}