用static自动为属性命名,static应用案例
(1)如果一个属性被static定义,那么这个属性将不会保存在堆内存中,会保存在一个全局数据区的空间中。并且所有对象都可以进行数据区的访问,
这时候这种属性被称为类属性,都可以通过 类.属性 进行直接调用。但是所有的非static属性都必须实例化一个对象进行调用。
(2)static方法
这种方法也可以通过“类.方法”进行调用。
注意:所有static方法不允许调用非static定义的方法和属性。
所有非static方法允许访问static方法和属性
(3)static案例应用
static属性的功能是进行共享的操作,所以可以使用static做一个对象产生的计数统计。所有新对象的产生一定要使用构造方法完成。
所以可以在构造方法中实现统计。
示例:假设一个Person类中有一个name属性和2个构造方法,其中一个构造方法可以接受外部传递的name属性内容,另一个是无参构造方法,
就希望可以自动的为我们类中的name属性做一个自动赋值,
public class Test {
public static void main(String[] args) {
System.out.println(new Person().getName());
System.out.println(new Person("zhangsan").getName());
System.out.println(new Person().getName());
}
}
class Person
{ private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
private static int count=0;//保存对象产生个数。
public Person()//由程序自己设置内容
{
this("NONAME-"+count++);//调用内部有参构造
}
public Person(String name)//由外部传入内容
{
this.name=name;
}
}
结果:
NONAME-0
zhangsan
NONAME-1
本文转载:CSDN博客