☆static的属性和方法不受到一个类的实例化的对象限制,可以由类名称直接调用。
static应用属性的最大功能是进行共享的操作,所以在这一基础上可以使用static做一个对象产生的计数统计。
所有新对象的产生一定要使用构造方法完成,所以可以在构造方法中实现统计。
范例:对象产生个数统计
class Person{
private static int count=0;
public Person() {
System.out.println("对象个数:"+ ++count);
}
}
public class TestDemo {
public static void main(String args[]) {
new Person();new Person();new Person();
}}
在此程序基础之上做一个更加简单的扩充,假设说,现在Person类中有一个name属性以及两个构造方法
其中以一个构造方法可以接受外部传递的name属性内容,另外一个构造方法是无参构造,一旦使用使用
了无参构造就希望可以自动的为类中的name属性做一个自动赋值,例如“NONAME-1”.
那么此时就可以继续使用static的属性控制。
class Person{
private String name;
private static int count=0;//保存对象产生个数
public Person() {//需要由程序自己来设置内容
this("NONAME -"+count++);//调用本类有参构造
}
public Person(String name) {//由外部传递属性内容
this.name=name;
}
public String getName() {
return this.name;
}
}
public class TestDemo {
public static void main(String args[]) {
System.out.println(new Person().getName());
System.out.println(new Person("NCC").getName());
System.out.println(new Person().getName());
}}
以后也会见到这种自动为属性命名的操作。
总结:
1.static 定义的属性和方法并不是你在进行类类设计时的首要选择
2.static的属性和方法不受到一个类的实例化的对象限制,可以由类名称直接调用。