问题:
Main类,main函数中调用pupAge方法,调用过程中报错:无法从静态上下文中,引用非静态方法
解释:
- 用static修饰的方法称为静态方法,修饰变量则为静态变量,又分别叫做类方法或者类变量。
- 静态方法中不能直接调用非静态方法。因为非静态方法不是独立存在的,它是依附于对象存在,即只有申明了对象,才能通过对象调用。
- 静态方法则可以直接通过类名调用,而不需要实例化对象。因此直接引用非静态方法就会出错。
- 常见的main方法都是静态的,必须由static修饰,因此在main方法里调用类的其他非静态方法,都是需要先申明对象,才能用。否则就会出现引用非静态方法的错误。
- 要解决这个问题,可以去除一般方法的static关键字(如果是main方法,则不能去掉static)。另外一种方法就是把需要引用的方法也设置成静态方法。
- 需要理解java中static关键字,参见以下链接
https://www.cnblogs.com/dolphin0520/p/3799052.html