通常创建类的时候,你只是在定义这类对象会长什么样子,会有什么行为。除非你用new创建一个那种类的对象,否则你什么也得不到。只有创建了对象,它才能分配到内存,方法也才能用。
但是碰到下述两种情况的时候,这种做法就显得无能为力了。一是,无论你要创建多少对象,甚至不创建对象,你都要有,且只要有一段保存某些数据的内存。另一种情况是,你要一个不从属任何具体对象的方法。也就是说,你要一个,即使没有创建任何对象也能调用的方法。Static关键词就能帮你达成上述这两个目的。当你声明某样东西是static的时候,你的意思是,这项数据或方法没有被连到类的任何一个实例之上。因此即便你从没创建过那个类的对象,你也可以调用其static方法或者访问其static数据。
对于普通的非static的数据和方法,你就只能先创建对象,再访问那个对象的数据或方法了,因为非static的数据和方法必须知道它们是属于哪个对象的。当然,由于static方法无需创建任何对象就能使用,因此它们不能像普通方法那样,不说明对象的名字就直接访问它的非static的数据成员或方法了。
- 评论:(0)
发表评论