每个Java程序都需要有一个包含main()方法的类,而这个类正是程序执行的入口。
也正是这个系统设定的类,常常给初学Java面向对象的人带来困扰,因此在学习了面向对象的各种概念后,要把这个类单独拿出来说一说,这样一切就都正常了。
public class Person {
public static void main(String[] args) {
}
}
首先Person是一个类。按照类的定义,我们可以在类中定义属性和方法。比如我定义两个变量和一个方法,这些都符合类的定义,没有问题。
int a=0;
String r="Hello";
public void run() {
System.out.println("running");
可是如果在main()中去访问这两个属性和方法,系统就会报错。于是就有人迷惑了,为什么我类中的方法,却不能访问类的成员变量呢?于是对类的概念产生了质疑。
其实这个不是类本身的问题,而是main()方法的问题。main()方法是个静态方法,而他又是程序进入的入口,按照静态原则(静态只能调用静态的,动态可以调用动静的)程序一旦开始,就进入了静态方法,因此这个类中所有非静态的属性和方法都是无法访问到的。只有静态的属性和方法才可以访问。因此如果给上面的属性和方法加上静态修饰,就可以被main()方法使用了。
public class Person {
static int a=0;
static String r="Hello";
static public void run() {
System.out.println("running");
}
public static void main(String[] args) {
System.out.println(a);
run();
}
}
如此就不会有任何错误提示了。如此我们也澄清了一点,所有类都是严格按照定义要求的,不存在特殊的类。不要因为包含mian()方法的类受到干扰。