面向对象学习笔记——理解包含main()方法的特殊类

每个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()方法的类受到干扰。

猜你喜欢

转载自blog.csdn.net/illikang/article/details/81287391